1b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare/**************************************************************************** 2b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare **************************************************************************** 3b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** 4b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** This header was automatically generated from a Linux kernel header 5b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** of the same name, to make information necessary for userspace to 6b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** call into the kernel available to libc. It contains only constants, 7b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** structures, and macros generated from the original header, and thus, 8b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** contains no copyrightable information. 9b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare *** 10b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare **************************************************************************** 11b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare ****************************************************************************/ 12b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#ifndef _LINUX_MCA_H 13b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define _LINUX_MCA_H 14b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 15b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#include <linux/device.h> 16b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 17b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define MCA_bus 0 18b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 19b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearetypedef int (*MCA_ProcFn)(char* buf, int slot, void* dev); 20b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 21b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beareenum MCA_AdapterStatus { 22b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare MCA_ADAPTER_NORMAL = 0, 23b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare MCA_ADAPTER_NONE = 1, 24b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare MCA_ADAPTER_DISABLED = 2, 25b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare MCA_ADAPTER_ERROR = 3 26b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 27b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 28b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearestruct mca_device { 29b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u64 dma_mask; 30b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int pos_id; 31b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int slot; 32b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 33b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int index; 34b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 35b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int driver_loaded; 36b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 37b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare unsigned char pos[8]; 38b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 39b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare short pos_register; 40b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 41b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare enum MCA_AdapterStatus status; 42b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct device dev; 43b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare char name[32]; 44b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 45b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define to_mca_device(mdev) container_of(mdev, struct mca_device, dev) 46b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 47b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearestruct mca_bus_accessor_functions { 48b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare unsigned char (*mca_read_pos)(struct mca_device *, int reg); 49b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare void (*mca_write_pos)(struct mca_device *, int reg, 50b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare unsigned char byte); 51b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int (*mca_transform_irq)(struct mca_device *, int irq); 52b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int (*mca_transform_ioport)(struct mca_device *, 53b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int region); 54b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare void * (*mca_transform_memory)(struct mca_device *, 55b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare void *memory); 56b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 57b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 58b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearestruct mca_bus { 59b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare u64 default_dma_mask; 60b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare int number; 61b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct mca_bus_accessor_functions f; 62b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct device dev; 63b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare char name[32]; 64b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 65b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define to_mca_bus(mdev) container_of(mdev, struct mca_bus, dev) 66b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 67b17fe090db1a34bac2c56bef93925fc893300e70Bruce Bearestruct mca_driver { 68b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare const short *id_table; 69b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare void *driver_data; 70b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare struct device_driver driver; 71b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare}; 72b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#define to_mca_driver(mdriver) container_of(mdriver, struct mca_driver, driver) 73b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare 74b17fe090db1a34bac2c56bef93925fc893300e70Bruce Beare#endif 75