cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

adb.h (1832B)


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