linux/arch/s390/include/uapi/asm/chsc.h

145 lines
2.8 KiB
C
Raw Normal View History

License cleanup: add SPDX license identifier to uapi header files with no license Many user space API headers are missing licensing information, which makes it hard for compliance tools to determine the correct license. By default are files without license information under the default license of the kernel, which is GPLV2. Marking them GPLV2 would exclude them from being included in non GPLV2 code, which is obviously not intended. The user space API headers fall under the syscall exception which is in the kernels COPYING file: NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work". otherwise syscall usage would not be possible. Update the files which contain no license information with an SPDX license identifier. The chosen identifier is 'GPL-2.0 WITH Linux-syscall-note' which is the officially assigned identifier for the Linux syscall exception. SPDX license identifiers are a legally binding shorthand, which can be used instead of the full boiler plate text. This patch is based on work done by Thomas Gleixner and Kate Stewart and Philippe Ombredanne. See the previous patch in this series for the methodology of how this patch was researched. Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-01 14:08:43 +00:00
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* ioctl interface for /dev/chsc
*
* Copyright IBM Corp. 2008, 2012
* Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
*/
#ifndef _ASM_CHSC_H
#define _ASM_CHSC_H
#include <linux/types.h>
#include <linux/ioctl.h>
#include <asm/chpid.h>
#include <asm/schid.h>
#define CHSC_SIZE 0x1000
struct chsc_async_header {
__u16 length;
__u16 code;
__u32 cmd_dependend;
__u32 key : 4;
__u32 : 28;
struct subchannel_id sid;
};
struct chsc_async_area {
struct chsc_async_header header;
__u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)];
};
struct chsc_header {
__u16 length;
__u16 code;
};
struct chsc_sync_area {
struct chsc_header header;
__u8 data[CHSC_SIZE - sizeof(struct chsc_header)];
};
struct chsc_response_struct {
__u16 length;
__u16 code;
__u32 parms;
__u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)];
};
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)
#define CHSC_START_SYNC _IOWR(CHSC_IOCTL_MAGIC, 0x89, struct chsc_sync_area)
#define CHSC_ON_CLOSE_SET _IOWR(CHSC_IOCTL_MAGIC, 0x8a, struct chsc_async_area)
#define CHSC_ON_CLOSE_REMOVE _IO(CHSC_IOCTL_MAGIC, 0x8b)
#endif