~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/can/netlink.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/uapi/linux/can/netlink.h (Version linux-6.11.5) and /include/uapi/linux/can/netlink.h (Version linux-4.13.16)


  1 /* SPDX-License-Identifier: GPL-2.0-only WITH  << 
  2 /*                                                  1 /*
  3  * linux/can/netlink.h                              2  * linux/can/netlink.h
  4  *                                                  3  *
  5  * Definitions for the CAN netlink interface        4  * Definitions for the CAN netlink interface
  6  *                                                  5  *
  7  * Copyright (c) 2009 Wolfgang Grandegger <wg@      6  * Copyright (c) 2009 Wolfgang Grandegger <wg@grandegger.com>
  8  *                                                  7  *
  9  * This program is free software; you can redi      8  * This program is free software; you can redistribute it and/or modify
 10  * it under the terms of the version 2 of the       9  * it under the terms of the version 2 of the GNU General Public License
 11  * as published by the Free Software Foundatio     10  * as published by the Free Software Foundation
 12  *                                                 11  *
 13  * This program is distributed in the hope tha     12  * This program is distributed in the hope that it will be useful,
 14  * but WITHOUT ANY WARRANTY; without even the      13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 16  * GNU General Public License for more details     15  * GNU General Public License for more details.
 17  */                                                16  */
 18                                                    17 
 19 #ifndef _UAPI_CAN_NETLINK_H                        18 #ifndef _UAPI_CAN_NETLINK_H
 20 #define _UAPI_CAN_NETLINK_H                        19 #define _UAPI_CAN_NETLINK_H
 21                                                    20 
 22 #include <linux/types.h>                           21 #include <linux/types.h>
 23                                                    22 
 24 /*                                                 23 /*
 25  * CAN bit-timing parameters                       24  * CAN bit-timing parameters
 26  *                                                 25  *
 27  * For further information, please read chapte     26  * For further information, please read chapter "8 BIT TIMING
 28  * REQUIREMENTS" of the "Bosch CAN Specificati     27  * REQUIREMENTS" of the "Bosch CAN Specification version 2.0"
 29  * at http://www.semiconductors.bosch.de/pdf/c     28  * at http://www.semiconductors.bosch.de/pdf/can2spec.pdf.
 30  */                                                29  */
 31 struct can_bittiming {                             30 struct can_bittiming {
 32         __u32 bitrate;          /* Bit-rate in     31         __u32 bitrate;          /* Bit-rate in bits/second */
 33         __u32 sample_point;     /* Sample poin     32         __u32 sample_point;     /* Sample point in one-tenth of a percent */
 34         __u32 tq;               /* Time quanta     33         __u32 tq;               /* Time quanta (TQ) in nanoseconds */
 35         __u32 prop_seg;         /* Propagation     34         __u32 prop_seg;         /* Propagation segment in TQs */
 36         __u32 phase_seg1;       /* Phase buffe     35         __u32 phase_seg1;       /* Phase buffer segment 1 in TQs */
 37         __u32 phase_seg2;       /* Phase buffe     36         __u32 phase_seg2;       /* Phase buffer segment 2 in TQs */
 38         __u32 sjw;              /* Synchronisa     37         __u32 sjw;              /* Synchronisation jump width in TQs */
 39         __u32 brp;              /* Bit-rate pr     38         __u32 brp;              /* Bit-rate prescaler */
 40 };                                                 39 };
 41                                                    40 
 42 /*                                                 41 /*
 43  * CAN hardware-dependent bit-timing constant  !!  42  * CAN harware-dependent bit-timing constant
 44  *                                                 43  *
 45  * Used for calculating and checking bit-timin     44  * Used for calculating and checking bit-timing parameters
 46  */                                                45  */
 47 struct can_bittiming_const {                       46 struct can_bittiming_const {
 48         char name[16];          /* Name of the     47         char name[16];          /* Name of the CAN controller hardware */
 49         __u32 tseg1_min;        /* Time segmen !!  48         __u32 tseg1_min;        /* Time segement 1 = prop_seg + phase_seg1 */
 50         __u32 tseg1_max;                           49         __u32 tseg1_max;
 51         __u32 tseg2_min;        /* Time segmen !!  50         __u32 tseg2_min;        /* Time segement 2 = phase_seg2 */
 52         __u32 tseg2_max;                           51         __u32 tseg2_max;
 53         __u32 sjw_max;          /* Synchronisa     52         __u32 sjw_max;          /* Synchronisation jump width */
 54         __u32 brp_min;          /* Bit-rate pr     53         __u32 brp_min;          /* Bit-rate prescaler */
 55         __u32 brp_max;                             54         __u32 brp_max;
 56         __u32 brp_inc;                             55         __u32 brp_inc;
 57 };                                                 56 };
 58                                                    57 
 59 /*                                                 58 /*
 60  * CAN clock parameters                            59  * CAN clock parameters
 61  */                                                60  */
 62 struct can_clock {                                 61 struct can_clock {
 63         __u32 freq;             /* CAN system      62         __u32 freq;             /* CAN system clock frequency in Hz */
 64 };                                                 63 };
 65                                                    64 
 66 /*                                                 65 /*
 67  * CAN operational and error states                66  * CAN operational and error states
 68  */                                                67  */
 69 enum can_state {                                   68 enum can_state {
 70         CAN_STATE_ERROR_ACTIVE = 0,     /* RX/     69         CAN_STATE_ERROR_ACTIVE = 0,     /* RX/TX error count < 96 */
 71         CAN_STATE_ERROR_WARNING,        /* RX/     70         CAN_STATE_ERROR_WARNING,        /* RX/TX error count < 128 */
 72         CAN_STATE_ERROR_PASSIVE,        /* RX/     71         CAN_STATE_ERROR_PASSIVE,        /* RX/TX error count < 256 */
 73         CAN_STATE_BUS_OFF,              /* RX/     72         CAN_STATE_BUS_OFF,              /* RX/TX error count >= 256 */
 74         CAN_STATE_STOPPED,              /* Dev     73         CAN_STATE_STOPPED,              /* Device is stopped */
 75         CAN_STATE_SLEEPING,             /* Dev     74         CAN_STATE_SLEEPING,             /* Device is sleeping */
 76         CAN_STATE_MAX                              75         CAN_STATE_MAX
 77 };                                                 76 };
 78                                                    77 
 79 /*                                                 78 /*
 80  * CAN bus error counters                          79  * CAN bus error counters
 81  */                                                80  */
 82 struct can_berr_counter {                          81 struct can_berr_counter {
 83         __u16 txerr;                               82         __u16 txerr;
 84         __u16 rxerr;                               83         __u16 rxerr;
 85 };                                                 84 };
 86                                                    85 
 87 /*                                                 86 /*
 88  * CAN controller mode                             87  * CAN controller mode
 89  */                                                88  */
 90 struct can_ctrlmode {                              89 struct can_ctrlmode {
 91         __u32 mask;                                90         __u32 mask;
 92         __u32 flags;                               91         __u32 flags;
 93 };                                                 92 };
 94                                                    93 
 95 #define CAN_CTRLMODE_LOOPBACK           0x01       94 #define CAN_CTRLMODE_LOOPBACK           0x01    /* Loopback mode */
 96 #define CAN_CTRLMODE_LISTENONLY         0x02       95 #define CAN_CTRLMODE_LISTENONLY         0x02    /* Listen-only mode */
 97 #define CAN_CTRLMODE_3_SAMPLES          0x04       96 #define CAN_CTRLMODE_3_SAMPLES          0x04    /* Triple sampling mode */
 98 #define CAN_CTRLMODE_ONE_SHOT           0x08       97 #define CAN_CTRLMODE_ONE_SHOT           0x08    /* One-Shot mode */
 99 #define CAN_CTRLMODE_BERR_REPORTING     0x10       98 #define CAN_CTRLMODE_BERR_REPORTING     0x10    /* Bus-error reporting */
