Home | History | Annotate | Download | only in linux
      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  ****************************************************************************/
     19 #ifndef _UAPI_LINUX_SWITCHTEC_IOCTL_H
     20 #define _UAPI_LINUX_SWITCHTEC_IOCTL_H
     21 #include <linux/types.h>
     22 #define SWITCHTEC_IOCTL_PART_CFG0 0
     23 #define SWITCHTEC_IOCTL_PART_CFG1 1
     24 #define SWITCHTEC_IOCTL_PART_IMG0 2
     25 #define SWITCHTEC_IOCTL_PART_IMG1 3
     26 #define SWITCHTEC_IOCTL_PART_NVLOG 4
     27 #define SWITCHTEC_IOCTL_PART_VENDOR0 5
     28 #define SWITCHTEC_IOCTL_PART_VENDOR1 6
     29 #define SWITCHTEC_IOCTL_PART_VENDOR2 7
     30 #define SWITCHTEC_IOCTL_PART_VENDOR3 8
     31 #define SWITCHTEC_IOCTL_PART_VENDOR4 9
     32 #define SWITCHTEC_IOCTL_PART_VENDOR5 10
     33 #define SWITCHTEC_IOCTL_PART_VENDOR6 11
     34 #define SWITCHTEC_IOCTL_PART_VENDOR7 12
     35 #define SWITCHTEC_IOCTL_NUM_PARTITIONS 13
     36 struct switchtec_ioctl_flash_info {
     37   __u64 flash_length;
     38   __u32 num_partitions;
     39   __u32 padding;
     40 };
     41 #define SWITCHTEC_IOCTL_PART_ACTIVE 1
     42 #define SWITCHTEC_IOCTL_PART_RUNNING 2
     43 struct switchtec_ioctl_flash_part_info {
     44   __u32 flash_partition;
     45   __u32 address;
     46   __u32 length;
     47   __u32 active;
     48 };
     49 struct switchtec_ioctl_event_summary {
     50   __u64 global;
     51   __u64 part_bitmap;
     52   __u32 local_part;
     53   __u32 padding;
     54   __u32 part[48];
     55   __u32 pff[48];
     56 };
     57 #define SWITCHTEC_IOCTL_EVENT_STACK_ERROR 0
     58 #define SWITCHTEC_IOCTL_EVENT_PPU_ERROR 1
     59 #define SWITCHTEC_IOCTL_EVENT_ISP_ERROR 2
     60 #define SWITCHTEC_IOCTL_EVENT_SYS_RESET 3
     61 #define SWITCHTEC_IOCTL_EVENT_FW_EXC 4
     62 #define SWITCHTEC_IOCTL_EVENT_FW_NMI 5
     63 #define SWITCHTEC_IOCTL_EVENT_FW_NON_FATAL 6
     64 #define SWITCHTEC_IOCTL_EVENT_FW_FATAL 7
     65 #define SWITCHTEC_IOCTL_EVENT_TWI_MRPC_COMP 8
     66 #define SWITCHTEC_IOCTL_EVENT_TWI_MRPC_COMP_ASYNC 9
     67 #define SWITCHTEC_IOCTL_EVENT_CLI_MRPC_COMP 10
     68 #define SWITCHTEC_IOCTL_EVENT_CLI_MRPC_COMP_ASYNC 11
     69 #define SWITCHTEC_IOCTL_EVENT_GPIO_INT 12
     70 #define SWITCHTEC_IOCTL_EVENT_PART_RESET 13
     71 #define SWITCHTEC_IOCTL_EVENT_MRPC_COMP 14
     72 #define SWITCHTEC_IOCTL_EVENT_MRPC_COMP_ASYNC 15
     73 #define SWITCHTEC_IOCTL_EVENT_DYN_PART_BIND_COMP 16
     74 #define SWITCHTEC_IOCTL_EVENT_AER_IN_P2P 17
     75 #define SWITCHTEC_IOCTL_EVENT_AER_IN_VEP 18
     76 #define SWITCHTEC_IOCTL_EVENT_DPC 19
     77 #define SWITCHTEC_IOCTL_EVENT_CTS 20
     78 #define SWITCHTEC_IOCTL_EVENT_HOTPLUG 21
     79 #define SWITCHTEC_IOCTL_EVENT_IER 22
     80 #define SWITCHTEC_IOCTL_EVENT_THRESH 23
     81 #define SWITCHTEC_IOCTL_EVENT_POWER_MGMT 24
     82 #define SWITCHTEC_IOCTL_EVENT_TLP_THROTTLING 25
     83 #define SWITCHTEC_IOCTL_EVENT_FORCE_SPEED 26
     84 #define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT 27
     85 #define SWITCHTEC_IOCTL_EVENT_LINK_STATE 28
     86 #define SWITCHTEC_IOCTL_EVENT_GFMS 29
     87 #define SWITCHTEC_IOCTL_MAX_EVENTS 30
     88 #define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX - 1
     89 #define SWITCHTEC_IOCTL_EVENT_IDX_ALL - 2
     90 #define SWITCHTEC_IOCTL_EVENT_FLAG_CLEAR (1 << 0)
     91 #define SWITCHTEC_IOCTL_EVENT_FLAG_EN_POLL (1 << 1)
     92 #define SWITCHTEC_IOCTL_EVENT_FLAG_EN_LOG (1 << 2)
     93 #define SWITCHTEC_IOCTL_EVENT_FLAG_EN_CLI (1 << 3)
     94 #define SWITCHTEC_IOCTL_EVENT_FLAG_EN_FATAL (1 << 4)
     95 #define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_POLL (1 << 5)
     96 #define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_LOG (1 << 6)
     97 #define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_CLI (1 << 7)
     98 #define SWITCHTEC_IOCTL_EVENT_FLAG_DIS_FATAL (1 << 8)
     99 #define SWITCHTEC_IOCTL_EVENT_FLAG_UNUSED (~0x1ff)
    100 struct switchtec_ioctl_event_ctl {
    101   __u32 event_id;
    102   __s32 index;
    103   __u32 flags;
    104   __u32 occurred;
    105   __u32 count;
    106   __u32 data[5];
    107 };
    108 #define SWITCHTEC_IOCTL_PFF_VEP 100
    109 struct switchtec_ioctl_pff_port {
    110   __u32 pff;
    111   __u32 partition;
    112   __u32 port;
    113 };
    114 #define SWITCHTEC_IOCTL_FLASH_INFO _IOR('W', 0x40, struct switchtec_ioctl_flash_info)
    115 #define SWITCHTEC_IOCTL_FLASH_PART_INFO _IOWR('W', 0x41, struct switchtec_ioctl_flash_part_info)
    116 #define SWITCHTEC_IOCTL_EVENT_SUMMARY _IOR('W', 0x42, struct switchtec_ioctl_event_summary)
    117 #define SWITCHTEC_IOCTL_EVENT_CTL _IOWR('W', 0x43, struct switchtec_ioctl_event_ctl)
    118 #define SWITCHTEC_IOCTL_PFF_TO_PORT _IOWR('W', 0x44, struct switchtec_ioctl_pff_port)
    119 #define SWITCHTEC_IOCTL_PORT_TO_PFF _IOWR('W', 0x45, struct switchtec_ioctl_pff_port)
    120 #endif
    121