/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _UAPI_LINUX_CYCLADES_H
#define _UAPI_LINUX_CYCLADES_H
#include <linux/types.h>
struct cyclades_monitor {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long int_count;
  unsigned long char_count;
  unsigned long char_max;
  unsigned long char_last;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct cyclades_idle_stats {
  __kernel_time_t in_use;
  __kernel_time_t recv_idle;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_time_t xmit_idle;
  unsigned long recv_bytes;
  unsigned long xmit_bytes;
  unsigned long overruns;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long frame_errs;
  unsigned long parity_errs;
};
#define CYCLADES_MAGIC 0x4359
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CYGETMON 0x435901
#define CYGETTHRESH 0x435902
#define CYSETTHRESH 0x435903
#define CYGETDEFTHRESH 0x435904
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CYSETDEFTHRESH 0x435905
#define CYGETTIMEOUT 0x435906
#define CYSETTIMEOUT 0x435907
#define CYGETDEFTIMEOUT 0x435908
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CYSETDEFTIMEOUT 0x435909
#define CYSETRFLOW 0x43590a
#define CYGETRFLOW 0x43590b
#define CYSETRTSDTR_INV 0x43590c
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CYGETRTSDTR_INV 0x43590d
#define CYZSETPOLLCYCLE 0x43590e
#define CYZGETPOLLCYCLE 0x43590f
#define CYGETCD1400VER 0x435910
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CYSETWAIT 0x435912
#define CYGETWAIT 0x435913
#define CZIOC ('M' << 8)
#define CZ_NBOARDS (CZIOC | 0xfa)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CZ_BOOT_START (CZIOC | 0xfb)
#define CZ_BOOT_DATA (CZIOC | 0xfc)
#define CZ_BOOT_END (CZIOC | 0xfd)
#define CZ_TEST (CZIOC | 0xfe)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CZ_DEF_POLL (HZ / 25)
#define MAX_BOARD 4
#define MAX_DEV 256
#define CYZ_MAX_SPEED 921600
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CYZ_FIFO_SIZE 16
#define CYZ_BOOT_NWORDS 0x100
struct CYZ_BOOT_CTRL {
  unsigned short nboard;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int status[MAX_BOARD];
  int nchannel[MAX_BOARD];
  int fw_rev[MAX_BOARD];
  unsigned long offset;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long data[CYZ_BOOT_NWORDS];
};
#ifndef DP_WINDOW_SIZE
#define DP_WINDOW_SIZE (0x00080000)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ZE_DP_WINDOW_SIZE (0x00100000)
#define CTRL_WINDOW_SIZE (0x00000080)
struct CUSTOM_REG {
  __u32 fpga_id;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 fpga_version;
  __u32 cpu_start;
  __u32 cpu_stop;
  __u32 misc_reg;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 idt_mode;
  __u32 uart_irq_status;
  __u32 clear_timer0_irq;
  __u32 clear_timer1_irq;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 clear_timer2_irq;
  __u32 test_register;
  __u32 test_count;
  __u32 timer_select;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 pr_uart_irq_status;
  __u32 ram_wait_state;
  __u32 uart_wait_state;
  __u32 timer_wait_state;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 ack_wait_state;
};
struct RUNTIME_9060 {
  __u32 loc_addr_range;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 loc_addr_base;
  __u32 loc_arbitr;
  __u32 endian_descr;
  __u32 loc_rom_range;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 loc_rom_base;
  __u32 loc_bus_descr;
  __u32 loc_range_mst;
  __u32 loc_base_mst;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 loc_range_io;
  __u32 pci_base_mst;
  __u32 pci_conf_io;
  __u32 filler1;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 filler2;
  __u32 filler3;
  __u32 filler4;
  __u32 mail_box_0;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 mail_box_1;
  __u32 mail_box_2;
  __u32 mail_box_3;
  __u32 filler5;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 filler6;
  __u32 filler7;
  __u32 filler8;
  __u32 pci_doorbell;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 loc_doorbell;
  __u32 intr_ctrl_stat;
  __u32 init_ctrl;
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_RAM 0x00000001L
#define WIN_CREG 0x14000001L
#define TIMER_BY_1M 0x00
#define TIMER_BY_256K 0x01
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TIMER_BY_128K 0x02
#define TIMER_BY_32K 0x03
#endif
#ifndef ZFIRM_ID
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MAX_CHAN 64
#define ID_ADDRESS 0x00000180L
#define ZFIRM_ID 0x5557465AL
#define ZFIRM_HLT 0x59505B5CL
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ZFIRM_RST 0x56040674L
#define ZF_TINACT_DEF 1000
#define ZF_TINACT ZF_TINACT_DEF
struct FIRM_ID {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 signature;
  __u32 zfwctrl_addr;
};
#define C_OS_LINUX 0x00000030
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CH_DISABLE 0x00000000
#define C_CH_TXENABLE 0x00000001
#define C_CH_RXENABLE 0x00000002
#define C_CH_ENABLE 0x00000003
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CH_LOOPBACK 0x00000004
#define C_PR_NONE 0x00000000
#define C_PR_ODD 0x00000001
#define C_PR_EVEN 0x00000002
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_PR_MARK 0x00000004
#define C_PR_SPACE 0x00000008
#define C_PR_PARITY 0x000000ff
#define C_PR_DISCARD 0x00000100
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_PR_IGNORE 0x00000200
#define C_DL_CS5 0x00000001
#define C_DL_CS6 0x00000002
#define C_DL_CS7 0x00000004
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_DL_CS8 0x00000008
#define C_DL_CS 0x0000000f
#define C_DL_1STOP 0x00000010
#define C_DL_15STOP 0x00000020
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_DL_2STOP 0x00000040
#define C_DL_STOP 0x000000f0
#define C_IN_DISABLE 0x00000000
#define C_IN_TXBEMPTY 0x00000001
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_IN_TXLOWWM 0x00000002
#define C_IN_RXHIWM 0x00000010
#define C_IN_RXNNDT 0x00000020
#define C_IN_MDCD 0x00000100
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_IN_MDSR 0x00000200
#define C_IN_MRI 0x00000400
#define C_IN_MCTS 0x00000800
#define C_IN_RXBRK 0x00001000
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_IN_PR_ERROR 0x00002000
#define C_IN_FR_ERROR 0x00004000
#define C_IN_OVR_ERROR 0x00008000
#define C_IN_RXOFL 0x00010000
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_IN_IOCTLW 0x00020000
#define C_IN_MRTS 0x00040000
#define C_IN_ICHAR 0x00080000
#define C_FL_OXX 0x00000001
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_FL_IXX 0x00000002
#define C_FL_OIXANY 0x00000004
#define C_FL_SWFLOW 0x0000000f
#define C_FS_TXIDLE 0x00000000
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_FS_SENDING 0x00000001
#define C_FS_SWFLOW 0x00000002
#define C_RS_PARAM 0x80000000
#define C_RS_RTS 0x00000001
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_RS_DTR 0x00000004
#define C_RS_DCD 0x00000100
#define C_RS_DSR 0x00000200
#define C_RS_RI 0x00000400
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_RS_CTS 0x00000800
#define C_CM_RESET 0x01
#define C_CM_IOCTL 0x02
#define C_CM_IOCTLW 0x03
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_IOCTLM 0x04
#define C_CM_SENDXOFF 0x10
#define C_CM_SENDXON 0x11
#define C_CM_CLFLOW 0x12
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_SENDBRK 0x41
#define C_CM_INTBACK 0x42
#define C_CM_SET_BREAK 0x43
#define C_CM_CLR_BREAK 0x44
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_CMD_DONE 0x45
#define C_CM_INTBACK2 0x46
#define C_CM_TINACT 0x51
#define C_CM_IRQ_ENBL 0x52
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_IRQ_DSBL 0x53
#define C_CM_ACK_ENBL 0x54
#define C_CM_ACK_DSBL 0x55
#define C_CM_FLUSH_RX 0x56
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_FLUSH_TX 0x57
#define C_CM_Q_ENABLE 0x58
#define C_CM_Q_DISABLE 0x59
#define C_CM_TXBEMPTY 0x60
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_TXLOWWM 0x61
#define C_CM_RXHIWM 0x62
#define C_CM_RXNNDT 0x63
#define C_CM_TXFEMPTY 0x64
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_ICHAR 0x65
#define C_CM_MDCD 0x70
#define C_CM_MDSR 0x71
#define C_CM_MRI 0x72
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_MCTS 0x73
#define C_CM_MRTS 0x74
#define C_CM_RXBRK 0x84
#define C_CM_PR_ERROR 0x85
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_FR_ERROR 0x86
#define C_CM_OVR_ERROR 0x87
#define C_CM_RXOFL 0x88
#define C_CM_CMDERROR 0x90
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define C_CM_FATAL 0x91
#define C_CM_HW_RESET 0x92
struct CH_CTRL {
  __u32 op_mode;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 intr_enable;
  __u32 sw_flow;
  __u32 flow_status;
  __u32 comm_baud;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 comm_parity;
  __u32 comm_data_l;
  __u32 comm_flags;
  __u32 hw_flow;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 rs_control;
  __u32 rs_status;
  __u32 flow_xon;
  __u32 flow_xoff;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 hw_overflow;
  __u32 sw_overflow;
  __u32 comm_error;
  __u32 ichar;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 filler[7];
};
struct BUF_CTRL {
  __u32 flag_dma;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tx_bufaddr;
  __u32 tx_bufsize;
  __u32 tx_threshold;
  __u32 tx_get;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tx_put;
  __u32 rx_bufaddr;
  __u32 rx_bufsize;
  __u32 rx_threshold;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 rx_get;
  __u32 rx_put;
  __u32 filler[5];
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct BOARD_CTRL {
  __u32 n_channel;
  __u32 fw_version;
  __u32 op_system;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 dr_version;
  __u32 inactivity;
  __u32 hcmd_channel;
  __u32 hcmd_param;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 fwcmd_channel;
  __u32 fwcmd_param;
  __u32 zf_int_queue_addr;
  __u32 filler[6];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
#define QUEUE_SIZE (10 * MAX_CHAN)
struct INT_QUEUE {
  unsigned char intr_code[QUEUE_SIZE];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long channel[QUEUE_SIZE];
  unsigned long param[QUEUE_SIZE];
  unsigned long put;
  unsigned long get;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct ZFW_CTRL {
  struct BOARD_CTRL board_ctrl;
  struct CH_CTRL ch_ctrl[MAX_CHAN];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct BUF_CTRL buf_ctrl[MAX_CHAN];
};
#endif
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
