blob: 04562eb7410cfbe4648c921bdebb0eaff1529e1c [file] [log] [blame]
/* Simple file with a CCW map in it. */
#define __stringify_1(x) #x
#define __stringify(x) __stringify_1(x)
#define MODULE_GENERIC_TABLE(gtype,name) \
static const unsigned long __module_##gtype##_size \
__attribute__ ((unused)) = sizeof(struct gtype##_id); \
static const struct gtype##_id * __module_##gtype##_table \
__attribute__ ((unused)) = name; \
extern const struct gtype##_id __mod_##gtype##_table \
__attribute__ ((unused, alias(__stringify(name))))
#define MODULE_DEVICE_TABLE(type,name) \
MODULE_GENERIC_TABLE(type##_device,name)
struct ccw_device_id {
unsigned short match_flags; /* which fields to match against */
unsigned short cu_type; /* control unit type */
unsigned short dev_type; /* device type */
unsigned char cu_model; /* control unit model */
unsigned char dev_model; /* device model */
unsigned long driver_info;
};
enum match_flag {
CCW_DEVICE_ID_MATCH_CU_TYPE = 0x01,
CCW_DEVICE_ID_MATCH_CU_MODEL = 0x02,
CCW_DEVICE_ID_MATCH_DEVICE_TYPE = 0x04,
CCW_DEVICE_ID_MATCH_DEVICE_MODEL = 0x08,
};
static struct ccw_device_id ccw_ids[] = {
{ CCW_DEVICE_ID_MATCH_CU_TYPE |
CCW_DEVICE_ID_MATCH_CU_MODEL |
CCW_DEVICE_ID_MATCH_DEVICE_TYPE |
CCW_DEVICE_ID_MATCH_DEVICE_MODEL,
1, 2, 3, 4, 0xdeadbeef },
{ CCW_DEVICE_ID_MATCH_CU_TYPE |
CCW_DEVICE_ID_MATCH_CU_MODEL |
CCW_DEVICE_ID_MATCH_DEVICE_TYPE |
CCW_DEVICE_ID_MATCH_DEVICE_MODEL,
11, 12, 13, 14, 0xdeadbee5 },
{ /* end of list */ }
};
MODULE_DEVICE_TABLE(ccw, ccw_ids);