a53c8fab3f
Remove the file name from the comment at top of many files. In most cases the file name was wrong anyway, so it's rather pointless. Also unify the IBM copyright statement. We did have a lot of sightly different statements and wanted to change them one after another whenever a file gets touched. However that never happened. Instead people start to take the old/"wrong" statements to use as a template for new files. So unify all of them in one go. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
157 lines
2.9 KiB
C
157 lines
2.9 KiB
C
/*
|
|
* ioctl interface for /dev/chsc
|
|
*
|
|
* Copyright IBM Corp. 2008
|
|
* Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
|
|
*/
|
|
|
|
#ifndef _ASM_CHSC_H
|
|
#define _ASM_CHSC_H
|
|
|
|
#include <linux/types.h>
|
|
#include <asm/chpid.h>
|
|
#include <asm/schid.h>
|
|
|
|
struct chsc_async_header {
|
|
__u16 length;
|
|
__u16 code;
|
|
__u32 cmd_dependend;
|
|
__u32 key : 4;
|
|
__u32 : 28;
|
|
struct subchannel_id sid;
|
|
} __attribute__ ((packed));
|
|
|
|
struct chsc_async_area {
|
|
struct chsc_async_header header;
|
|
__u8 data[PAGE_SIZE - 16 /* size of chsc_async_header */];
|
|
} __attribute__ ((packed));
|
|
|
|
|
|
struct chsc_response_struct {
|
|
__u16 length;
|
|
__u16 code;
|
|
__u32 parms;
|
|
__u8 data[PAGE_SIZE - 8];
|
|
} __attribute__ ((packed));
|
|
|
|
struct chsc_chp_cd {
|
|
struct chp_id chpid;
|
|
int m;
|
|
int fmt;
|
|
struct chsc_response_struct cpcb;
|
|
};
|
|
|
|
struct chsc_cu_cd {
|
|
__u16 cun;
|
|
__u8 cssid;
|
|
int m;
|
|
int fmt;
|
|
struct chsc_response_struct cucb;
|
|
};
|
|
|
|
struct chsc_sch_cud {
|
|
struct subchannel_id schid;
|
|
int fmt;
|
|
struct chsc_response_struct scub;
|
|
};
|
|
|
|
struct conf_id {
|
|
int m;
|
|
__u8 cssid;
|
|
__u8 ssid;
|
|
};
|
|
|
|
struct chsc_conf_info {
|
|
struct conf_id id;
|
|
int fmt;
|
|
struct chsc_response_struct scid;
|
|
};
|
|
|
|
struct ccl_parm_chpid {
|
|
int m;
|
|
struct chp_id chp;
|
|
};
|
|
|
|
struct ccl_parm_cssids {
|
|
__u8 f_cssid;
|
|
__u8 l_cssid;
|
|
};
|
|
|
|
struct chsc_comp_list {
|
|
struct {
|
|
enum {
|
|
CCL_CU_ON_CHP = 1,
|
|
CCL_CHP_TYPE_CAP = 2,
|
|
CCL_CSS_IMG = 4,
|
|
CCL_CSS_IMG_CONF_CHAR = 5,
|
|
CCL_IOP_CHP = 6,
|
|
} ctype;
|
|
int fmt;
|
|
struct ccl_parm_chpid chpid;
|
|
struct ccl_parm_cssids cssids;
|
|
} req;
|
|
struct chsc_response_struct sccl;
|
|
};
|
|
|
|
struct chsc_dcal {
|
|
struct {
|
|
enum {
|
|
DCAL_CSS_IID_PN = 4,
|
|
} atype;
|
|
__u32 list_parm[2];
|
|
int fmt;
|
|
} req;
|
|
struct chsc_response_struct sdcal;
|
|
};
|
|
|
|
struct chsc_cpd_info {
|
|
struct chp_id chpid;
|
|
int m;
|
|
int fmt;
|
|
int rfmt;
|
|
int c;
|
|
struct chsc_response_struct chpdb;
|
|
};
|
|
|
|
#define CHSC_IOCTL_MAGIC 'c'
|
|
|
|
#define CHSC_START _IOWR(CHSC_IOCTL_MAGIC, 0x81, struct chsc_async_area)
|
|
#define CHSC_INFO_CHANNEL_PATH _IOWR(CHSC_IOCTL_MAGIC, 0x82, \
|
|
struct chsc_chp_cd)
|
|
#define CHSC_INFO_CU _IOWR(CHSC_IOCTL_MAGIC, 0x83, struct chsc_cu_cd)
|
|
#define CHSC_INFO_SCH_CU _IOWR(CHSC_IOCTL_MAGIC, 0x84, struct chsc_sch_cud)
|
|
#define CHSC_INFO_CI _IOWR(CHSC_IOCTL_MAGIC, 0x85, struct chsc_conf_info)
|
|
#define CHSC_INFO_CCL _IOWR(CHSC_IOCTL_MAGIC, 0x86, struct chsc_comp_list)
|
|
#define CHSC_INFO_CPD _IOWR(CHSC_IOCTL_MAGIC, 0x87, struct chsc_cpd_info)
|
|
#define CHSC_INFO_DCAL _IOWR(CHSC_IOCTL_MAGIC, 0x88, struct chsc_dcal)
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
struct css_general_char {
|
|
u64 : 12;
|
|
u32 dynio : 1; /* bit 12 */
|
|
u32 : 28;
|
|
u32 aif : 1; /* bit 41 */
|
|
u32 : 3;
|
|
u32 mcss : 1; /* bit 45 */
|
|
u32 fcs : 1; /* bit 46 */
|
|
u32 : 1;
|
|
u32 ext_mb : 1; /* bit 48 */
|
|
u32 : 7;
|
|
u32 aif_tdd : 1; /* bit 56 */
|
|
u32 : 1;
|
|
u32 qebsm : 1; /* bit 58 */
|
|
u32 : 8;
|
|
u32 aif_osa : 1; /* bit 67 */
|
|
u32 : 14;
|
|
u32 cib : 1; /* bit 82 */
|
|
u32 : 5;
|
|
u32 fcx : 1; /* bit 88 */
|
|
u32 : 7;
|
|
}__attribute__((packed));
|
|
|
|
extern struct css_general_char css_general_characteristics;
|
|
|
|
#endif /* __KERNEL__ */
|
|
#endif
|