| 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 | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 71 | struct can_device_stats { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 72 | __u32 bus_error; | 
|  | 73 | __u32 error_warning; | 
|  | 74 | __u32 error_passive; | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 75 | __u32 bus_off; | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 76 | __u32 arbitration_lost; | 
|  | 77 | __u32 restarts; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 78 | }; | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 79 | enum { | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 80 | IFLA_CAN_UNSPEC, | 
|  | 81 | IFLA_CAN_BITTIMING, | 
|  | 82 | IFLA_CAN_BITTIMING_CONST, | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 83 | IFLA_CAN_CLOCK, | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 84 | IFLA_CAN_STATE, | 
|  | 85 | IFLA_CAN_CTRLMODE, | 
|  | 86 | IFLA_CAN_RESTART_MS, | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 87 | IFLA_CAN_RESTART, | 
| Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 88 | IFLA_CAN_BERR_COUNTER, | 
|  | 89 | IFLA_CAN_DATA_BITTIMING, | 
|  | 90 | IFLA_CAN_DATA_BITTIMING_CONST, | 
| Christopher Ferris | 525ce91 | 2017-07-26 13:12:53 -0700 | [diff] [blame] | 91 | IFLA_CAN_TERMINATION, | 
|  | 92 | IFLA_CAN_TERMINATION_CONST, | 
|  | 93 | IFLA_CAN_BITRATE_CONST, | 
|  | 94 | IFLA_CAN_DATA_BITRATE_CONST, | 
| Christopher Ferris | 76a1d45 | 2018-06-27 14:12:29 -0700 | [diff] [blame] | 95 | IFLA_CAN_BITRATE_MAX, | 
| Christopher Ferris | e01d32f | 2015-03-31 14:57:48 -0700 | [diff] [blame] | 96 | __IFLA_CAN_MAX | 
| Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 97 | }; | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 98 | #define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1) | 
| Christopher Ferris | 525ce91 | 2017-07-26 13:12:53 -0700 | [diff] [blame] | 99 | #define CAN_TERMINATION_DISABLED 0 | 
| Ben Cheng | 655a7c0 | 2013-10-16 16:09:24 -0700 | [diff] [blame] | 100 | #endif |