usb_moded  0.86.0+mer57
usb_moded-dyn-config.h
Go to the documentation of this file.
1 
32 #ifndef USB_MODED_DYN_CONFIG_H_
33 # define USB_MODED_DYN_CONFIG_H_
34 
35 # include <stdbool.h>
36 # include <glib.h>
37 # include <errno.h>
38 
39 /* ========================================================================= *
40  * Constants
41  * ========================================================================= */
42 
43 # define MODE_DIR_PATH "/etc/usb-moded/dyn-modes"
44 # define DIAG_DIR_PATH "/etc/usb-moded/diag"
45 
46 /* - - - - - - - - - - - - - - - - - - - *
47  * [mode] ini-file block
48  * - - - - - - - - - - - - - - - - - - - */
49 
50 # define MODE_ENTRY "mode"
51 # define MODE_NAME_KEY "name"
52 # define MODE_MODULE_KEY "module"
53 # define MODE_NEEDS_APPSYNC_KEY "appsync" // integer
54 # define MODE_NETWORK_KEY "network" // integer
55 # define MODE_MASS_STORAGE_KEY "mass_storage" // integer
56 # define MODE_NETWORK_INTERFACE_KEY "network_interface"
57 
58 /* - - - - - - - - - - - - - - - - - - - *
59  * [options] ini-file block
60  * - - - - - - - - - - - - - - - - - - - */
61 
62 # define MODE_OPTIONS_ENTRY "options"
63 # define MODE_SYSFS_PATH "sysfs_path"
64 
65 /* This is list of gadget functions, except for
66  * host-mode config ... */
67 # define MODE_SYSFS_VALUE "sysfs_value"
68 # define MODE_SYSFS_RESET_VALUE "sysfs_reset_value"
69 
70 /* Instead of hard-coding values that never change or have only one option,
71  android engineers prefered to have sysfs entries... go figure... */
72 # define MODE_ANDROID_EXTRA_SYSFS_PATH "android_extra_sysfs_path"
73 # define MODE_ANDROID_EXTRA_SYSFS_VALUE "android_extra_sysfs_value"
74 
75 /* in combined android gadgets we sometime need more than one extra sysfs path or value */
76 # define MODE_ANDROID_EXTRA_SYSFS_PATH2 "android_extra_sysfs_path2"
77 # define MODE_ANDROID_EXTRA_SYSFS_VALUE2 "android_extra_sysfs_value2"
78 # define MODE_ANDROID_EXTRA_SYSFS_PATH3 "android_extra_sysfs_path3"
79 # define MODE_ANDROID_EXTRA_SYSFS_VALUE3 "android_extra_sysfs_value3"
80 # define MODE_ANDROID_EXTRA_SYSFS_PATH4 "android_extra_sysfs_path4"
81 # define MODE_ANDROID_EXTRA_SYSFS_VALUE4 "android_extra_sysfs_value4"
82 
83 /* For windows different modes/usb profiles need their own idProduct */
84 # define MODE_IDPRODUCT "idProduct"
85 # define MODE_IDVENDOROVERRIDE "idVendorOverride"
86 # define MODE_HAS_NAT "nat" // integer
87 # define MODE_HAS_DHCP_SERVER "dhcp_server" // integer
88 
89 # ifdef CONNMAN
90 # define MODE_CONNMAN_TETHERING "connman_tethering"
91 # endif
92 
93 /* ========================================================================= *
94  * Types
95  * ========================================================================= */
96 
100 typedef struct modedata_t
101 {
102  gchar *mode_name;
103  gchar *mode_module;
104  int appsync;
105  int network;
108  gchar *sysfs_path;
109  gchar *sysfs_value;
119  gchar *idProduct;
121  int nat;
123 # ifdef CONNMAN
124  gchar *connman_tethering;
125 # endif
126 } modedata_t;
127 
128 /* ========================================================================= *
129  * Prototypes
130  * ========================================================================= */
131 
132 /* ------------------------------------------------------------------------- *
133  * MODEDATA
134  * ------------------------------------------------------------------------- */
135 
136 void modedata_free(modedata_t *self);
137 modedata_t *modedata_copy(const modedata_t *that);
138 
139 /* ------------------------------------------------------------------------- *
140  * MODELIST
141  * ------------------------------------------------------------------------- */
142 
143 void modelist_free(GList *modelist);
144 GList *modelist_load(bool diag);
145 
146 #endif /* USB_MODED_DYN_CONFIG_H_ */
modedata_t::mode_name
gchar * mode_name
Definition: usb_moded-dyn-config.h:102
modelist_load
GList * modelist_load(bool diag)
Definition: usb_moded-dyn-config.c:294
modedata_t::nat
int nat
Definition: usb_moded-dyn-config.h:121
modedata_t::network_interface
gchar * network_interface
Definition: usb_moded-dyn-config.h:107
modedata_t::network
int network
Definition: usb_moded-dyn-config.h:105
modedata_t::android_extra_sysfs_value3
gchar * android_extra_sysfs_value3
Definition: usb_moded-dyn-config.h:116
modelist_free
void modelist_free(GList *modelist)
Definition: usb_moded-dyn-config.c:279
modedata_t::android_extra_sysfs_value4
gchar * android_extra_sysfs_value4
Definition: usb_moded-dyn-config.h:118
modedata_t::mass_storage
int mass_storage
Definition: usb_moded-dyn-config.h:106
modedata_t::appsync
int appsync
Definition: usb_moded-dyn-config.h:104
modedata_t::android_extra_sysfs_path4
gchar * android_extra_sysfs_path4
Definition: usb_moded-dyn-config.h:117
modedata_t::mode_module
gchar * mode_module
Definition: usb_moded-dyn-config.h:103
modedata_t::android_extra_sysfs_path
gchar * android_extra_sysfs_path
Definition: usb_moded-dyn-config.h:111
modedata_t::dhcp_server
int dhcp_server
Definition: usb_moded-dyn-config.h:122
modedata_t::android_extra_sysfs_value
gchar * android_extra_sysfs_value
Definition: usb_moded-dyn-config.h:112
modedata_t::android_extra_sysfs_path2
gchar * android_extra_sysfs_path2
Definition: usb_moded-dyn-config.h:113
modedata_t::android_extra_sysfs_path3
gchar * android_extra_sysfs_path3
Definition: usb_moded-dyn-config.h:115
modedata_t::idProduct
gchar * idProduct
Definition: usb_moded-dyn-config.h:119
modedata_t
struct modedata_t modedata_t
modedata_t::sysfs_value
gchar * sysfs_value
Definition: usb_moded-dyn-config.h:109
modedata_t::idVendorOverride
gchar * idVendorOverride
Definition: usb_moded-dyn-config.h:120
modedata_copy
modedata_t * modedata_copy(const modedata_t *that)
Definition: usb_moded-dyn-config.c:111
modedata_free
void modedata_free(modedata_t *self)
Definition: usb_moded-dyn-config.c:76
modedata_t
Definition: usb_moded-dyn-config.h:100
modedata_t::sysfs_reset_value
gchar * sysfs_reset_value
Definition: usb_moded-dyn-config.h:110
modedata_t::sysfs_path
gchar * sysfs_path
Definition: usb_moded-dyn-config.h:108
modedata_t::android_extra_sysfs_value2
gchar * android_extra_sysfs_value2
Definition: usb_moded-dyn-config.h:114