0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef _UAPI_CAN_NETLINK_H
0020 #define _UAPI_CAN_NETLINK_H
0021
0022 #include <linux/types.h>
0023
0024
0025
0026
0027
0028
0029
0030
0031 struct can_bittiming {
0032 __u32 bitrate;
0033 __u32 sample_point;
0034 __u32 tq;
0035 __u32 prop_seg;
0036 __u32 phase_seg1;
0037 __u32 phase_seg2;
0038 __u32 sjw;
0039 __u32 brp;
0040 };
0041
0042
0043
0044
0045
0046
0047 struct can_bittiming_const {
0048 char name[16];
0049 __u32 tseg1_min;
0050 __u32 tseg1_max;
0051 __u32 tseg2_min;
0052 __u32 tseg2_max;
0053 __u32 sjw_max;
0054 __u32 brp_min;
0055 __u32 brp_max;
0056 __u32 brp_inc;
0057 };
0058
0059
0060
0061
0062 struct can_clock {
0063 __u32 freq;
0064 };
0065
0066
0067
0068
0069 enum can_state {
0070 CAN_STATE_ERROR_ACTIVE = 0,
0071 CAN_STATE_ERROR_WARNING,
0072 CAN_STATE_ERROR_PASSIVE,
0073 CAN_STATE_BUS_OFF,
0074 CAN_STATE_STOPPED,
0075 CAN_STATE_SLEEPING,
0076 CAN_STATE_MAX
0077 };
0078
0079
0080
0081
0082 struct can_berr_counter {
0083 __u16 txerr;
0084 __u16 rxerr;
0085 };
0086
0087
0088
0089
0090 struct can_ctrlmode {
0091 __u32 mask;
0092 __u32 flags;
0093 };
0094
0095 #define CAN_CTRLMODE_LOOPBACK 0x01
0096 #define CAN_CTRLMODE_LISTENONLY 0x02
0097 #define CAN_CTRLMODE_3_SAMPLES 0x04
0098 #define CAN_CTRLMODE_ONE_SHOT 0x08
0099 #define CAN_CTRLMODE_BERR_REPORTING 0x10
0100 #define CAN_CTRLMODE_FD 0x20
0101 #define CAN_CTRLMODE_PRESUME_ACK 0x40
0102 #define CAN_CTRLMODE_FD_NON_ISO 0x80
0103 #define CAN_CTRLMODE_CC_LEN8_DLC 0x100
0104 #define CAN_CTRLMODE_TDC_AUTO 0x200
0105 #define CAN_CTRLMODE_TDC_MANUAL 0x400
0106
0107
0108
0109
0110 struct can_device_stats {
0111 __u32 bus_error;
0112 __u32 error_warning;
0113 __u32 error_passive;
0114 __u32 bus_off;
0115 __u32 arbitration_lost;
0116 __u32 restarts;
0117 };
0118
0119
0120
0121
0122 enum {
0123 IFLA_CAN_UNSPEC,
0124 IFLA_CAN_BITTIMING,
0125 IFLA_CAN_BITTIMING_CONST,
0126 IFLA_CAN_CLOCK,
0127 IFLA_CAN_STATE,
0128 IFLA_CAN_CTRLMODE,
0129 IFLA_CAN_RESTART_MS,
0130 IFLA_CAN_RESTART,
0131 IFLA_CAN_BERR_COUNTER,
0132 IFLA_CAN_DATA_BITTIMING,
0133 IFLA_CAN_DATA_BITTIMING_CONST,
0134 IFLA_CAN_TERMINATION,
0135 IFLA_CAN_TERMINATION_CONST,
0136 IFLA_CAN_BITRATE_CONST,
0137 IFLA_CAN_DATA_BITRATE_CONST,
0138 IFLA_CAN_BITRATE_MAX,
0139 IFLA_CAN_TDC,
0140 IFLA_CAN_CTRLMODE_EXT,
0141
0142
0143 __IFLA_CAN_MAX,
0144 IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
0145 };
0146
0147
0148
0149
0150
0151
0152
0153 enum {
0154 IFLA_CAN_TDC_UNSPEC,
0155 IFLA_CAN_TDC_TDCV_MIN,
0156 IFLA_CAN_TDC_TDCV_MAX,
0157 IFLA_CAN_TDC_TDCO_MIN,
0158 IFLA_CAN_TDC_TDCO_MAX,
0159 IFLA_CAN_TDC_TDCF_MIN,
0160 IFLA_CAN_TDC_TDCF_MAX,
0161 IFLA_CAN_TDC_TDCV,
0162 IFLA_CAN_TDC_TDCO,
0163 IFLA_CAN_TDC_TDCF,
0164
0165
0166 __IFLA_CAN_TDC,
0167 IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
0168 };
0169
0170
0171
0172
0173 enum {
0174 IFLA_CAN_CTRLMODE_UNSPEC,
0175 IFLA_CAN_CTRLMODE_SUPPORTED,
0176
0177
0178 __IFLA_CAN_CTRLMODE,
0179 IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
0180 };
0181
0182
0183 #define CAN_TERMINATION_DISABLED 0
0184
0185 #endif