libc/new/linux_uapi/linux/can/
j1939.rs1pub use crate::linux::can::*;
4
5pub const J1939_MAX_UNICAST_ADDR: c_uchar = 0xfd;
6pub const J1939_IDLE_ADDR: c_uchar = 0xfe;
7pub const J1939_NO_ADDR: c_uchar = 0xff;
8pub const J1939_NO_NAME: c_ulong = 0;
9pub const J1939_PGN_REQUEST: c_uint = 0x0ea00;
10pub const J1939_PGN_ADDRESS_CLAIMED: c_uint = 0x0ee00;
11pub const J1939_PGN_ADDRESS_COMMANDED: c_uint = 0x0fed8;
12pub const J1939_PGN_PDU1_MAX: c_uint = 0x3ff00;
13pub const J1939_PGN_MAX: c_uint = 0x3ffff;
14pub const J1939_NO_PGN: c_uint = 0x40000;
15
16pub type pgn_t = u32;
17pub type priority_t = u8;
18pub type name_t = u64;
19
20pub const SOL_CAN_J1939: c_int = SOL_CAN_BASE + CAN_J1939;
21
22pub const SO_J1939_FILTER: c_int = 1;
25pub const SO_J1939_PROMISC: c_int = 2;
26pub const SO_J1939_SEND_PRIO: c_int = 3;
27pub const SO_J1939_ERRQUEUE: c_int = 4;
28
29pub const SCM_J1939_DEST_ADDR: c_int = 1;
30pub const SCM_J1939_DEST_NAME: c_int = 2;
31pub const SCM_J1939_PRIO: c_int = 3;
32pub const SCM_J1939_ERRQUEUE: c_int = 4;
33
34pub const J1939_NLA_PAD: c_int = 0;
35pub const J1939_NLA_BYTES_ACKED: c_int = 1;
36pub const J1939_NLA_TOTAL_SIZE: c_int = 2;
37pub const J1939_NLA_PGN: c_int = 3;
38pub const J1939_NLA_SRC_NAME: c_int = 4;
39pub const J1939_NLA_DEST_NAME: c_int = 5;
40pub const J1939_NLA_SRC_ADDR: c_int = 6;
41pub const J1939_NLA_DEST_ADDR: c_int = 7;
42
43pub const J1939_EE_INFO_NONE: c_int = 0;
44pub const J1939_EE_INFO_TX_ABORT: c_int = 1;
45pub const J1939_EE_INFO_RX_RTS: c_int = 2;
46pub const J1939_EE_INFO_RX_DPO: c_int = 3;
47pub const J1939_EE_INFO_RX_ABORT: c_int = 4;
48
49s! {
50 pub struct j1939_filter {
51 pub name: name_t,
52 pub name_mask: name_t,
53 pub pgn: pgn_t,
54 pub pgn_mask: pgn_t,
55 pub addr: u8,
56 pub addr_mask: u8,
57 }
58}
59
60pub const J1939_FILTER_MAX: c_int = 512;