#ifndef _TS3INIT_HEADER_H #define _TS3INIT_HEADER_H enum { TS3INIT_HEADER_CLIENT_LENGTH = 18, TS3INIT_HEADER_SERVER_LENGTH = 12, }; /* * Magic number of a TS3INIT packet. */ struct ts3_init_header_tag { union { char tag8[8]; __aligned_u64 tag64; }; }; /* * Header of a TS3INIT client packet. */ struct ts3_init_client_header { struct ts3_init_header_tag tag; __be16 packet_id; __be16 client_id; __u8 flags; __u8 client_version[4]; __u8 command; }; /* * Header of a TS3INIT server packet. */ struct ts3_init_server_header { struct ts3_init_header_tag tag; __be16 packet_id; __u8 flags; __u8 command; }; /* * The available TS3INIT commands, both client and server. */ enum { COMMAND_GET_COOKIE = 0, COMMAND_SET_COOKIE, COMMAND_GET_PUZZLE, COMMAND_SET_PUZZLE, COMMAND_SOLVE_PUZZLE, COMMAND_RESET_PUZZLE, COMMAND_MAX, COMMAND_RESET = 127 }; #endif /* _TS3INIT_HEADER_H */