#ifndef __HIDP_H
#define __HIDP_H
#include <linux/types.h>
#include <linux/hid.h>
#include <linux/kref.h>
#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/l2cap.h>
#define HIDP_HEADER_TRANS_MASK …
#define HIDP_HEADER_PARAM_MASK …
#define HIDP_TRANS_HANDSHAKE …
#define HIDP_TRANS_HID_CONTROL …
#define HIDP_TRANS_GET_REPORT …
#define HIDP_TRANS_SET_REPORT …
#define HIDP_TRANS_GET_PROTOCOL …
#define HIDP_TRANS_SET_PROTOCOL …
#define HIDP_TRANS_GET_IDLE …
#define HIDP_TRANS_SET_IDLE …
#define HIDP_TRANS_DATA …
#define HIDP_TRANS_DATC …
#define HIDP_HSHK_SUCCESSFUL …
#define HIDP_HSHK_NOT_READY …
#define HIDP_HSHK_ERR_INVALID_REPORT_ID …
#define HIDP_HSHK_ERR_UNSUPPORTED_REQUEST …
#define HIDP_HSHK_ERR_INVALID_PARAMETER …
#define HIDP_HSHK_ERR_UNKNOWN …
#define HIDP_HSHK_ERR_FATAL …
#define HIDP_CTRL_NOP …
#define HIDP_CTRL_HARD_RESET …
#define HIDP_CTRL_SOFT_RESET …
#define HIDP_CTRL_SUSPEND …
#define HIDP_CTRL_EXIT_SUSPEND …
#define HIDP_CTRL_VIRTUAL_CABLE_UNPLUG …
#define HIDP_DATA_RTYPE_MASK …
#define HIDP_DATA_RSRVD_MASK …
#define HIDP_DATA_RTYPE_OTHER …
#define HIDP_DATA_RTYPE_INPUT …
#define HIDP_DATA_RTYPE_OUPUT …
#define HIDP_DATA_RTYPE_FEATURE …
#define HIDP_PROTO_BOOT …
#define HIDP_PROTO_REPORT …
#define HIDPCONNADD …
#define HIDPCONNDEL …
#define HIDPGETCONNLIST …
#define HIDPGETCONNINFO …
#define HIDP_VIRTUAL_CABLE_UNPLUG …
#define HIDP_BOOT_PROTOCOL_MODE …
#define HIDP_BLUETOOTH_VENDOR_ID …
#define HIDP_WAITING_FOR_RETURN …
#define HIDP_WAITING_FOR_SEND_ACK …
struct hidp_connadd_req { … };
struct hidp_conndel_req { … };
struct hidp_conninfo { … };
struct hidp_connlist_req { … };
int hidp_connection_add(const struct hidp_connadd_req *req, struct socket *ctrl_sock, struct socket *intr_sock);
int hidp_connection_del(struct hidp_conndel_req *req);
int hidp_get_connlist(struct hidp_connlist_req *req);
int hidp_get_conninfo(struct hidp_conninfo *ci);
enum hidp_session_state { … };
struct hidp_session { … };
int __init hidp_init_sockets(void);
void __exit hidp_cleanup_sockets(void);
#endif