2005-04-16 15:20:36 -07:00
# ifndef S390_CMB_H
# define S390_CMB_H
[S390] types: add/fix types.h include in header files
/include/asm/chpid.h:12: include of <linux/types.h> is preferred over <asm/types.h>
/include/asm/chsc.h:15: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/cmb.h:28: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/dasd.h:195: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/kvm.h:16: include of <linux/types.h> is preferred over <asm/types.h>
/include/asm/kvm.h:30: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/qeth.h:24: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/schid.h:5: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/swab.h:12: include of <linux/types.h> is preferred over <asm/types.h>
/include/asm/swab.h:19: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-01-09 12:14:52 +01:00
# include <linux/types.h>
2005-04-16 15:20:36 -07:00
/**
2007-10-12 16:11:16 +02:00
* struct cmbdata - channel measurement block data for user space
* @ size : size of the stored data
* @ elapsed_time : time since last sampling
* @ ssch_rsch_count : number of ssch and rsch
* @ sample_count : number of samples
* @ device_connect_time : time of device connect
* @ function_pending_time : time of function pending
* @ device_disconnect_time : time of device disconnect
* @ control_unit_queuing_time : time of control unit queuing
* @ device_active_only_time : time of device active only
* @ device_busy_time : time of device busy ( ext . format )
* @ initial_command_response_time : initial command response time ( ext . format )
2005-04-16 15:20:36 -07:00
*
2007-10-12 16:11:16 +02:00
* All values are stored as 64 bit for simplicity , especially
2005-04-16 15:20:36 -07:00
* in 32 bit emulation mode . All time values are normalized to
* nanoseconds .
* Currently , two formats are known , which differ by the size of
* this structure , i . e . the last two members are only set when
* the extended channel measurement facility ( first shipped in
* z990 machines ) is activated .
2007-10-12 16:11:16 +02:00
* Potentially , more fields could be added , which would result in a
2005-04-16 15:20:36 -07:00
* new ioctl number .
2007-10-12 16:11:16 +02:00
*/
2005-04-16 15:20:36 -07:00
struct cmbdata {
__u64 size ;
__u64 elapsed_time ;
/* basic and exended format: */
__u64 ssch_rsch_count ;
__u64 sample_count ;
__u64 device_connect_time ;
__u64 function_pending_time ;
__u64 device_disconnect_time ;
__u64 control_unit_queuing_time ;
__u64 device_active_only_time ;
/* extended format only: */
__u64 device_busy_time ;
__u64 initial_command_response_time ;
} ;
/* enable channel measurement */
2007-10-12 16:11:15 +02:00
# define BIODASDCMFENABLE _IO(DASD_IOCTL_LETTER, 32)
2005-04-16 15:20:36 -07:00
/* enable channel measurement */
2007-10-12 16:11:15 +02:00
# define BIODASDCMFDISABLE _IO(DASD_IOCTL_LETTER, 33)
2005-04-16 15:20:36 -07:00
/* read channel measurement data */
2007-10-12 16:11:15 +02:00
# define BIODASDREADALLCMB _IOWR(DASD_IOCTL_LETTER, 33, struct cmbdata)
2005-04-16 15:20:36 -07:00
# ifdef __KERNEL__
2005-05-01 08:58:59 -07:00
struct ccw_device ;
2005-04-16 15:20:36 -07:00
extern int enable_cmf ( struct ccw_device * cdev ) ;
extern int disable_cmf ( struct ccw_device * cdev ) ;
extern u64 cmf_read ( struct ccw_device * cdev , int index ) ;
2007-10-12 16:11:15 +02:00
extern int cmf_readall ( struct ccw_device * cdev , struct cmbdata * data ) ;
2005-04-16 15:20:36 -07:00
# endif /* __KERNEL__ */
# endif /* S390_CMB_H */