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
49#[repr(C)]
#[allow(deprecated)]
pub struct j1939_filter {
pub name: name_t,
pub name_mask: name_t,
pub pgn: pgn_t,
pub pgn_mask: pgn_t,
pub addr: u8,
pub addr_mask: u8,
}
#[automatically_derived]
#[allow(deprecated)]
impl ::core::clone::Clone for j1939_filter {
#[inline]
fn clone(&self) -> j1939_filter {
let _: ::core::clone::AssertParamIsClone<name_t>;
let _: ::core::clone::AssertParamIsClone<pgn_t>;
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}
#[automatically_derived]
#[allow(deprecated)]
impl ::core::marker::Copy for j1939_filter { }
#[automatically_derived]
#[allow(deprecated)]
impl ::core::fmt::Debug for j1939_filter {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
let names: &'static _ =
&["name", "name_mask", "pgn", "pgn_mask", "addr", "addr_mask"];
let values: &[&dyn ::core::fmt::Debug] =
&[&self.name, &self.name_mask, &self.pgn, &self.pgn_mask,
&self.addr, &&self.addr_mask];
::core::fmt::Formatter::debug_struct_fields_finish(f, "j1939_filter",
names, values)
}
}s! {
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;