| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 1 | /**************************************************************************** | 
 | 2 |  **************************************************************************** | 
 | 3 |  *** | 
 | 4 |  ***   This header was automatically generated from a Linux kernel header | 
 | 5 |  ***   of the same name, to make information necessary for userspace to | 
 | 6 |  ***   call into the kernel available to libc.  It contains only constants, | 
 | 7 |  ***   structures, and macros generated from the original header, and thus, | 
 | 8 |  ***   contains no copyrightable information. | 
 | 9 |  *** | 
 | 10 |  ***   To edit the content of this header, modify the corresponding | 
 | 11 |  ***   source file (e.g. under external/kernel-headers/original/) then | 
 | 12 |  ***   run bionic/libc/kernel/tools/update_all.py | 
 | 13 |  *** | 
 | 14 |  ***   Any manual change here will be lost the next time this script will | 
 | 15 |  ***   be run. You've been warned! | 
 | 16 |  *** | 
 | 17 |  **************************************************************************** | 
 | 18 |  ****************************************************************************/ | 
| Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 19 | #ifndef _UAPI_CAN_NETLINK_H | 
 | 20 | #define _UAPI_CAN_NETLINK_H | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 21 | #include <linux/types.h> | 
 | 22 | struct can_bittiming { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 23 |   __u32 bitrate; | 
 | 24 |   __u32 sample_point; | 
 | 25 |   __u32 tq; | 
 | 26 |   __u32 prop_seg; | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 27 |   __u32 phase_seg1; | 
 | 28 |   __u32 phase_seg2; | 
 | 29 |   __u32 sjw; | 
 | 30 |   __u32 brp; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 31 | }; | 
 | 32 | struct can_bittiming_const { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 33 |   char name[16]; | 
 | 34 |   __u32 tseg1_min; | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 35 |   __u32 tseg1_max; | 
 | 36 |   __u32 tseg2_min; | 
 | 37 |   __u32 tseg2_max; | 
 | 38 |   __u32 sjw_max; | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 39 |   __u32 brp_min; | 
 | 40 |   __u32 brp_max; | 
 | 41 |   __u32 brp_inc; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 42 | }; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 43 | struct can_clock { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 44 |   __u32 freq; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 45 | }; | 
 | 46 | enum can_state { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 47 |   CAN_STATE_ERROR_ACTIVE = 0, | 
 | 48 |   CAN_STATE_ERROR_WARNING, | 
 | 49 |   CAN_STATE_ERROR_PASSIVE, | 
 | 50 |   CAN_STATE_BUS_OFF, | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 51 |   CAN_STATE_STOPPED, | 
 | 52 |   CAN_STATE_SLEEPING, | 
 | 53 |   CAN_STATE_MAX | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 54 | }; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 55 | struct can_berr_counter { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 56 |   __u16 txerr; | 
 | 57 |   __u16 rxerr; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 58 | }; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 59 | struct can_ctrlmode { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 60 |   __u32 mask; | 
 | 61 |   __u32 flags; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 62 | }; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 63 | #define CAN_CTRLMODE_LOOPBACK 0x01 | 
 | 64 | #define CAN_CTRLMODE_LISTENONLY 0x02 | 
 | 65 | #define CAN_CTRLMODE_3_SAMPLES 0x04 | 
 | 66 | #define CAN_CTRLMODE_ONE_SHOT 0x08 | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 67 | #define CAN_CTRLMODE_BERR_REPORTING 0x10 | 
| Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 68 | #define CAN_CTRLMODE_FD 0x20 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 69 | #define CAN_CTRLMODE_PRESUME_ACK 0x40 | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 70 | #define CAN_CTRLMODE_FD_NON_ISO 0x80 | 
| Christopher Ferris | 05667cd | 2021-02-16 16:01:34 -0800 | [diff] [blame] | 71 | #define CAN_CTRLMODE_CC_LEN8_DLC 0x100 | 
| Christopher Ferris | a479261 | 2022-01-10 13:51:15 -0800 | [diff] [blame] | 72 | #define CAN_CTRLMODE_TDC_AUTO 0x200 | 
 | 73 | #define CAN_CTRLMODE_TDC_MANUAL 0x400 | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 74 | struct can_device_stats { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 75 |   __u32 bus_error; | 
 | 76 |   __u32 error_warning; | 
 | 77 |   __u32 error_passive; | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 78 |   __u32 bus_off; | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 79 |   __u32 arbitration_lost; | 
 | 80 |   __u32 restarts; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 81 | }; | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 82 | enum { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 83 |   IFLA_CAN_UNSPEC, | 
 | 84 |   IFLA_CAN_BITTIMING, | 
 | 85 |   IFLA_CAN_BITTIMING_CONST, | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 86 |   IFLA_CAN_CLOCK, | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 87 |   IFLA_CAN_STATE, | 
 | 88 |   IFLA_CAN_CTRLMODE, | 
 | 89 |   IFLA_CAN_RESTART_MS, | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 90 |   IFLA_CAN_RESTART, | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 91 |   IFLA_CAN_BERR_COUNTER, | 
 | 92 |   IFLA_CAN_DATA_BITTIMING, | 
 | 93 |   IFLA_CAN_DATA_BITTIMING_CONST, | 
| Christopher Ferris | 525ce91 | 2017-07-26 13:12:53 -0700 | [diff] [blame] | 94 |   IFLA_CAN_TERMINATION, | 
 | 95 |   IFLA_CAN_TERMINATION_CONST, | 
 | 96 |   IFLA_CAN_BITRATE_CONST, | 
 | 97 |   IFLA_CAN_DATA_BITRATE_CONST, | 
| Christopher Ferris | 76a1d45 | 2018-06-27 14:12:29 -0700 | [diff] [blame] | 98 |   IFLA_CAN_BITRATE_MAX, | 
| Christopher Ferris | a479261 | 2022-01-10 13:51:15 -0800 | [diff] [blame] | 99 |   IFLA_CAN_TDC, | 
| Christopher Ferris | 1ed5534 | 2022-03-22 16:06:25 -0700 | [diff] [blame^] | 100 |   IFLA_CAN_CTRLMODE_EXT, | 
| Christopher Ferris | a479261 | 2022-01-10 13:51:15 -0800 | [diff] [blame] | 101 |   __IFLA_CAN_MAX, | 
 | 102 |   IFLA_CAN_MAX = __IFLA_CAN_MAX - 1 | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 103 | }; | 
| Christopher Ferris | a479261 | 2022-01-10 13:51:15 -0800 | [diff] [blame] | 104 | enum { | 
 | 105 |   IFLA_CAN_TDC_UNSPEC, | 
 | 106 |   IFLA_CAN_TDC_TDCV_MIN, | 
 | 107 |   IFLA_CAN_TDC_TDCV_MAX, | 
 | 108 |   IFLA_CAN_TDC_TDCO_MIN, | 
 | 109 |   IFLA_CAN_TDC_TDCO_MAX, | 
 | 110 |   IFLA_CAN_TDC_TDCF_MIN, | 
 | 111 |   IFLA_CAN_TDC_TDCF_MAX, | 
 | 112 |   IFLA_CAN_TDC_TDCV, | 
 | 113 |   IFLA_CAN_TDC_TDCO, | 
 | 114 |   IFLA_CAN_TDC_TDCF, | 
 | 115 |   __IFLA_CAN_TDC, | 
 | 116 |   IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1 | 
 | 117 | }; | 
| Christopher Ferris | 1ed5534 | 2022-03-22 16:06:25 -0700 | [diff] [blame^] | 118 | enum { | 
 | 119 |   IFLA_CAN_CTRLMODE_UNSPEC, | 
 | 120 |   IFLA_CAN_CTRLMODE_SUPPORTED, | 
 | 121 |   __IFLA_CAN_CTRLMODE, | 
 | 122 |   IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1 | 
 | 123 | }; | 
| Christopher Ferris | 525ce91 | 2017-07-26 13:12:53 -0700 | [diff] [blame] | 124 | #define CAN_TERMINATION_DISABLED 0 | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 125 | #endif |