summaryrefslogtreecommitdiff
path: root/include/uapi/linux/can.h
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2019-11-25 13:26:56 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2019-11-25 13:26:56 -0800
commit976e3645923bdd2fe7893aae33fd7a21098bfb28 (patch)
treed1cb24e4c9743beef15a4796070aca7e2c08228a /include/uapi/linux/can.h
parent8791663435e7fea896d8ca0f56fd64976d2089ff (diff)
parent71c296f6d5b33faf9867d04c6c5d75c7e56b886b (diff)
Merge branch 'next' into for-linus
Prepare input updates for 5.5 merge window.
Diffstat (limited to 'include/uapi/linux/can.h')
-rw-r--r--include/uapi/linux/can.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/include/uapi/linux/can.h b/include/uapi/linux/can.h
index 0afb7d8e867f..1e988fdeba34 100644
--- a/include/uapi/linux/can.h
+++ b/include/uapi/linux/can.h
@@ -157,7 +157,8 @@ struct canfd_frame {
#define CAN_TP20 4 /* VAG Transport Protocol v2.0 */
#define CAN_MCNET 5 /* Bosch MCNet */
#define CAN_ISOTP 6 /* ISO 15765-2 Transport Protocol */
-#define CAN_NPROTO 7
+#define CAN_J1939 7 /* SAE J1939 */
+#define CAN_NPROTO 8
#define SOL_CAN_BASE 100
@@ -174,6 +175,23 @@ struct sockaddr_can {
/* transport protocol class address information (e.g. ISOTP) */
struct { canid_t rx_id, tx_id; } tp;
+ /* J1939 address information */
+ struct {
+ /* 8 byte name when using dynamic addressing */
+ __u64 name;
+
+ /* pgn:
+ * 8 bit: PS in PDU2 case, else 0
+ * 8 bit: PF
+ * 1 bit: DP
+ * 1 bit: reserved
+ */
+ __u32 pgn;
+
+ /* 1 byte address */
+ __u8 addr;
+ } j1939;
+
/* reserved for future CAN protocols address information */
} can_addr;
};