1/* 2 * arch/s390/kernel/s390dyn.h 3 * S/390 data definitions for dynamic device attachment 4 * 5 * S390 version 6 * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation 7 * Author(s): Ingo Adlung (adlung@de.ibm.com) 8 */ 9 10#ifndef __s390dyn_h 11#define __s390dyn_h 12 13#ifndef _LINUX_LIST_H 14#include <linux/list.h> 15#endif 16 17struct _devreg; 18 19typedef int (* oper_handler_func_t)( int irq, 20 struct _devreg *dreg); 21 22typedef struct _devreg_hc_t { 23 __u16 ctype; 24 __u8 cmode; 25 __u16 dtype; 26 __u8 dmode; 27 } __attribute__ ((packed)) devreg_hc_t; 28 29typedef struct _devreg { 30 struct list_head list; 31 union { 32 int devno; 33 devreg_hc_t hc; /* has controller info */ 34 } ci; 35 36 int flag; 37 oper_handler_func_t oper_func; 38} devreg_t; 39 40#define DEVREG_MATCH_CU_TYPE 0x00000001 41#define DEVREG_MATCH_CU_MODEL 0x00000002 42#define DEVREG_MATCH_DEV_TYPE 0x00000004 43#define DEVREG_MATCH_DEV_MODEL 0x00000008 44 45#define DEVREG_EXACT_MATCH (DEVREG_MATCH_CU_TYPE|DEVREG_MATCH_CU_MODEL|DEVREG_MATCH_DEV_TYPE|DEVREG_MATCH_DEV_MODEL) 46#define DEVREG_NO_CU_INFO (DEVREG_MATCH_DEV_TYPE|DEVREG_MATCH_DEV_MODEL) 47#define DEVREG_NO_DEV_INFO (DEVREG_MATCH_CU_TYPE|DEVREG_MATCH_CU_MODEL) 48 49#define DEVREG_TYPE_DEVNO 0x80000000 50#define DEVREG_TYPE_DEVCHARS 0x40000000 51 52int s390_device_register ( devreg_t *drinfo ); 53int s390_device_unregister( devreg_t *dreg ); 54devreg_t * s390_search_devreg ( ioinfo_t *ioinfo ); 55 56#endif /* __s390dyn */ 57