/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef _UAPI_LINUX_ZORRO_H
#define _UAPI_LINUX_ZORRO_H
#include <linux/types.h>
#define ZORRO_MANUF(id) ((id) >> 16)
#define ZORRO_PROD(id) (((id) >> 8) & 0xff)
#define ZORRO_EPC(id) ((id) & 0xff)
#define ZORRO_ID(manuf,prod,epc) ((ZORRO_MANUF_ ##manuf << 16) | ((prod) << 8) | (epc))
typedef __u32 zorro_id;
#include <linux/zorro_ids.h>
#define GVP_PRODMASK (0xf8)
#define GVP_SCSICLKMASK (0x01)
enum GVP_flags {
  GVP_IO = 0x01,
  GVP_ACCEL = 0x02,
  GVP_SCSI = 0x04,
  GVP_24BITDMA = 0x08,
  GVP_25BITDMA = 0x10,
  GVP_NOBANK = 0x20,
  GVP_14MHZ = 0x40,
};
struct Node {
  __be32 ln_Succ;
  __be32 ln_Pred;
  __u8 ln_Type;
  __s8 ln_Pri;
  __be32 ln_Name;
} __attribute__((__packed__));
struct ExpansionRom {
  __u8 er_Type;
  __u8 er_Product;
  __u8 er_Flags;
  __u8 er_Reserved03;
  __be16 er_Manufacturer;
  __be32 er_SerialNumber;
  __be16 er_InitDiagVec;
  __u8 er_Reserved0c;
  __u8 er_Reserved0d;
  __u8 er_Reserved0e;
  __u8 er_Reserved0f;
} __attribute__((__packed__));
#define ERT_TYPEMASK 0xc0
#define ERT_ZORROII 0xc0
#define ERT_ZORROIII 0x80
#define ERTB_MEMLIST 5
#define ERTF_MEMLIST (1 << 5)
struct ConfigDev {
  struct Node cd_Node;
  __u8 cd_Flags;
  __u8 cd_Pad;
  struct ExpansionRom cd_Rom;
  __be32 cd_BoardAddr;
  __be32 cd_BoardSize;
  __be16 cd_SlotAddr;
  __be16 cd_SlotSize;
  __be32 cd_Driver;
  __be32 cd_NextCD;
  __be32 cd_Unused[4];
} __attribute__((__packed__));
#define ZORRO_NUM_AUTO 16
#endif
