| 1 | |
| 2 | * Definitions for ADB (Apple Desktop Bus) support.
|
| 3 |
|
| 4 | #ifndef __ADB_H
|
| 5 | #define __ADB_H
|
| 6 |
|
| 7 | #include <uapi/linux/adb.h>
|
| 8 |
|
| 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 |
|
| 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 |
|
| 41 | #define ADBREQ_REPLY 1
|
| 42 | #define ADBREQ_SYNC 2
|
| 43 | #define ADBREQ_NOSEND 4
|
| 44 |
|
| 45 | |
| 46 | the operation, at least not with this version
|
| 47 | enum adb_message {
|
| 48 | ADB_MSG_POWERDOWN,
|
| 49 | ADB_MSG_PRE_RESET,
|
| 50 | ADB_MSG_POST_RESET
|
| 51 | };
|
| 52 | extern struct blocking_notifier_head adb_client_list;
|
| 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,
|
| 57 | void (*handler)(unsigned char *, int, int));
|
| 58 | int adb_unregister(int index);
|
| 59 | void adb_poll(void);
|
| 60 | void adb_input(unsigned char *, int, int);
|
| 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 |
|
| 66 | #endif
|