Commit 376002ca authored by phdeswer's avatar phdeswer

pre-eliminary android gadget support

Signed-off-by: phdeswer's avatarPhilippe De Swert <philippedeswert@gmail.com>
parent 2b3cfcb6
AC_INIT([usb_moded], [0.54])
AC_INIT([usb_moded], [0.55])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AM_CONFIG_HEADER([config.h])
......@@ -110,6 +110,13 @@ AC_ARG_ENABLE([upstart], AS_HELP_STRING([--enable-upstart], [Enable upstart inte
esac],[upstart=false])
AM_CONDITIONAL([UPSTART], [test x$upstart = xtrue])
AC_ARG_ENABLE([android], AS_HELP_STRING([--enable-android], [Enable Android "module" interface @<:@default=false@:>@]),
[case "${enableval}" in
yes) android=true ; CFLAGS="-DANDROID $CFLAGS" ;;
no) android=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-android]) ;;
esac],[android=false])
AM_CONDITIONAL([ANDROID], [test x$android = xtrue])
#TODO: Figure out how to check for this depending on the gconf flag
# gconf-2.0 >= 2.16.0
......
usb-moded (0.55) unstable; urgency=low
* Add android gadget driver support
* Make udev default
* Add rescue mode
-- Philippe De Swert <philippedeswert@jollamobile.com> Wed, 12 Dec 2012 22:57:42 +0200
usb-moded (0.54) unstable; urgency=low
* Instead of spawning shells with system() use libkmod
......
......@@ -18,7 +18,6 @@ usb_moded_SOURCES = \
usb_moded-dbus-private.h \
usb_moded-hw-ab.h \
usb_moded-config-private.h \
usb_moded-modules.c \
usb_moded-modules.h \
usb_moded-log.h \
usb_moded-log.c \
......@@ -29,6 +28,14 @@ usb_moded_SOURCES = \
usb_moded-modesetting.c \
usb_moded-modesetting.h
if !ANDROID
usb_moded_SOURCES += \
usb_moded-modules.c
else
usb_moded_SOURCES += \
usb_moded-modules-android.c
endif
if GCONF
usb_moded_SOURCES += \
usb_moded-gconf.c \
......
/**
@file usb_moded-modules-android.c
Copyright (C) 2012 Jolla. All rights reserved.
@author: Philippe De Swert <philippe.deswert@jollamobile.com>
This program is free software; you can redistribute it and/or
modify it under the terms of the Lesser GNU General Public License
version 2 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the Lesser GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA
*/
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <glib.h>
#include <libkmod.h>
#include "usb_moded.h"
#include "usb_moded-modules.h"
#include "usb_moded-log.h"
#include "usb_moded-config.h"
#include "usb_moded-dbus.h"
#include "usb_moded-dbus-private.h"
#include "usb_moded-config.h"
#include "usb_moded-modesetting.h"
/* kmod context - initialized at start in usb_moded_init */
struct kmod_ctx *ctx;
/** load module
*
* @param module Name of the module to load
* @return 0 on success, non-zero on failure
*
*/
int usb_moded_load_module(const char *module)
{
int ret = 0;
write_to_file("/sys/class/android_usb/android0/functions", module);
write_to_file("/sys/class/android_usb/android0/enable", "0");
if( ret == 0)
log_info("Module setting to %s successfully\n", module);
return(ret);
}
/** unload module
*
* @param module Name of the module to unload
* @return 0 on success, non-zero on failure
*
*/
int usb_moded_unload_module(const char *module)
{
write_to_file("/sys/class/android_usb/android0/enable", "0");
return(0);
}
/** Check which state a module is in
*
* @return 1 if loaded, 0 when not loaded
*/
inline static int module_state_check(const char *module)
{
return(0);
}
/** find which module is loaded
*
* @return The name of the loaded module, or NULL if no modules are loaded.
*/
inline const char * usb_moded_find_module(void)
{
return(0);
}
/** clean up for modules when usb gets disconnected
*
* @param module The name of the module to unload
* @return 0 on success, non-zero on failure
*
*/
inline int usb_moded_module_cleanup(const char *module)
{
return(0);
}
/** try to unload modules to support switching
*
*
* @param force force unloading with a nasty clean-up on TRUE, or just try unloading when FALSE
* @return 0 on success, 1 on failure, 2 if hard clean-up failed
*/
inline int usb_moded_module_switch_prepare (int force)
{
return 0;
}
/** check for loaded modules and clean-up if they are not for the chosen mode
*
* @param module_name module name to check for
*
*/
inline void check_module_state(const char *module_name)
{
return;
}
......@@ -18,6 +18,7 @@
02110-1301 USA
*/
#ifndef ANDROID
/* module name definitions */
#define MODULE_NETWORK "g_nokia"
#ifdef NOKIA
......@@ -33,6 +34,15 @@
#define MODULE_WINDOWS_NET "g_ether"
#define MODULE_DEVELOPER "g_ether"
#define MODULE_MTP "g_ffs"
#else
#define MODULE_MASS_STORAGE "mass_storage"
#define MODULE_FILE_STORAGE "mass_storage"
#define MODULE_WINDOWS_NET "rndis"
#define MODULE_DEVELOPER "rndis"
#define MODULE_MTP "mtp"
#define MODULE_NONE "none"
#define MODULE_CHARGING "mass_storage"
#endif
/* load module */
int usb_moded_load_module(const char *module);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment