xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/can/gw.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
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