#ifndef __USBMUXD_H #define __USBMUXD_H #include #define USBMUXD_SOCKET_FILE "/var/run/usbmuxd" struct usbmuxd_header { uint32_t length; // length of message, including header uint32_t reserved; // always zero uint32_t type; // message type uint32_t tag; // responses to this query will echo back this tag } __attribute__((__packed__)); struct usbmuxd_result { struct usbmuxd_header header; uint32_t result; } __attribute__((__packed__)); struct usbmuxd_connect_request { struct usbmuxd_header header; uint32_t device_id; uint16_t tcp_dport; // TCP port number uint16_t reserved; // set to zero } __attribute__((__packed__)); struct usbmuxd_device_info { uint32_t device_id; uint16_t product_id; char serial_number[40]; } __attribute__((__packed__)); struct usbmuxd_device_info_request { struct usbmuxd_header header; struct usbmuxd_device_info device_info; char padding[222]; } __attribute__((__packed__)); struct usbmuxd_hello { struct usbmuxd_header header; } __attribute__((__packed__)); enum { USBMUXD_RESULT = 1, USBMUXD_CONNECT = 2, USBMUXD_HELLO = 3, USBMUXD_DEVICE_INFO = 4, }; #endif