1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_CAN_GW_H 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_CAN_GW_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <linux/can.h> 11*8d67ca89SAndroid Build Coastguard Worker struct rtcanmsg { 12*8d67ca89SAndroid Build Coastguard Worker __u8 can_family; 13*8d67ca89SAndroid Build Coastguard Worker __u8 gwtype; 14*8d67ca89SAndroid Build Coastguard Worker __u16 flags; 15*8d67ca89SAndroid Build Coastguard Worker }; 16*8d67ca89SAndroid Build Coastguard Worker enum { 17*8d67ca89SAndroid Build Coastguard Worker CGW_TYPE_UNSPEC, 18*8d67ca89SAndroid Build Coastguard Worker CGW_TYPE_CAN_CAN, 19*8d67ca89SAndroid Build Coastguard Worker __CGW_TYPE_MAX 20*8d67ca89SAndroid Build Coastguard Worker }; 21*8d67ca89SAndroid Build Coastguard Worker #define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1) 22*8d67ca89SAndroid Build Coastguard Worker enum { 23*8d67ca89SAndroid Build Coastguard Worker CGW_UNSPEC, 24*8d67ca89SAndroid Build Coastguard Worker CGW_MOD_AND, 25*8d67ca89SAndroid Build Coastguard Worker CGW_MOD_OR, 26*8d67ca89SAndroid Build Coastguard Worker CGW_MOD_XOR, 27*8d67ca89SAndroid Build Coastguard Worker CGW_MOD_SET, 28*8d67ca89SAndroid Build Coastguard Worker CGW_CS_XOR, 29*8d67ca89SAndroid Build Coastguard Worker CGW_CS_CRC8, 30*8d67ca89SAndroid Build Coastguard Worker CGW_HANDLED, 31*8d67ca89SAndroid Build Coastguard Worker CGW_DROPPED, 32*8d67ca89SAndroid Build Coastguard Worker CGW_SRC_IF, 33*8d67ca89SAndroid Build Coastguard Worker CGW_DST_IF, 34*8d67ca89SAndroid Build Coastguard Worker CGW_FILTER, 35*8d67ca89SAndroid Build Coastguard Worker CGW_DELETED, 36*8d67ca89SAndroid Build Coastguard Worker CGW_LIM_HOPS, 37*8d67ca89SAndroid Build Coastguard Worker CGW_MOD_UID, 38*8d67ca89SAndroid Build Coastguard Worker CGW_FDMOD_AND, 39*8d67ca89SAndroid Build Coastguard Worker CGW_FDMOD_OR, 40*8d67ca89SAndroid Build Coastguard Worker CGW_FDMOD_XOR, 41*8d67ca89SAndroid Build Coastguard Worker CGW_FDMOD_SET, 42*8d67ca89SAndroid Build Coastguard Worker __CGW_MAX 43*8d67ca89SAndroid Build Coastguard Worker }; 44*8d67ca89SAndroid Build Coastguard Worker #define CGW_MAX (__CGW_MAX - 1) 45*8d67ca89SAndroid Build Coastguard Worker #define CGW_FLAGS_CAN_ECHO 0x01 46*8d67ca89SAndroid Build Coastguard Worker #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 47*8d67ca89SAndroid Build Coastguard Worker #define CGW_FLAGS_CAN_IIF_TX_OK 0x04 48*8d67ca89SAndroid Build Coastguard Worker #define CGW_FLAGS_CAN_FD 0x08 49*8d67ca89SAndroid Build Coastguard Worker #define CGW_MOD_FUNCS 4 50*8d67ca89SAndroid Build Coastguard Worker #define CGW_MOD_ID 0x01 51*8d67ca89SAndroid Build Coastguard Worker #define CGW_MOD_DLC 0x02 52*8d67ca89SAndroid Build Coastguard Worker #define CGW_MOD_LEN CGW_MOD_DLC 53*8d67ca89SAndroid Build Coastguard Worker #define CGW_MOD_DATA 0x04 54*8d67ca89SAndroid Build Coastguard Worker #define CGW_MOD_FLAGS 0x08 55*8d67ca89SAndroid Build Coastguard Worker #define CGW_FRAME_MODS 4 56*8d67ca89SAndroid Build Coastguard Worker #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS) 57*8d67ca89SAndroid Build Coastguard Worker struct cgw_frame_mod { 58*8d67ca89SAndroid Build Coastguard Worker struct can_frame cf; 59*8d67ca89SAndroid Build Coastguard Worker __u8 modtype; 60*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 61*8d67ca89SAndroid Build Coastguard Worker struct cgw_fdframe_mod { 62*8d67ca89SAndroid Build Coastguard Worker struct canfd_frame cf; 63*8d67ca89SAndroid Build Coastguard Worker __u8 modtype; 64*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 65*8d67ca89SAndroid Build Coastguard Worker #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod) 66*8d67ca89SAndroid Build Coastguard Worker #define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod) 67*8d67ca89SAndroid Build Coastguard Worker struct cgw_csum_xor { 68*8d67ca89SAndroid Build Coastguard Worker __s8 from_idx; 69*8d67ca89SAndroid Build Coastguard Worker __s8 to_idx; 70*8d67ca89SAndroid Build Coastguard Worker __s8 result_idx; 71*8d67ca89SAndroid Build Coastguard Worker __u8 init_xor_val; 72*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 73*8d67ca89SAndroid Build Coastguard Worker struct cgw_csum_crc8 { 74*8d67ca89SAndroid Build Coastguard Worker __s8 from_idx; 75*8d67ca89SAndroid Build Coastguard Worker __s8 to_idx; 76*8d67ca89SAndroid Build Coastguard Worker __s8 result_idx; 77*8d67ca89SAndroid Build Coastguard Worker __u8 init_crc_val; 78*8d67ca89SAndroid Build Coastguard Worker __u8 final_xor_val; 79*8d67ca89SAndroid Build Coastguard Worker __u8 crctab[256]; 80*8d67ca89SAndroid Build Coastguard Worker __u8 profile; 81*8d67ca89SAndroid Build Coastguard Worker __u8 profile_data[20]; 82*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 83*8d67ca89SAndroid Build Coastguard Worker #define CGW_CS_XOR_LEN sizeof(struct cgw_csum_xor) 84*8d67ca89SAndroid Build Coastguard Worker #define CGW_CS_CRC8_LEN sizeof(struct cgw_csum_crc8) 85*8d67ca89SAndroid Build Coastguard Worker enum { 86*8d67ca89SAndroid Build Coastguard Worker CGW_CRC8PRF_UNSPEC, 87*8d67ca89SAndroid Build Coastguard Worker CGW_CRC8PRF_1U8, 88*8d67ca89SAndroid Build Coastguard Worker CGW_CRC8PRF_16U8, 89*8d67ca89SAndroid Build Coastguard Worker CGW_CRC8PRF_SFFID_XOR, 90*8d67ca89SAndroid Build Coastguard Worker __CGW_CRC8PRF_MAX 91*8d67ca89SAndroid Build Coastguard Worker }; 92*8d67ca89SAndroid Build Coastguard Worker #define CGW_CRC8PRF_MAX (__CGW_CRC8PRF_MAX - 1) 93*8d67ca89SAndroid Build Coastguard Worker #endif 94