1 /*
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  */
7 #ifndef _UAPI_CAN_J1939_H_
8 #define _UAPI_CAN_J1939_H_
9 #include <linux/types.h>
10 #include <linux/socket.h>
11 #include <linux/can.h>
12 #define J1939_MAX_UNICAST_ADDR 0xfd
13 #define J1939_IDLE_ADDR 0xfe
14 #define J1939_NO_ADDR 0xff
15 #define J1939_NO_NAME 0
16 #define J1939_PGN_REQUEST 0x0ea00
17 #define J1939_PGN_ADDRESS_CLAIMED 0x0ee00
18 #define J1939_PGN_ADDRESS_COMMANDED 0x0fed8
19 #define J1939_PGN_PDU1_MAX 0x3ff00
20 #define J1939_PGN_MAX 0x3ffff
21 #define J1939_NO_PGN 0x40000
22 typedef __u32 pgn_t;
23 typedef __u8 priority_t;
24 typedef __u64 name_t;
25 #define SOL_CAN_J1939 (SOL_CAN_BASE + CAN_J1939)
26 enum {
27   SO_J1939_FILTER = 1,
28   SO_J1939_PROMISC = 2,
29   SO_J1939_SEND_PRIO = 3,
30   SO_J1939_ERRQUEUE = 4,
31 };
32 enum {
33   SCM_J1939_DEST_ADDR = 1,
34   SCM_J1939_DEST_NAME = 2,
35   SCM_J1939_PRIO = 3,
36   SCM_J1939_ERRQUEUE = 4,
37 };
38 enum {
39   J1939_NLA_PAD,
40   J1939_NLA_BYTES_ACKED,
41   J1939_NLA_TOTAL_SIZE,
42   J1939_NLA_PGN,
43   J1939_NLA_SRC_NAME,
44   J1939_NLA_DEST_NAME,
45   J1939_NLA_SRC_ADDR,
46   J1939_NLA_DEST_ADDR,
47 };
48 enum {
49   J1939_EE_INFO_NONE,
50   J1939_EE_INFO_TX_ABORT,
51   J1939_EE_INFO_RX_RTS,
52   J1939_EE_INFO_RX_DPO,
53   J1939_EE_INFO_RX_ABORT,
54 };
55 struct j1939_filter {
56   name_t name;
57   name_t name_mask;
58   pgn_t pgn;
59   pgn_t pgn_mask;
60   __u8 addr;
61   __u8 addr_mask;
62 };
63 #define J1939_FILTER_MAX 512
64 #endif
65