blob: 4b42ac807f543b868d66d77e2886e4fd0c91f79f [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -07007#ifndef _UAPI_CAN_GW_H
8#define _UAPI_CAN_GW_H
Ben Cheng655a7c02013-10-16 16:09:24 -07009#include <linux/types.h>
10#include <linux/can.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011struct rtcanmsg {
Tao Baod7db5942015-01-28 10:07:51 -080012 __u8 can_family;
13 __u8 gwtype;
14 __u16 flags;
Ben Cheng655a7c02013-10-16 16:09:24 -070015};
16enum {
Tao Baod7db5942015-01-28 10:07:51 -080017 CGW_TYPE_UNSPEC,
18 CGW_TYPE_CAN_CAN,
Tao Baod7db5942015-01-28 10:07:51 -080019 __CGW_TYPE_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -070020};
21#define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1)
22enum {
Tao Baod7db5942015-01-28 10:07:51 -080023 CGW_UNSPEC,
24 CGW_MOD_AND,
25 CGW_MOD_OR,
26 CGW_MOD_XOR,
Tao Baod7db5942015-01-28 10:07:51 -080027 CGW_MOD_SET,
28 CGW_CS_XOR,
29 CGW_CS_CRC8,
30 CGW_HANDLED,
Tao Baod7db5942015-01-28 10:07:51 -080031 CGW_DROPPED,
32 CGW_SRC_IF,
33 CGW_DST_IF,
34 CGW_FILTER,
Tao Baod7db5942015-01-28 10:07:51 -080035 CGW_DELETED,
36 CGW_LIM_HOPS,
Christopher Ferris05d08e92016-02-04 13:16:38 -080037 CGW_MOD_UID,
Christopher Ferris9584fa42019-12-09 15:36:13 -080038 CGW_FDMOD_AND,
39 CGW_FDMOD_OR,
40 CGW_FDMOD_XOR,
41 CGW_FDMOD_SET,
Tao Baod7db5942015-01-28 10:07:51 -080042 __CGW_MAX
Christopher Ferris05d08e92016-02-04 13:16:38 -080043};
Christopher Ferris38062f92014-07-09 15:33:25 -070044#define CGW_MAX (__CGW_MAX - 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070045#define CGW_FLAGS_CAN_ECHO 0x01
46#define CGW_FLAGS_CAN_SRC_TSTAMP 0x02
Christopher Ferris05d08e92016-02-04 13:16:38 -080047#define CGW_FLAGS_CAN_IIF_TX_OK 0x04
Christopher Ferris9584fa42019-12-09 15:36:13 -080048#define CGW_FLAGS_CAN_FD 0x08
Christopher Ferris38062f92014-07-09 15:33:25 -070049#define CGW_MOD_FUNCS 4
Ben Cheng655a7c02013-10-16 16:09:24 -070050#define CGW_MOD_ID 0x01
51#define CGW_MOD_DLC 0x02
Christopher Ferris9584fa42019-12-09 15:36:13 -080052#define CGW_MOD_LEN CGW_MOD_DLC
Christopher Ferris05d08e92016-02-04 13:16:38 -080053#define CGW_MOD_DATA 0x04
Christopher Ferris9584fa42019-12-09 15:36:13 -080054#define CGW_MOD_FLAGS 0x08
55#define CGW_FRAME_MODS 4
Ben Cheng655a7c02013-10-16 16:09:24 -070056#define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS)
57struct cgw_frame_mod {
Christopher Ferris05d08e92016-02-04 13:16:38 -080058 struct can_frame cf;
Tao Baod7db5942015-01-28 10:07:51 -080059 __u8 modtype;
Ben Cheng655a7c02013-10-16 16:09:24 -070060} __attribute__((packed));
Christopher Ferris9584fa42019-12-09 15:36:13 -080061struct cgw_fdframe_mod {
62 struct canfd_frame cf;
63 __u8 modtype;
64} __attribute__((packed));
Ben Cheng655a7c02013-10-16 16:09:24 -070065#define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod)
Christopher Ferris9584fa42019-12-09 15:36:13 -080066#define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod)
Christopher Ferris05d08e92016-02-04 13:16:38 -080067struct cgw_csum_xor {
Tao Baod7db5942015-01-28 10:07:51 -080068 __s8 from_idx;
69 __s8 to_idx;
70 __s8 result_idx;
Christopher Ferris05d08e92016-02-04 13:16:38 -080071 __u8 init_xor_val;
Christopher Ferris38062f92014-07-09 15:33:25 -070072} __attribute__((packed));
Ben Cheng655a7c02013-10-16 16:09:24 -070073struct cgw_csum_crc8 {
Tao Baod7db5942015-01-28 10:07:51 -080074 __s8 from_idx;
Christopher Ferris05d08e92016-02-04 13:16:38 -080075 __s8 to_idx;
Tao Baod7db5942015-01-28 10:07:51 -080076 __s8 result_idx;
77 __u8 init_crc_val;
78 __u8 final_xor_val;
Christopher Ferris05d08e92016-02-04 13:16:38 -080079 __u8 crctab[256];
Tao Baod7db5942015-01-28 10:07:51 -080080 __u8 profile;
81 __u8 profile_data[20];
Ben Cheng655a7c02013-10-16 16:09:24 -070082} __attribute__((packed));
Christopher Ferris05d08e92016-02-04 13:16:38 -080083#define CGW_CS_XOR_LEN sizeof(struct cgw_csum_xor)
Christopher Ferris38062f92014-07-09 15:33:25 -070084#define CGW_CS_CRC8_LEN sizeof(struct cgw_csum_crc8)
Ben Cheng655a7c02013-10-16 16:09:24 -070085enum {
Tao Baod7db5942015-01-28 10:07:51 -080086 CGW_CRC8PRF_UNSPEC,
Christopher Ferris05d08e92016-02-04 13:16:38 -080087 CGW_CRC8PRF_1U8,
Tao Baod7db5942015-01-28 10:07:51 -080088 CGW_CRC8PRF_16U8,
89 CGW_CRC8PRF_SFFID_XOR,
90 __CGW_CRC8PRF_MAX
Christopher Ferris05d08e92016-02-04 13:16:38 -080091};
Christopher Ferris38062f92014-07-09 15:33:25 -070092#define CGW_CRC8PRF_MAX (__CGW_CRC8PRF_MAX - 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070093#endif