2010-05-13 22:21:52 -07:00
|
|
|
#ifndef EEZE_UDEV_H
|
|
|
|
#define EEZE_UDEV_H
|
2010-05-13 03:49:17 -07:00
|
|
|
|
|
|
|
#include <Ecore.h>
|
|
|
|
|
2010-05-13 21:52:42 -07:00
|
|
|
#define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE 1
|
2010-05-13 21:56:07 -07:00
|
|
|
#include <libudev.h>
|
2010-05-13 21:52:42 -07:00
|
|
|
|
2010-05-13 03:49:17 -07:00
|
|
|
#ifdef EAPI
|
|
|
|
#undef EAPI
|
|
|
|
#endif
|
2010-05-14 00:02:50 -07:00
|
|
|
|
|
|
|
#ifdef __GNUC__
|
|
|
|
# if __GNUC__ >= 4
|
|
|
|
# define EAPI __attribute__ ((visibility("default")))
|
2010-05-13 03:49:17 -07:00
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif
|
2010-05-14 00:02:50 -07:00
|
|
|
#else
|
|
|
|
# define EAPI
|
2010-05-13 03:49:17 -07:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @defgroup Subsystem_Types Subsystem_Types
|
|
|
|
*
|
|
|
|
* ac97
|
|
|
|
* acpi
|
|
|
|
* bdi
|
|
|
|
* block
|
|
|
|
* bsg
|
|
|
|
* dmi
|
|
|
|
* graphics
|
|
|
|
* hid
|
|
|
|
* hwmon
|
|
|
|
* i2c
|
|
|
|
* input
|
|
|
|
* mem
|
|
|
|
* misc
|
|
|
|
* net
|
|
|
|
* pci
|
|
|
|
* pci_bus
|
|
|
|
* pci_express
|
|
|
|
* platform
|
|
|
|
* pnp
|
|
|
|
* rtc
|
|
|
|
* scsi
|
|
|
|
* scsi_device
|
|
|
|
* scsi_disk
|
|
|
|
* scsi_generic
|
|
|
|
* scsi_host
|
|
|
|
* serio
|
|
|
|
* sound
|
|
|
|
* thermal
|
|
|
|
* tty
|
|
|
|
* usb
|
|
|
|
* usb_device
|
|
|
|
* vc
|
|
|
|
* vtconsole
|
|
|
|
*
|
|
|
|
* @ingroup udev
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @defgroup Device_Types Device_Types
|
|
|
|
*
|
|
|
|
* atapi
|
|
|
|
* audio
|
|
|
|
* block
|
|
|
|
* cd
|
|
|
|
* char
|
|
|
|
* disk
|
|
|
|
* floppy
|
|
|
|
* generic
|
|
|
|
* hid
|
|
|
|
* hub
|
|
|
|
* media
|
|
|
|
* optical
|
|
|
|
* printer
|
|
|
|
* rbc
|
|
|
|
* scsi
|
|
|
|
* storage
|
|
|
|
* tape
|
|
|
|
* video
|
|
|
|
*
|
|
|
|
* @ingroup udev
|
|
|
|
*/
|
|
|
|
|
2010-05-20 00:30:41 -07:00
|
|
|
/*bitmasks for watch events*/
|
2010-05-19 21:28:05 -07:00
|
|
|
#define EEZE_UDEV_EVENT_NONE 0x0000
|
|
|
|
#define EEZE_UDEV_EVENT_ADD 0x0001
|
2010-05-21 18:55:14 -07:00
|
|
|
#define EEZE_UDEV_EVENT_REMOVE 0x0002
|
|
|
|
#define EEZE_UDEV_EVENT_CHANGE 0x0004
|
|
|
|
#define EEZE_UDEV_EVENT_ONLINE 0x0008
|
2010-05-19 21:28:05 -07:00
|
|
|
#define EEZE_UDEV_EVENT_OFFLINE 0x0010
|
|
|
|
|
2010-05-13 03:49:17 -07:00
|
|
|
/*FIXME: these probably need to be bitmasks with categories*/
|
|
|
|
typedef enum
|
|
|
|
{
|
2010-05-14 00:02:50 -07:00
|
|
|
EEZE_UDEV_TYPE_NONE,
|
|
|
|
EEZE_UDEV_TYPE_KEYBOARD,
|
|
|
|
EEZE_UDEV_TYPE_MOUSE,
|
|
|
|
EEZE_UDEV_TYPE_TOUCHPAD,
|
|
|
|
EEZE_UDEV_TYPE_DRIVE_MOUNTABLE,
|
|
|
|
EEZE_UDEV_TYPE_DRIVE_INTERNAL,
|
|
|
|
EEZE_UDEV_TYPE_DRIVE_REMOVABLE,
|
|
|
|
EEZE_UDEV_TYPE_DRIVE_CDROM,
|
|
|
|
EEZE_UDEV_TYPE_POWER_AC,
|
2010-05-19 21:28:05 -07:00
|
|
|
EEZE_UDEV_TYPE_POWER_BAT,
|
|
|
|
EEZE_UDEV_TYPE_IS_IT_HOT_OR_IS_IT_COLD_SENSOR
|
2010-05-14 00:02:50 -07:00
|
|
|
/* EEZE_UDEV_TYPE_ANDROID */
|
|
|
|
} Eeze_Udev_Type;
|
2010-05-13 03:49:17 -07:00
|
|
|
|
2010-05-14 00:02:50 -07:00
|
|
|
struct Eeze_Udev_Watch;
|
|
|
|
typedef struct Eeze_Udev_Watch Eeze_Udev_Watch;
|
2010-05-13 03:49:17 -07:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2010-05-22 00:04:00 -07:00
|
|
|
EAPI int eeze_init(void);
|
|
|
|
EAPI int eeze_shutdown(void);
|
2010-05-13 03:49:17 -07:00
|
|
|
|
2010-05-16 19:59:07 -07:00
|
|
|
EAPI Eina_List *eeze_udev_find_similar_from_syspath(const char *syspath);
|
|
|
|
EAPI void eeze_udev_find_unlisted_similar(Eina_List *list);
|
|
|
|
EAPI Eina_List *eeze_udev_find_by_sysattr(const char *sysattr, const char *value);
|
2010-05-14 00:02:50 -07:00
|
|
|
EAPI Eina_List *eeze_udev_find_by_type(const Eeze_Udev_Type type, const char *name);
|
2010-05-13 22:21:52 -07:00
|
|
|
EAPI Eina_List *eeze_udev_find_by_filter(const char *subsystem, const char *type, const char *name);
|
2010-05-13 03:49:17 -07:00
|
|
|
|
2010-05-16 19:59:07 -07:00
|
|
|
EAPI const char *eeze_udev_syspath_get_parent(const char *syspath);
|
|
|
|
EAPI Eina_List *eeze_udev_syspath_get_parents(const char *syspath);
|
2010-05-13 22:21:52 -07:00
|
|
|
EAPI const char *eeze_udev_syspath_get_devpath(const char *syspath);
|
|
|
|
EAPI const char *eeze_udev_syspath_get_subsystem(const char *syspath);
|
|
|
|
EAPI const char *eeze_udev_syspath_get_property(const char *syspath, const char *property);
|
2010-05-20 00:30:41 -07:00
|
|
|
EAPI const char *eeze_udev_syspath_get_sysattr(const char *syspath, const char *sysattr);
|
2010-05-13 03:49:17 -07:00
|
|
|
|
2010-05-13 22:21:52 -07:00
|
|
|
EAPI const char *eeze_udev_devpath_get_syspath(const char *devpath);
|
|
|
|
EAPI const char *eeze_udev_devpath_get_subsystem(const char *devpath);
|
2010-05-13 03:49:17 -07:00
|
|
|
|
2010-05-13 22:21:52 -07:00
|
|
|
EAPI Eina_Bool eeze_udev_syspath_is_mouse(const char *syspath);
|
|
|
|
EAPI Eina_Bool eeze_udev_syspath_is_kbd(const char *syspath);
|
|
|
|
EAPI Eina_Bool eeze_udev_syspath_is_touchpad(const char *syspath);
|
2010-05-20 21:11:58 -07:00
|
|
|
|
|
|
|
EAPI Eina_Bool eeze_udev_walk_check_sysattr(const char *syspath, const char *sysattr, const char *value);
|
|
|
|
EAPI const char *eeze_udev_walk_get_sysattr(const char *syspath, const char *sysattr);
|
2010-05-13 03:49:17 -07:00
|
|
|
|
2010-05-21 18:55:14 -07:00
|
|
|
EAPI Eeze_Udev_Watch *eeze_udev_watch_add(Eeze_Udev_Type type, int event, void(*func)(const char *, int, void *, Eeze_Udev_Watch *), void *user_data);
|
2010-05-14 00:02:50 -07:00
|
|
|
EAPI void *eeze_udev_watch_del(Eeze_Udev_Watch *watch);
|
2010-05-13 03:49:17 -07:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|