cregit-Linux how code gets into the kernel

Release 4.14 arch/s390/include/uapi/asm/chsc.h

/* 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;
} __attribute__ ((packed));


struct chsc_async_area {
	
struct chsc_async_header header;
	
__u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)];
} __attribute__ ((packed));


struct chsc_header {
	
__u16 length;
	
__u16 code;
} __attribute__ ((packed));


struct chsc_sync_area {
	
struct chsc_header header;
	
__u8 data[CHSC_SIZE - sizeof(struct chsc_header)];
} __attribute__ ((packed));


struct chsc_response_struct {
	
__u16 length;
	
__u16 code;
	
__u32 parms;
	
__u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)];
} __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)

#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

Overall Contributors

PersonTokensPropCommitsCommitProp
Cornelia Huck34480.00%116.67%
Michael Holzheu5613.02%233.33%
Sebastian Ott266.05%116.67%
Heiko Carstens30.70%116.67%
Greg Kroah-Hartman10.23%116.67%
Total430100.00%6100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.