00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00027 #ifndef __POWERMGR_H
00028 #define __POWERMGR_H
00029
00030 typedef enum {
00031 GONE=0,
00032 INSERTED,
00033 DEV_STATE_LAST
00034 } dev_state;
00035
00036 typedef enum {
00037 UNPOWERED=0,
00038 POWERED,
00039 POWER_STATE_LAST
00040 } power_state;
00041
00042 typedef struct {
00043 power_state ac97_amp;
00044 power_state mmc_ctrl;
00045 dev_state mmc_card;
00046 } board_status_t;
00047
00048 typedef struct {
00049 time_t time;
00050 int MHz;
00051 } pwrQ_item_t;
00052
00053
00054 typedef struct lnode_rec {
00055 pwrQ_item_t * data;
00056 struct lnode_rec * next;
00057 } lnode;
00058
00059
00060 void llist_insert(lnode ** head, pwrQ_item_t * data);
00061
00062
00063 void llist_pop(lnode ** head);
00064
00065
00066 void llist_delete(lnode ** head);
00067
00068
00069 void llist_print(lnode ** head);
00070
00071
00072
00073 #define CF_ID "CF"
00074 #define SD_ID "SD"
00075 #define USB_ID "USB"
00076
00077
00078 #define POWERMGMTIFACE "/dev/battery"
00079 #define DEVEVTIFACE "/dev/buttons"
00080
00081
00082 #define BATTERY_LOW_WARNING 12
00083 #define BATTERY_LOW_SHUTDOWN 10
00084 #define BATTERY_LOW_EMERGENCY 8
00085
00086
00087 #define BATTERY_TIMELEFT_MAX 0xFFFF
00088
00089
00090 #define BATTERY_CHARGING 0
00091
00092
00093 #define BUTTON_IOCTL_BASE 'b'
00094
00095 #define BUTTON_IOCTL_READ_STATE _IOR( BUTTON_IOCTL_BASE,4,unsigned int)
00096 #define BUTTON_IOCTL_ENABLE_WACOM _IOW( BUTTON_IOCTL_BASE,5,unsigned int)
00097 #define BUTTON_IOCTL_DISABLE_WACOM _IOW( BUTTON_IOCTL_BASE,6,unsigned int)
00098 #define BUTTON_IOCTL_GET_STATUS _IOR( BUTTON_IOCTL_BASE,7,unsigned int)
00099
00100 #define BATTERY_IOCTL_BASE 'b'
00101 #define BATTERY_IOCTL_READ_CHARGE _IOR( BATTERY_IOCTL_BASE,1,unsigned int)
00102 #define BATTERY_IOCTL_READ_TIME _IOR( BATTERY_IOCTL_BASE,2,unsigned int)
00103 #define BATTERY_IOCTL_READ_TEMPERATURE _IOR( BATTERY_IOCTL_BASE,3,unsigned int)
00104 #define BATTERY_IOCTL_ENABLE_ETHERNET _IOR( BATTERY_IOCTL_BASE,5,unsigned int)
00105 #define BATTERY_IOCTL_DISABLE_ETHERNET _IOR( BATTERY_IOCTL_BASE,6,unsigned int)
00106 #define BATTERY_GET_TURBO_MODE _IOR( BATTERY_IOCTL_BASE,7,unsigned int)
00107 #define BATTERY_SET_TURBO_MODE _IOW( BATTERY_IOCTL_BASE,8,unsigned int)
00108 #define BATTERY_IOCTL_ENABLE_WACOM _IOR( BATTERY_IOCTL_BASE,9,unsigned int)
00109 #define BATTERY_IOCTL_DISABLE_WACOM _IOR( BATTERY_IOCTL_BASE,10,unsigned int)
00110 #define BATTERY_IOCTL_ENABLE_CF _IOR( BATTERY_IOCTL_BASE,11,unsigned int)
00111 #define BATTERY_IOCTL_DISABLE_CF _IOR( BATTERY_IOCTL_BASE,12,unsigned int)
00112 #define BATTERY_IOCTL_ENABLE_MMC _IOR( BATTERY_IOCTL_BASE,13,unsigned int)
00113 #define BATTERY_IOCTL_DISABLE_MMC _IOR( BATTERY_IOCTL_BASE,14,unsigned int)
00114 #define BATTERY_IOCTL_READ_STATUS _IOR( BATTERY_IOCTL_BASE,15,unsigned int)
00115 #define BATTERY_IOCTL_READ_CURRENT _IOR( BATTERY_IOCTL_BASE,16,unsigned int)
00116
00117
00118 #define SNDCTL_POWER_OFF _SIO('P', 99)
00119 #define SNDCTL_POWER_ON _SIO('P', 100)
00120
00121
00122 #define GETEVENT(x) (x&0xFF)
00123 #define GETPENDETECT(x) ((x&0x100)>>8)
00124 #define GETLEDSTATUS(x) ((x&0x200)>>9)
00125 #define GETCFDETECT(x) ((x&0x400)>>10)
00126 #define GETMMCDETECT(x) ((x&0x800)>>11)
00127
00128 #define SIOCIWFIRSTPRIV 0x8BE0
00129 #define WLANIOCTL SIOCIWFIRSTPRIV
00130 #define WLANDEEPSLEEP (WLANIOCTL + 27)
00131
00132 #define SERVER_BUFFER_SIZE 1024
00133
00134 #endif //__POWERMGR_H