/* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_CAN_GW_H #define _UAPI_CAN_GW_H #include #include struct rtcanmsg { __u8 can_family; __u8 gwtype; __u16 flags; }; enum { CGW_TYPE_UNSPEC, CGW_TYPE_CAN_CAN, __CGW_TYPE_MAX }; #define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1) enum { CGW_UNSPEC, CGW_MOD_AND, CGW_MOD_OR, CGW_MOD_XOR, CGW_MOD_SET, CGW_CS_XOR, CGW_CS_CRC8, CGW_HANDLED, CGW_DROPPED, CGW_SRC_IF, CGW_DST_IF, CGW_FILTER, CGW_DELETED, CGW_LIM_HOPS, CGW_MOD_UID, CGW_FDMOD_AND, CGW_FDMOD_OR, CGW_FDMOD_XOR, CGW_FDMOD_SET, __CGW_MAX }; #define CGW_MAX (__CGW_MAX - 1) #define CGW_FLAGS_CAN_ECHO 0x01 #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 #define CGW_FLAGS_CAN_IIF_TX_OK 0x04 #define CGW_FLAGS_CAN_FD 0x08 #define CGW_MOD_FUNCS 4 #define CGW_MOD_ID 0x01 #define CGW_MOD_DLC 0x02 #define CGW_MOD_LEN CGW_MOD_DLC #define CGW_MOD_DATA 0x04 #define CGW_MOD_FLAGS 0x08 #define CGW_FRAME_MODS 4 #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS) struct cgw_frame_mod { struct can_frame cf; __u8 modtype; } __attribute__((packed)); struct cgw_fdframe_mod { struct canfd_frame cf; __u8 modtype; } __attribute__((packed)); #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod) #define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod) struct cgw_csum_xor { __s8 from_idx; __s8 to_idx; __s8 result_idx; __u8 init_xor_val; } __attribute__((packed)); struct cgw_csum_crc8 { __s8 from_idx; __s8 to_idx; __s8 result_idx; __u8 init_crc_val; __u8 final_xor_val; __u8 crctab[256]; __u8 profile; __u8 profile_data[20]; } __attribute__((packed)); #define CGW_CS_XOR_LEN sizeof(struct cgw_csum_xor) #define CGW_CS_CRC8_LEN sizeof(struct cgw_csum_crc8) enum { CGW_CRC8PRF_UNSPEC, CGW_CRC8PRF_1U8, CGW_CRC8PRF_16U8, CGW_CRC8PRF_SFFID_XOR, __CGW_CRC8PRF_MAX }; #define CGW_CRC8PRF_MAX (__CGW_CRC8PRF_MAX - 1) #endif