100 #define CAN_CTRLMODE_FD                 0x20       99 #define CAN_CTRLMODE_FD                 0x20    /* CAN FD mode */
101 #define CAN_CTRLMODE_PRESUME_ACK        0x40      100 #define CAN_CTRLMODE_PRESUME_ACK        0x40    /* Ignore missing CAN ACKs */
102 #define CAN_CTRLMODE_FD_NON_ISO         0x80      101 #define CAN_CTRLMODE_FD_NON_ISO         0x80    /* CAN FD in non-ISO mode */
103 #define CAN_CTRLMODE_CC_LEN8_DLC        0x100  << 
104 #define CAN_CTRLMODE_TDC_AUTO           0x200  << 
105 #define CAN_CTRLMODE_TDC_MANUAL         0x400  << 
106                                                   102 
107 /*                                                103 /*
108  * CAN device statistics                          104  * CAN device statistics
109  */                                               105  */
110 struct can_device_stats {                         106 struct can_device_stats {
111         __u32 bus_error;        /* Bus errors     107         __u32 bus_error;        /* Bus errors */
112         __u32 error_warning;    /* Changes to     108         __u32 error_warning;    /* Changes to error warning state */
113         __u32 error_passive;    /* Changes to     109         __u32 error_passive;    /* Changes to error passive state */
114         __u32 bus_off;          /* Changes to     110         __u32 bus_off;          /* Changes to bus off state */
115         __u32 arbitration_lost; /* Arbitration    111         __u32 arbitration_lost; /* Arbitration lost errors */
116         __u32 restarts;         /* CAN control    112         __u32 restarts;         /* CAN controller re-starts */
117 };                                                113 };
118                                                   114 
119 /*                                                115 /*
120  * CAN netlink interface                          116  * CAN netlink interface
121  */                                               117  */
122 enum {                                            118 enum {
123         IFLA_CAN_UNSPEC,                          119         IFLA_CAN_UNSPEC,
124         IFLA_CAN_BITTIMING,                       120         IFLA_CAN_BITTIMING,
125         IFLA_CAN_BITTIMING_CONST,                 121         IFLA_CAN_BITTIMING_CONST,
126         IFLA_CAN_CLOCK,                           122         IFLA_CAN_CLOCK,
127         IFLA_CAN_STATE,                           123         IFLA_CAN_STATE,
128         IFLA_CAN_CTRLMODE,                        124         IFLA_CAN_CTRLMODE,
129         IFLA_CAN_RESTART_MS,                      125         IFLA_CAN_RESTART_MS,
130         IFLA_CAN_RESTART,                         126         IFLA_CAN_RESTART,
131         IFLA_CAN_BERR_COUNTER,                    127         IFLA_CAN_BERR_COUNTER,
132         IFLA_CAN_DATA_BITTIMING,                  128         IFLA_CAN_DATA_BITTIMING,
133         IFLA_CAN_DATA_BITTIMING_CONST,            129         IFLA_CAN_DATA_BITTIMING_CONST,
134         IFLA_CAN_TERMINATION,                     130         IFLA_CAN_TERMINATION,
135         IFLA_CAN_TERMINATION_CONST,               131         IFLA_CAN_TERMINATION_CONST,
136         IFLA_CAN_BITRATE_CONST,                   132         IFLA_CAN_BITRATE_CONST,
137         IFLA_CAN_DATA_BITRATE_CONST,              133         IFLA_CAN_DATA_BITRATE_CONST,
138         IFLA_CAN_BITRATE_MAX,                  !! 134         __IFLA_CAN_MAX
139         IFLA_CAN_TDC,                          << 
140         IFLA_CAN_CTRLMODE_EXT,                 << 
141                                                << 
142         /* add new constants above here */     << 
143         __IFLA_CAN_MAX,                        << 
144         IFLA_CAN_MAX = __IFLA_CAN_MAX - 1      << 
145 };                                             << 
146                                                << 
147 /*                                             << 
148  * CAN FD Transmitter Delay Compensation (TDC) << 
149  *                                             << 
150  * Please refer to struct can_tdc_const and ca << 
151  * include/linux/can/bittiming.h for further d << 
152  */                                            << 
153 enum {                                         << 
154         IFLA_CAN_TDC_UNSPEC,                   << 
155         IFLA_CAN_TDC_TDCV_MIN,  /* u32 */      << 
156         IFLA_CAN_TDC_TDCV_MAX,  /* u32 */      << 
157         IFLA_CAN_TDC_TDCO_MIN,  /* u32 */      << 
158         IFLA_CAN_TDC_TDCO_MAX,  /* u32 */      << 
159         IFLA_CAN_TDC_TDCF_MIN,  /* u32 */      << 
160         IFLA_CAN_TDC_TDCF_MAX,  /* u32 */      << 
161         IFLA_CAN_TDC_TDCV,      /* u32 */      << 
162         IFLA_CAN_TDC_TDCO,      /* u32 */      << 
163         IFLA_CAN_TDC_TDCF,      /* u32 */      << 
164                                                << 
165         /* add new constants above here */     << 
166         __IFLA_CAN_TDC,                        << 
167         IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1  << 
168 };                                                135 };
169                                                   136 
170 /*                                             !! 137 #define IFLA_CAN_MAX    (__IFLA_CAN_MAX - 1)
171  * IFLA_CAN_CTRLMODE_EXT nest: controller mode << 
172  */                                            << 
173 enum {                                         << 
174         IFLA_CAN_CTRLMODE_UNSPEC,              << 
175         IFLA_CAN_CTRLMODE_SUPPORTED,    /* u32 << 
176                                                << 
177         /* add new constants above here */     << 
178         __IFLA_CAN_CTRLMODE,                   << 
179         IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTR << 
180 };                                             << 
181                                                   138 
182 /* u16 termination range: 1..65535 Ohms */        139 /* u16 termination range: 1..65535 Ohms */
183 #define CAN_TERMINATION_DISABLED 0                140 #define CAN_TERMINATION_DISABLED 0
184                                                   141 
185 #endif /* !_UAPI_CAN_NETLINK_H */                 142 #endif /* !_UAPI_CAN_NETLINK_H */
186                                                   143 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php