]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * Definitions for ADB (Apple Desktop Bus) support. | |
3 | */ | |
4 | #ifndef __ADB_H | |
5 | #define __ADB_H | |
6 | ||
607ca46e | 7 | #include <uapi/linux/adb.h> |
1da177e4 | 8 | |
1da177e4 LT |
9 | |
10 | struct adb_request { | |
11 | unsigned char data[32]; | |
12 | int nbytes; | |
13 | unsigned char reply[32]; | |
14 | int reply_len; | |
15 | unsigned char reply_expected; | |
16 | unsigned char sent; | |
17 | unsigned char complete; | |
18 | void (*done)(struct adb_request *); | |
19 | void *arg; | |
20 | struct adb_request *next; | |
21 | }; | |
22 | ||
23 | struct adb_ids { | |
24 | int nids; | |
25 | unsigned char id[16]; | |
26 | }; | |
27 | ||
28 | /* Structure which encapsulates a low-level ADB driver */ | |
29 | ||
30 | struct adb_driver { | |
31 | char name[16]; | |
32 | int (*probe)(void); | |
33 | int (*init)(void); | |
34 | int (*send_request)(struct adb_request *req, int sync); | |
35 | int (*autopoll)(int devs); | |
36 | void (*poll)(void); | |
37 | int (*reset_bus)(void); | |
38 | }; | |
39 | ||
40 | /* Values for adb_request flags */ | |
41 | #define ADBREQ_REPLY 1 /* expect reply */ | |
42 | #define ADBREQ_SYNC 2 /* poll until done */ | |
43 | #define ADBREQ_NOSEND 4 /* build the request, but don't send it */ | |
44 | ||
45 | /* Messages sent thru the client_list notifier. You should NOT stop | |
46 | the operation, at least not with this version */ | |
47 | enum adb_message { | |
48 | ADB_MSG_POWERDOWN, /* Currently called before sleep only */ | |
49 | ADB_MSG_PRE_RESET, /* Called before resetting the bus */ | |
50 | ADB_MSG_POST_RESET /* Called after resetting the bus (re-do init & register) */ | |
51 | }; | |
e041c683 | 52 | extern struct blocking_notifier_head adb_client_list; |
1da177e4 LT |
53 | |
54 | int adb_request(struct adb_request *req, void (*done)(struct adb_request *), | |
55 | int flags, int nbytes, ...); | |
56 | int adb_register(int default_id,int handler_id,struct adb_ids *ids, | |
7d12e780 | 57 | void (*handler)(unsigned char *, int, int)); |
1da177e4 LT |
58 | int adb_unregister(int index); |
59 | void adb_poll(void); | |
7d12e780 | 60 | void adb_input(unsigned char *, int, int); |
1da177e4 LT |
61 | int adb_reset_bus(void); |
62 | ||
63 | int adb_try_handler_change(int address, int new_id); | |
64 | int adb_get_infos(int address, int *original_address, int *handler_id); | |
65 | ||
1da177e4 | 66 | #endif /* __ADB_H */ |