X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=include%2Fdevice.h;h=c9f6d767a76f0602c5be46c7f6464251588cab3f;hb=4167a753ea847d3733a736fc3f5c029662f3131a;hp=4985f6e8a169b3b2220fe9b80f763039ea3f0f70;hpb=7a3e397e2cc0c275f81eec419fa144ad258b4b87;p=connman diff --git a/include/device.h b/include/device.h index 4985f6e..c9f6d76 100644 --- a/include/device.h +++ b/include/device.h @@ -22,72 +22,84 @@ #ifndef __CONNMAN_DEVICE_H #define __CONNMAN_DEVICE_H +#include +#include + #ifdef __cplusplus extern "C" { #endif -#include - /** * SECTION:device - * @title: Device driver premitives - * @short_description: Functions for registering device drivers + * @title: Device premitives + * @short_description: Functions for handling devices */ enum connman_device_type { - CONNMAN_DEVICE_TYPE_UNKNOWN = CONNMAN_ELEMENT_SUBTYPE_UNKNOWN, - CONNMAN_DEVICE_TYPE_FAKE = CONNMAN_ELEMENT_SUBTYPE_FAKE, - CONNMAN_DEVICE_TYPE_ETHERNET = CONNMAN_ELEMENT_SUBTYPE_ETHERNET, - CONNMAN_DEVICE_TYPE_WIFI = CONNMAN_ELEMENT_SUBTYPE_WIFI, - CONNMAN_DEVICE_TYPE_WIMAX = CONNMAN_ELEMENT_SUBTYPE_WIMAX, - CONNMAN_DEVICE_TYPE_MODEM = CONNMAN_ELEMENT_SUBTYPE_MODEM, - CONNMAN_DEVICE_TYPE_BLUETOOTH = CONNMAN_ELEMENT_SUBTYPE_BLUETOOTH, + CONNMAN_DEVICE_TYPE_UNKNOWN = 0, + CONNMAN_DEVICE_TYPE_ETHERNET = 1, + CONNMAN_DEVICE_TYPE_WIFI = 2, + CONNMAN_DEVICE_TYPE_WIMAX = 3, + CONNMAN_DEVICE_TYPE_BLUETOOTH = 4, + CONNMAN_DEVICE_TYPE_HSO = 11, + CONNMAN_DEVICE_TYPE_VENDOR = 42, }; -enum connman_device_capabilities { - CONNMAN_DEVICE_CAPABILITY_SCANNING = (1 << 0), +enum connman_device_mode { + CONNMAN_DEVICE_MODE_NO_NETWORK = 0, + CONNMAN_DEVICE_MODE_SINGLE_NETWORK = 1, + CONNMAN_DEVICE_MODE_MULTIPLE_NETWORKS = 2, }; enum connman_device_policy { CONNMAN_DEVICE_POLICY_UNKNOWN = 0, CONNMAN_DEVICE_POLICY_IGNORE = 1, - CONNMAN_DEVICE_POLICY_AUTO = 2, - CONNMAN_DEVICE_POLICY_OFF = 3, + CONNMAN_DEVICE_POLICY_OFF = 2, + CONNMAN_DEVICE_POLICY_AUTO = 3, + CONNMAN_DEVICE_POLICY_MANUAL = 4, }; -enum connman_device_state { - CONNMAN_DEVICE_STATE_UNKNOWN = 0, - CONNMAN_DEVICE_STATE_OFF = 1, -}; +struct connman_device; -struct connman_device_driver; +extern struct connman_device *connman_device_create(const char *node, + enum connman_device_type type); +extern struct connman_device *connman_device_ref(struct connman_device *device); +extern void connman_device_unref(struct connman_device *device); -struct connman_device { - struct connman_element *element; - unsigned long capabilities; - enum connman_device_policy policy; - enum connman_device_state state; - gboolean powered; +extern void connman_device_set_path(struct connman_device *device, + const char *path); +extern const char *connman_device_get_path(struct connman_device *device); +extern void connman_device_set_index(struct connman_device *device, + int index); +extern int connman_device_get_index(struct connman_device *device); +extern void connman_device_set_interface(struct connman_device *device, + const char *interface); +extern const char *connman_device_get_interface(struct connman_device *device); - struct connman_device_driver *driver; - void *driver_data; - - GSList *networks; -}; +extern void connman_device_set_policy(struct connman_device *device, + enum connman_device_policy policy); +extern void connman_device_set_mode(struct connman_device *device, + enum connman_device_mode mode); extern int connman_device_set_powered(struct connman_device *device, - gboolean powered); - -static inline void *connman_device_get_data(struct connman_device *device) -{ - return device->driver_data; -} - -static inline void connman_device_set_data(struct connman_device *device, - void *data) -{ - device->driver_data = data; -} + connman_bool_t powered); +extern int connman_device_set_carrier(struct connman_device *device, + connman_bool_t carrier); +extern int connman_device_set_scanning(struct connman_device *device, + connman_bool_t scanning); + +extern int connman_device_add_network(struct connman_device *device, + struct connman_network *network); +extern struct connman_network *connman_device_get_network(struct connman_device *device, + const char *identifier); +extern int connman_device_remove_network(struct connman_device *device, + const char *identifier); + +extern int connman_device_register(struct connman_device *device); +extern void connman_device_unregister(struct connman_device *device); + +extern void *connman_device_get_data(struct connman_device *device); +extern void connman_device_set_data(struct connman_device *device, void *data); struct connman_device_driver { const char *name;