/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #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