X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=include%2Fdevice.h;h=8311607b10e39a55a85e3bf234ced59fd2842fba;hb=e76c122e6c313b881c019da638c243b0765bf06f;hp=ba7fe1e01793f6a1f9f6666bbeb9f44d41639360;hpb=720b8692c453b14829b85b0c5647e7babe7a4752;p=connman diff --git a/include/device.h b/include/device.h index ba7fe1e..8311607 100644 --- a/include/device.h +++ b/include/device.h @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2009 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -22,77 +22,103 @@ #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_VENDOR = 42, + 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_GPS = 5, + CONNMAN_DEVICE_TYPE_HSO = 15, + CONNMAN_DEVICE_TYPE_NOZOMI = 16, + CONNMAN_DEVICE_TYPE_HUAWEI = 17, + CONNMAN_DEVICE_TYPE_NOVATEL = 18, + CONNMAN_DEVICE_TYPE_VENDOR = 10000, }; -enum connman_device_capabilities { - CONNMAN_DEVICE_CAPABILITY_SCANNING = (1 << 0), +enum connman_device_mode { + CONNMAN_DEVICE_MODE_UNKNOWN = 0, + CONNMAN_DEVICE_MODE_NETWORK_SINGLE = 1, + CONNMAN_DEVICE_MODE_NETWORK_MULTIPLE = 2, + CONNMAN_DEVICE_MODE_TRANSPORT_IP = 3, }; enum connman_device_policy { CONNMAN_DEVICE_POLICY_UNKNOWN = 0, CONNMAN_DEVICE_POLICY_IGNORE = 1, - CONNMAN_DEVICE_POLICY_AUTO = 2, - CONNMAN_DEVICE_POLICY_OFF = 3, -}; - -enum connman_device_state { - CONNMAN_DEVICE_STATE_UNKNOWN = 0, - CONNMAN_DEVICE_STATE_OFF = 1, + CONNMAN_DEVICE_POLICY_OFF = 2, + CONNMAN_DEVICE_POLICY_AUTO = 3, + CONNMAN_DEVICE_POLICY_MANUAL = 4, }; -struct connman_device_driver; - -struct connman_device { - struct connman_element *element; - enum connman_device_type type; - unsigned long capabilities; - enum connman_device_policy policy; - enum connman_device_state state; - gboolean powered; - gboolean scanning; - - struct connman_device_driver *driver; - void *driver_data; - - GSList *networks; -}; +struct connman_device; + +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); + +extern enum connman_device_type connman_device_get_type(struct connman_device *device); +extern const char *connman_device_get_name(struct connman_device *device); +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); + +extern void connman_device_set_ident(struct connman_device *device, + const char *ident); + +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 enum connman_device_mode connman_device_get_mode(struct connman_device *device); +extern void connman_device_set_secondary(struct connman_device *device, + connman_bool_t secondary); +extern connman_bool_t connman_device_get_secondary(struct connman_device *device); extern int connman_device_set_powered(struct connman_device *device, - gboolean powered); + 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, - gboolean scanning); + connman_bool_t scanning); +extern int connman_device_set_disconnected(struct connman_device *device, + connman_bool_t disconnected); -static inline void *connman_device_get_data(struct connman_device *device) -{ - return device->driver_data; -} +extern int connman_device_set_string(struct connman_device *device, + const char *key, const char *value); +extern const char *connman_device_get_string(struct connman_device *device, + const char *key); -static inline void connman_device_set_data(struct connman_device *device, - void *data) -{ - device->driver_data = data; -} +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; @@ -103,6 +129,8 @@ struct connman_device_driver { int (*enable) (struct connman_device *device); int (*disable) (struct connman_device *device); int (*scan) (struct connman_device *device); + int (*join) (struct connman_device *device, + struct connman_network *network); }; extern int connman_device_driver_register(struct connman_device_driver *driver);