Merge tag 'disintegrate-s390-20121009' of
git://git.infradead.org/users/dhowells/linux-headers Pull UAPI patchset from David Howells: "Can you merge the following branch into the s390 tree please. This is to complete part of the UAPI disintegration for which the preparatory patches were pulled recently." Conflicts: arch/s390/include/asm/chpid.h
This commit is contained in:
@@ -1,3 +1,48 @@
|
||||
# UAPI Header export list
|
||||
include include/uapi/asm-generic/Kbuild.asm
|
||||
|
||||
header-y += auxvec.h
|
||||
header-y += bitsperlong.h
|
||||
header-y += byteorder.h
|
||||
header-y += chpid.h
|
||||
header-y += chsc.h
|
||||
header-y += cmb.h
|
||||
header-y += dasd.h
|
||||
header-y += debug.h
|
||||
header-y += errno.h
|
||||
header-y += fcntl.h
|
||||
header-y += ioctl.h
|
||||
header-y += ioctls.h
|
||||
header-y += ipcbuf.h
|
||||
header-y += kvm.h
|
||||
header-y += kvm_para.h
|
||||
header-y += kvm_virtio.h
|
||||
header-y += mman.h
|
||||
header-y += monwriter.h
|
||||
header-y += msgbuf.h
|
||||
header-y += param.h
|
||||
header-y += poll.h
|
||||
header-y += posix_types.h
|
||||
header-y += ptrace.h
|
||||
header-y += qeth.h
|
||||
header-y += resource.h
|
||||
header-y += schid.h
|
||||
header-y += sembuf.h
|
||||
header-y += setup.h
|
||||
header-y += shmbuf.h
|
||||
header-y += sigcontext.h
|
||||
header-y += siginfo.h
|
||||
header-y += signal.h
|
||||
header-y += socket.h
|
||||
header-y += sockios.h
|
||||
header-y += stat.h
|
||||
header-y += statfs.h
|
||||
header-y += swab.h
|
||||
header-y += tape390.h
|
||||
header-y += termbits.h
|
||||
header-y += termios.h
|
||||
header-y += types.h
|
||||
header-y += ucontext.h
|
||||
header-y += unistd.h
|
||||
header-y += vtoc.h
|
||||
header-y += zcrypt.h
|
||||
|
6
arch/s390/include/uapi/asm/auxvec.h
Normal file
6
arch/s390/include/uapi/asm/auxvec.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef __ASMS390_AUXVEC_H
|
||||
#define __ASMS390_AUXVEC_H
|
||||
|
||||
#define AT_SYSINFO_EHDR 33
|
||||
|
||||
#endif
|
13
arch/s390/include/uapi/asm/bitsperlong.h
Normal file
13
arch/s390/include/uapi/asm/bitsperlong.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#ifndef __ASM_S390_BITSPERLONG_H
|
||||
#define __ASM_S390_BITSPERLONG_H
|
||||
|
||||
#ifndef __s390x__
|
||||
#define __BITS_PER_LONG 32
|
||||
#else
|
||||
#define __BITS_PER_LONG 64
|
||||
#endif
|
||||
|
||||
#include <asm-generic/bitsperlong.h>
|
||||
|
||||
#endif /* __ASM_S390_BITSPERLONG_H */
|
||||
|
6
arch/s390/include/uapi/asm/byteorder.h
Normal file
6
arch/s390/include/uapi/asm/byteorder.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef _S390_BYTEORDER_H
|
||||
#define _S390_BYTEORDER_H
|
||||
|
||||
#include <linux/byteorder/big_endian.h>
|
||||
|
||||
#endif /* _S390_BYTEORDER_H */
|
22
arch/s390/include/uapi/asm/chpid.h
Normal file
22
arch/s390/include/uapi/asm/chpid.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright IBM Corp. 2007
|
||||
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_S390_CHPID_H
|
||||
#define _UAPI_ASM_S390_CHPID_H
|
||||
|
||||
#include <linux/string.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define __MAX_CHPID 255
|
||||
|
||||
struct chp_id {
|
||||
u8 reserved1;
|
||||
u8 cssid;
|
||||
u8 reserved2;
|
||||
u8 id;
|
||||
} __attribute__((packed));
|
||||
|
||||
|
||||
#endif /* _UAPI_ASM_S390_CHPID_H */
|
130
arch/s390/include/uapi/asm/chsc.h
Normal file
130
arch/s390/include/uapi/asm/chsc.h
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* 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_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)
|
||||
|
||||
#endif
|
53
arch/s390/include/uapi/asm/cmb.h
Normal file
53
arch/s390/include/uapi/asm/cmb.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#ifndef _UAPIS390_CMB_H
|
||||
#define _UAPIS390_CMB_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* 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)
|
||||
*
|
||||
* All values are stored as 64 bit for simplicity, especially
|
||||
* 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.
|
||||
* Potentially, more fields could be added, which would result in a
|
||||
* new ioctl number.
|
||||
*/
|
||||
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 */
|
||||
#define BIODASDCMFENABLE _IO(DASD_IOCTL_LETTER, 32)
|
||||
/* enable channel measurement */
|
||||
#define BIODASDCMFDISABLE _IO(DASD_IOCTL_LETTER, 33)
|
||||
/* read channel measurement data */
|
||||
#define BIODASDREADALLCMB _IOWR(DASD_IOCTL_LETTER, 33, struct cmbdata)
|
||||
|
||||
#endif /* _UAPIS390_CMB_H */
|
291
arch/s390/include/uapi/asm/dasd.h
Normal file
291
arch/s390/include/uapi/asm/dasd.h
Normal file
@@ -0,0 +1,291 @@
|
||||
/*
|
||||
* Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
|
||||
* Bugreports.to..: <Linux390@de.ibm.com>
|
||||
* Copyright IBM Corp. 1999, 2000
|
||||
* EMC Symmetrix ioctl Copyright EMC Corporation, 2008
|
||||
* Author.........: Nigel Hislop <hislop_nigel@emc.com>
|
||||
*
|
||||
* This file is the interface of the DASD device driver, which is exported to user space
|
||||
* any future changes wrt the API will result in a change of the APIVERSION reported
|
||||
* to userspace by the DASDAPIVER-ioctl
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef DASD_H
|
||||
#define DASD_H
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define DASD_IOCTL_LETTER 'D'
|
||||
|
||||
#define DASD_API_VERSION 6
|
||||
|
||||
/*
|
||||
* struct dasd_information2_t
|
||||
* represents any data about the device, which is visible to userspace.
|
||||
* including foramt and featueres.
|
||||
*/
|
||||
typedef struct dasd_information2_t {
|
||||
unsigned int devno; /* S/390 devno */
|
||||
unsigned int real_devno; /* for aliases */
|
||||
unsigned int schid; /* S/390 subchannel identifier */
|
||||
unsigned int cu_type : 16; /* from SenseID */
|
||||
unsigned int cu_model : 8; /* from SenseID */
|
||||
unsigned int dev_type : 16; /* from SenseID */
|
||||
unsigned int dev_model : 8; /* from SenseID */
|
||||
unsigned int open_count;
|
||||
unsigned int req_queue_len;
|
||||
unsigned int chanq_len; /* length of chanq */
|
||||
char type[4]; /* from discipline.name, 'none' for unknown */
|
||||
unsigned int status; /* current device level */
|
||||
unsigned int label_block; /* where to find the VOLSER */
|
||||
unsigned int FBA_layout; /* fixed block size (like AIXVOL) */
|
||||
unsigned int characteristics_size;
|
||||
unsigned int confdata_size;
|
||||
char characteristics[64]; /* from read_device_characteristics */
|
||||
char configuration_data[256]; /* from read_configuration_data */
|
||||
unsigned int format; /* format info like formatted/cdl/ldl/... */
|
||||
unsigned int features; /* dasd features like 'ro',... */
|
||||
unsigned int reserved0; /* reserved for further use ,... */
|
||||
unsigned int reserved1; /* reserved for further use ,... */
|
||||
unsigned int reserved2; /* reserved for further use ,... */
|
||||
unsigned int reserved3; /* reserved for further use ,... */
|
||||
unsigned int reserved4; /* reserved for further use ,... */
|
||||
unsigned int reserved5; /* reserved for further use ,... */
|
||||
unsigned int reserved6; /* reserved for further use ,... */
|
||||
unsigned int reserved7; /* reserved for further use ,... */
|
||||
} dasd_information2_t;
|
||||
|
||||
/*
|
||||
* values to be used for dasd_information_t.format
|
||||
* 0x00: NOT formatted
|
||||
* 0x01: Linux disc layout
|
||||
* 0x02: Common disc layout
|
||||
*/
|
||||
#define DASD_FORMAT_NONE 0
|
||||
#define DASD_FORMAT_LDL 1
|
||||
#define DASD_FORMAT_CDL 2
|
||||
/*
|
||||
* values to be used for dasd_information_t.features
|
||||
* 0x00: default features
|
||||
* 0x01: readonly (ro)
|
||||
* 0x02: use diag discipline (diag)
|
||||
* 0x04: set the device initially online (internal use only)
|
||||
* 0x08: enable ERP related logging
|
||||
* 0x20: give access to raw eckd data
|
||||
*/
|
||||
#define DASD_FEATURE_DEFAULT 0x00
|
||||
#define DASD_FEATURE_READONLY 0x01
|
||||
#define DASD_FEATURE_USEDIAG 0x02
|
||||
#define DASD_FEATURE_INITIAL_ONLINE 0x04
|
||||
#define DASD_FEATURE_ERPLOG 0x08
|
||||
#define DASD_FEATURE_FAILFAST 0x10
|
||||
#define DASD_FEATURE_FAILONSLCK 0x20
|
||||
#define DASD_FEATURE_USERAW 0x40
|
||||
|
||||
#define DASD_PARTN_BITS 2
|
||||
|
||||
/*
|
||||
* struct dasd_information_t
|
||||
* represents any data about the data, which is visible to userspace
|
||||
*/
|
||||
typedef struct dasd_information_t {
|
||||
unsigned int devno; /* S/390 devno */
|
||||
unsigned int real_devno; /* for aliases */
|
||||
unsigned int schid; /* S/390 subchannel identifier */
|
||||
unsigned int cu_type : 16; /* from SenseID */
|
||||
unsigned int cu_model : 8; /* from SenseID */
|
||||
unsigned int dev_type : 16; /* from SenseID */
|
||||
unsigned int dev_model : 8; /* from SenseID */
|
||||
unsigned int open_count;
|
||||
unsigned int req_queue_len;
|
||||
unsigned int chanq_len; /* length of chanq */
|
||||
char type[4]; /* from discipline.name, 'none' for unknown */
|
||||
unsigned int status; /* current device level */
|
||||
unsigned int label_block; /* where to find the VOLSER */
|
||||
unsigned int FBA_layout; /* fixed block size (like AIXVOL) */
|
||||
unsigned int characteristics_size;
|
||||
unsigned int confdata_size;
|
||||
char characteristics[64]; /* from read_device_characteristics */
|
||||
char configuration_data[256]; /* from read_configuration_data */
|
||||
} dasd_information_t;
|
||||
|
||||
/*
|
||||
* Read Subsystem Data - Performance Statistics
|
||||
*/
|
||||
typedef struct dasd_rssd_perf_stats_t {
|
||||
unsigned char invalid:1;
|
||||
unsigned char format:3;
|
||||
unsigned char data_format:4;
|
||||
unsigned char unit_address;
|
||||
unsigned short device_status;
|
||||
unsigned int nr_read_normal;
|
||||
unsigned int nr_read_normal_hits;
|
||||
unsigned int nr_write_normal;
|
||||
unsigned int nr_write_fast_normal_hits;
|
||||
unsigned int nr_read_seq;
|
||||
unsigned int nr_read_seq_hits;
|
||||
unsigned int nr_write_seq;
|
||||
unsigned int nr_write_fast_seq_hits;
|
||||
unsigned int nr_read_cache;
|
||||
unsigned int nr_read_cache_hits;
|
||||
unsigned int nr_write_cache;
|
||||
unsigned int nr_write_fast_cache_hits;
|
||||
unsigned int nr_inhibit_cache;
|
||||
unsigned int nr_bybass_cache;
|
||||
unsigned int nr_seq_dasd_to_cache;
|
||||
unsigned int nr_dasd_to_cache;
|
||||
unsigned int nr_cache_to_dasd;
|
||||
unsigned int nr_delayed_fast_write;
|
||||
unsigned int nr_normal_fast_write;
|
||||
unsigned int nr_seq_fast_write;
|
||||
unsigned int nr_cache_miss;
|
||||
unsigned char status2;
|
||||
unsigned int nr_quick_write_promotes;
|
||||
unsigned char reserved;
|
||||
unsigned short ssid;
|
||||
unsigned char reseved2[96];
|
||||
} __attribute__((packed)) dasd_rssd_perf_stats_t;
|
||||
|
||||
/*
|
||||
* struct profile_info_t
|
||||
* holds the profinling information
|
||||
*/
|
||||
typedef struct dasd_profile_info_t {
|
||||
unsigned int dasd_io_reqs; /* number of requests processed at all */
|
||||
unsigned int dasd_io_sects; /* number of sectors processed at all */
|
||||
unsigned int dasd_io_secs[32]; /* histogram of request's sizes */
|
||||
unsigned int dasd_io_times[32]; /* histogram of requests's times */
|
||||
unsigned int dasd_io_timps[32]; /* histogram of requests's times per sector */
|
||||
unsigned int dasd_io_time1[32]; /* histogram of time from build to start */
|
||||
unsigned int dasd_io_time2[32]; /* histogram of time from start to irq */
|
||||
unsigned int dasd_io_time2ps[32]; /* histogram of time from start to irq */
|
||||
unsigned int dasd_io_time3[32]; /* histogram of time from irq to end */
|
||||
unsigned int dasd_io_nr_req[32]; /* histogram of # of requests in chanq */
|
||||
} dasd_profile_info_t;
|
||||
|
||||
/*
|
||||
* struct format_data_t
|
||||
* represents all data necessary to format a dasd
|
||||
*/
|
||||
typedef struct format_data_t {
|
||||
unsigned int start_unit; /* from track */
|
||||
unsigned int stop_unit; /* to track */
|
||||
unsigned int blksize; /* sectorsize */
|
||||
unsigned int intensity;
|
||||
} format_data_t;
|
||||
|
||||
/*
|
||||
* values to be used for format_data_t.intensity
|
||||
* 0/8: normal format
|
||||
* 1/9: also write record zero
|
||||
* 3/11: also write home address
|
||||
* 4/12: invalidate track
|
||||
*/
|
||||
#define DASD_FMT_INT_FMT_R0 1 /* write record zero */
|
||||
#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */
|
||||
#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */
|
||||
#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */
|
||||
|
||||
|
||||
/*
|
||||
* struct attrib_data_t
|
||||
* represents the operation (cache) bits for the device.
|
||||
* Used in DE to influence caching of the DASD.
|
||||
*/
|
||||
typedef struct attrib_data_t {
|
||||
unsigned char operation:3; /* cache operation mode */
|
||||
unsigned char reserved:5; /* cache operation mode */
|
||||
__u16 nr_cyl; /* no of cyliners for read ahaed */
|
||||
__u8 reserved2[29]; /* for future use */
|
||||
} __attribute__ ((packed)) attrib_data_t;
|
||||
|
||||
/* definition of operation (cache) bits within attributes of DE */
|
||||
#define DASD_NORMAL_CACHE 0x0
|
||||
#define DASD_BYPASS_CACHE 0x1
|
||||
#define DASD_INHIBIT_LOAD 0x2
|
||||
#define DASD_SEQ_ACCESS 0x3
|
||||
#define DASD_SEQ_PRESTAGE 0x4
|
||||
#define DASD_REC_ACCESS 0x5
|
||||
|
||||
/*
|
||||
* Perform EMC Symmetrix I/O
|
||||
*/
|
||||
typedef struct dasd_symmio_parms {
|
||||
unsigned char reserved[8]; /* compat with older releases */
|
||||
unsigned long long psf_data; /* char * cast to u64 */
|
||||
unsigned long long rssd_result; /* char * cast to u64 */
|
||||
int psf_data_len;
|
||||
int rssd_result_len;
|
||||
} __attribute__ ((packed)) dasd_symmio_parms_t;
|
||||
|
||||
/*
|
||||
* Data returned by Sense Path Group ID (SNID)
|
||||
*/
|
||||
struct dasd_snid_data {
|
||||
struct {
|
||||
__u8 group:2;
|
||||
__u8 reserve:2;
|
||||
__u8 mode:1;
|
||||
__u8 res:3;
|
||||
} __attribute__ ((packed)) path_state;
|
||||
__u8 pgid[11];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct dasd_snid_ioctl_data {
|
||||
struct dasd_snid_data data;
|
||||
__u8 path_mask;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
/********************************************************************************
|
||||
* SECTION: Definition of IOCTLs
|
||||
*
|
||||
* Here ist how the ioctl-nr should be used:
|
||||
* 0 - 31 DASD driver itself
|
||||
* 32 - 239 still open
|
||||
* 240 - 255 reserved for EMC
|
||||
*******************************************************************************/
|
||||
|
||||
/* Disable the volume (for Linux) */
|
||||
#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0)
|
||||
/* Enable the volume (for Linux) */
|
||||
#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1)
|
||||
/* Issue a reserve/release command, rsp. */
|
||||
#define BIODASDRSRV _IO(DASD_IOCTL_LETTER,2) /* reserve */
|
||||
#define BIODASDRLSE _IO(DASD_IOCTL_LETTER,3) /* release */
|
||||
#define BIODASDSLCK _IO(DASD_IOCTL_LETTER,4) /* steal lock */
|
||||
/* reset profiling information of a device */
|
||||
#define BIODASDPRRST _IO(DASD_IOCTL_LETTER,5)
|
||||
/* Quiesce IO on device */
|
||||
#define BIODASDQUIESCE _IO(DASD_IOCTL_LETTER,6)
|
||||
/* Resume IO on device */
|
||||
#define BIODASDRESUME _IO(DASD_IOCTL_LETTER,7)
|
||||
|
||||
|
||||
/* retrieve API version number */
|
||||
#define DASDAPIVER _IOR(DASD_IOCTL_LETTER,0,int)
|
||||
/* Get information on a dasd device */
|
||||
#define BIODASDINFO _IOR(DASD_IOCTL_LETTER,1,dasd_information_t)
|
||||
/* retrieve profiling information of a device */
|
||||
#define BIODASDPRRD _IOR(DASD_IOCTL_LETTER,2,dasd_profile_info_t)
|
||||
/* Get information on a dasd device (enhanced) */
|
||||
#define BIODASDINFO2 _IOR(DASD_IOCTL_LETTER,3,dasd_information2_t)
|
||||
/* Performance Statistics Read */
|
||||
#define BIODASDPSRD _IOR(DASD_IOCTL_LETTER,4,dasd_rssd_perf_stats_t)
|
||||
/* Get Attributes (cache operations) */
|
||||
#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER,5,attrib_data_t)
|
||||
|
||||
|
||||
/* #define BIODASDFORMAT _IOW(IOCTL_LETTER,0,format_data_t) , deprecated */
|
||||
#define BIODASDFMT _IOW(DASD_IOCTL_LETTER,1,format_data_t)
|
||||
/* Set Attributes (cache operations) */
|
||||
#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER,2,attrib_data_t)
|
||||
|
||||
/* Get Sense Path Group ID (SNID) data */
|
||||
#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data)
|
||||
|
||||
#define BIODASDSYMMIO _IOWR(DASD_IOCTL_LETTER, 240, dasd_symmio_parms_t)
|
||||
|
||||
#endif /* DASD_H */
|
||||
|
34
arch/s390/include/uapi/asm/debug.h
Normal file
34
arch/s390/include/uapi/asm/debug.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* S/390 debug facility
|
||||
*
|
||||
* Copyright IBM Corp. 1999, 2000
|
||||
*/
|
||||
|
||||
#ifndef _UAPIDEBUG_H
|
||||
#define _UAPIDEBUG_H
|
||||
|
||||
#include <linux/fs.h>
|
||||
|
||||
/* Note:
|
||||
* struct __debug_entry must be defined outside of #ifdef __KERNEL__
|
||||
* in order to allow a user program to analyze the 'raw'-view.
|
||||
*/
|
||||
|
||||
struct __debug_entry{
|
||||
union {
|
||||
struct {
|
||||
unsigned long long clock:52;
|
||||
unsigned long long exception:1;
|
||||
unsigned long long level:3;
|
||||
unsigned long long cpuid:8;
|
||||
} fields;
|
||||
|
||||
unsigned long long stck;
|
||||
} id;
|
||||
void* caller;
|
||||
} __attribute__((packed));
|
||||
|
||||
|
||||
#define __DEBUG_FEATURE_VERSION 2 /* version of debug feature */
|
||||
|
||||
#endif /* _UAPIDEBUG_H */
|
11
arch/s390/include/uapi/asm/errno.h
Normal file
11
arch/s390/include/uapi/asm/errno.h
Normal file
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _S390_ERRNO_H
|
||||
#define _S390_ERRNO_H
|
||||
|
||||
#include <asm-generic/errno.h>
|
||||
|
||||
#endif
|
1
arch/s390/include/uapi/asm/fcntl.h
Normal file
1
arch/s390/include/uapi/asm/fcntl.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <asm-generic/fcntl.h>
|
1
arch/s390/include/uapi/asm/ioctl.h
Normal file
1
arch/s390/include/uapi/asm/ioctl.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <asm-generic/ioctl.h>
|
8
arch/s390/include/uapi/asm/ioctls.h
Normal file
8
arch/s390/include/uapi/asm/ioctls.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef __ARCH_S390_IOCTLS_H__
|
||||
#define __ARCH_S390_IOCTLS_H__
|
||||
|
||||
#define FIOQSIZE 0x545E
|
||||
|
||||
#include <asm-generic/ioctls.h>
|
||||
|
||||
#endif
|
31
arch/s390/include/uapi/asm/ipcbuf.h
Normal file
31
arch/s390/include/uapi/asm/ipcbuf.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef __S390_IPCBUF_H__
|
||||
#define __S390_IPCBUF_H__
|
||||
|
||||
/*
|
||||
* The user_ipc_perm structure for S/390 architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 32-bit mode_t and seq
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct ipc64_perm
|
||||
{
|
||||
__kernel_key_t key;
|
||||
__kernel_uid32_t uid;
|
||||
__kernel_gid32_t gid;
|
||||
__kernel_uid32_t cuid;
|
||||
__kernel_gid32_t cgid;
|
||||
__kernel_mode_t mode;
|
||||
unsigned short __pad1;
|
||||
unsigned short seq;
|
||||
#ifndef __s390x__
|
||||
unsigned short __pad2;
|
||||
#endif /* ! __s390x__ */
|
||||
unsigned long __unused1;
|
||||
unsigned long __unused2;
|
||||
};
|
||||
|
||||
#endif /* __S390_IPCBUF_H__ */
|
60
arch/s390/include/uapi/asm/kvm.h
Normal file
60
arch/s390/include/uapi/asm/kvm.h
Normal file
@@ -0,0 +1,60 @@
|
||||
#ifndef __LINUX_KVM_S390_H
|
||||
#define __LINUX_KVM_S390_H
|
||||
/*
|
||||
* KVM s390 specific structures and definitions
|
||||
*
|
||||
* Copyright IBM Corp. 2008
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License (version 2 only)
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* Author(s): Carsten Otte <cotte@de.ibm.com>
|
||||
* Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
*/
|
||||
#include <linux/types.h>
|
||||
|
||||
#define __KVM_S390
|
||||
|
||||
/* for KVM_GET_REGS and KVM_SET_REGS */
|
||||
struct kvm_regs {
|
||||
/* general purpose regs for s390 */
|
||||
__u64 gprs[16];
|
||||
};
|
||||
|
||||
/* for KVM_GET_SREGS and KVM_SET_SREGS */
|
||||
struct kvm_sregs {
|
||||
__u32 acrs[16];
|
||||
__u64 crs[16];
|
||||
};
|
||||
|
||||
/* for KVM_GET_FPU and KVM_SET_FPU */
|
||||
struct kvm_fpu {
|
||||
__u32 fpc;
|
||||
__u64 fprs[16];
|
||||
};
|
||||
|
||||
struct kvm_debug_exit_arch {
|
||||
};
|
||||
|
||||
/* for KVM_SET_GUEST_DEBUG */
|
||||
struct kvm_guest_debug_arch {
|
||||
};
|
||||
|
||||
#define KVM_SYNC_PREFIX (1UL << 0)
|
||||
#define KVM_SYNC_GPRS (1UL << 1)
|
||||
#define KVM_SYNC_ACRS (1UL << 2)
|
||||
#define KVM_SYNC_CRS (1UL << 3)
|
||||
/* definition of registers in kvm_run */
|
||||
struct kvm_sync_regs {
|
||||
__u64 prefix; /* prefix register */
|
||||
__u64 gprs[16]; /* general purpose registers */
|
||||
__u32 acrs[16]; /* access registers */
|
||||
__u64 crs[16]; /* control registers */
|
||||
};
|
||||
|
||||
#define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1)
|
||||
#define KVM_REG_S390_EPOCHDIFF (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x2)
|
||||
#define KVM_REG_S390_CPU_TIMER (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x3)
|
||||
#define KVM_REG_S390_CLOCK_COMP (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x4)
|
||||
#endif
|
0
arch/s390/include/uapi/asm/kvm_para.h
Normal file
0
arch/s390/include/uapi/asm/kvm_para.h
Normal file
64
arch/s390/include/uapi/asm/kvm_virtio.h
Normal file
64
arch/s390/include/uapi/asm/kvm_virtio.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* definition for virtio for kvm on s390
|
||||
*
|
||||
* Copyright IBM Corp. 2008
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License (version 2 only)
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* Author(s): Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
*/
|
||||
|
||||
#ifndef __KVM_S390_VIRTIO_H
|
||||
#define __KVM_S390_VIRTIO_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct kvm_device_desc {
|
||||
/* The device type: console, network, disk etc. Type 0 terminates. */
|
||||
__u8 type;
|
||||
/* The number of virtqueues (first in config array) */
|
||||
__u8 num_vq;
|
||||
/*
|
||||
* The number of bytes of feature bits. Multiply by 2: one for host
|
||||
* features and one for guest acknowledgements.
|
||||
*/
|
||||
__u8 feature_len;
|
||||
/* The number of bytes of the config array after virtqueues. */
|
||||
__u8 config_len;
|
||||
/* A status byte, written by the Guest. */
|
||||
__u8 status;
|
||||
__u8 config[0];
|
||||
};
|
||||
|
||||
/*
|
||||
* This is how we expect the device configuration field for a virtqueue
|
||||
* to be laid out in config space.
|
||||
*/
|
||||
struct kvm_vqconfig {
|
||||
/* The token returned with an interrupt. Set by the guest */
|
||||
__u64 token;
|
||||
/* The address of the virtio ring */
|
||||
__u64 address;
|
||||
/* The number of entries in the virtio_ring */
|
||||
__u16 num;
|
||||
|
||||
};
|
||||
|
||||
#define KVM_S390_VIRTIO_NOTIFY 0
|
||||
#define KVM_S390_VIRTIO_RESET 1
|
||||
#define KVM_S390_VIRTIO_SET_STATUS 2
|
||||
|
||||
/* The alignment to use between consumer and producer parts of vring.
|
||||
* This is pagesize for historical reasons. */
|
||||
#define KVM_S390_VIRTIO_RING_ALIGN 4096
|
||||
|
||||
|
||||
/* These values are supposed to be in ext_params on an interrupt */
|
||||
#define VIRTIO_PARAM_MASK 0xff
|
||||
#define VIRTIO_PARAM_VRING_INTERRUPT 0x0
|
||||
#define VIRTIO_PARAM_CONFIG_CHANGED 0x1
|
||||
#define VIRTIO_PARAM_DEV_ADD 0x2
|
||||
|
||||
#endif
|
6
arch/s390/include/uapi/asm/mman.h
Normal file
6
arch/s390/include/uapi/asm/mman.h
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/mman.h"
|
||||
*/
|
||||
#include <asm-generic/mman.h>
|
31
arch/s390/include/uapi/asm/monwriter.h
Normal file
31
arch/s390/include/uapi/asm/monwriter.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright IBM Corp. 2006
|
||||
* Character device driver for writing z/VM APPLDATA monitor records
|
||||
* Version 1.0
|
||||
* Author(s): Melissa Howland <melissah@us.ibm.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _ASM_390_MONWRITER_H
|
||||
#define _ASM_390_MONWRITER_H
|
||||
|
||||
/* mon_function values */
|
||||
#define MONWRITE_START_INTERVAL 0x00 /* start interval recording */
|
||||
#define MONWRITE_STOP_INTERVAL 0x01 /* stop interval or config recording */
|
||||
#define MONWRITE_GEN_EVENT 0x02 /* generate event record */
|
||||
#define MONWRITE_START_CONFIG 0x03 /* start configuration recording */
|
||||
|
||||
/* the header the app uses in its write() data */
|
||||
struct monwrite_hdr {
|
||||
unsigned char mon_function;
|
||||
unsigned short applid;
|
||||
unsigned char record_num;
|
||||
unsigned short version;
|
||||
unsigned short release;
|
||||
unsigned short mod_level;
|
||||
unsigned short datalen;
|
||||
unsigned char hdrlen;
|
||||
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif /* _ASM_390_MONWRITER_H */
|
37
arch/s390/include/uapi/asm/msgbuf.h
Normal file
37
arch/s390/include/uapi/asm/msgbuf.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifndef _S390_MSGBUF_H
|
||||
#define _S390_MSGBUF_H
|
||||
|
||||
/*
|
||||
* The msqid64_ds structure for S/390 architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 64-bit time_t to solve y2038 problem
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct msqid64_ds {
|
||||
struct ipc64_perm msg_perm;
|
||||
__kernel_time_t msg_stime; /* last msgsnd time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused1;
|
||||
#endif /* ! __s390x__ */
|
||||
__kernel_time_t msg_rtime; /* last msgrcv time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused2;
|
||||
#endif /* ! __s390x__ */
|
||||
__kernel_time_t msg_ctime; /* last change time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused3;
|
||||
#endif /* ! __s390x__ */
|
||||
unsigned long msg_cbytes; /* current number of bytes on queue */
|
||||
unsigned long msg_qnum; /* number of messages in queue */
|
||||
unsigned long msg_qbytes; /* max number of bytes on queue */
|
||||
__kernel_pid_t msg_lspid; /* pid of last msgsnd */
|
||||
__kernel_pid_t msg_lrpid; /* last receive pid */
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
#endif /* _S390_MSGBUF_H */
|
6
arch/s390/include/uapi/asm/param.h
Normal file
6
arch/s390/include/uapi/asm/param.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef _ASMS390_PARAM_H
|
||||
#define _ASMS390_PARAM_H
|
||||
|
||||
#include <asm-generic/param.h>
|
||||
|
||||
#endif /* _ASMS390_PARAM_H */
|
1
arch/s390/include/uapi/asm/poll.h
Normal file
1
arch/s390/include/uapi/asm/poll.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <asm-generic/poll.h>
|
51
arch/s390/include/uapi/asm/posix_types.h
Normal file
51
arch/s390/include/uapi/asm/posix_types.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_S390_POSIX_TYPES_H
|
||||
#define __ARCH_S390_POSIX_TYPES_H
|
||||
|
||||
/*
|
||||
* This file is generally used by user-level software, so you need to
|
||||
* be a little careful about namespace pollution etc. Also, we cannot
|
||||
* assume GCC is being used.
|
||||
*/
|
||||
|
||||
typedef unsigned long __kernel_size_t;
|
||||
typedef long __kernel_ssize_t;
|
||||
#define __kernel_size_t __kernel_size_t
|
||||
|
||||
typedef unsigned short __kernel_old_dev_t;
|
||||
#define __kernel_old_dev_t __kernel_old_dev_t
|
||||
|
||||
#ifndef __s390x__
|
||||
|
||||
typedef unsigned long __kernel_ino_t;
|
||||
typedef unsigned short __kernel_mode_t;
|
||||
typedef unsigned short __kernel_ipc_pid_t;
|
||||
typedef unsigned short __kernel_uid_t;
|
||||
typedef unsigned short __kernel_gid_t;
|
||||
typedef int __kernel_ptrdiff_t;
|
||||
|
||||
#else /* __s390x__ */
|
||||
|
||||
typedef unsigned int __kernel_ino_t;
|
||||
typedef unsigned int __kernel_mode_t;
|
||||
typedef int __kernel_ipc_pid_t;
|
||||
typedef unsigned int __kernel_uid_t;
|
||||
typedef unsigned int __kernel_gid_t;
|
||||
typedef long __kernel_ptrdiff_t;
|
||||
typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
|
||||
|
||||
#endif /* __s390x__ */
|
||||
|
||||
#define __kernel_ino_t __kernel_ino_t
|
||||
#define __kernel_mode_t __kernel_mode_t
|
||||
#define __kernel_ipc_pid_t __kernel_ipc_pid_t
|
||||
#define __kernel_uid_t __kernel_uid_t
|
||||
#define __kernel_gid_t __kernel_gid_t
|
||||
|
||||
#include <asm-generic/posix_types.h>
|
||||
|
||||
#endif
|
472
arch/s390/include/uapi/asm/ptrace.h
Normal file
472
arch/s390/include/uapi/asm/ptrace.h
Normal file
@@ -0,0 +1,472 @@
|
||||
/*
|
||||
* S390 version
|
||||
* Copyright IBM Corp. 1999, 2000
|
||||
* Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_S390_PTRACE_H
|
||||
#define _UAPI_S390_PTRACE_H
|
||||
|
||||
/*
|
||||
* Offsets in the user_regs_struct. They are used for the ptrace
|
||||
* system call and in entry.S
|
||||
*/
|
||||
#ifndef __s390x__
|
||||
|
||||
#define PT_PSWMASK 0x00
|
||||
#define PT_PSWADDR 0x04
|
||||
#define PT_GPR0 0x08
|
||||
#define PT_GPR1 0x0C
|
||||
#define PT_GPR2 0x10
|
||||
#define PT_GPR3 0x14
|
||||
#define PT_GPR4 0x18
|
||||
#define PT_GPR5 0x1C
|
||||
#define PT_GPR6 0x20
|
||||
#define PT_GPR7 0x24
|
||||
#define PT_GPR8 0x28
|
||||
#define PT_GPR9 0x2C
|
||||
#define PT_GPR10 0x30
|
||||
#define PT_GPR11 0x34
|
||||
#define PT_GPR12 0x38
|
||||
#define PT_GPR13 0x3C
|
||||
#define PT_GPR14 0x40
|
||||
#define PT_GPR15 0x44
|
||||
#define PT_ACR0 0x48
|
||||
#define PT_ACR1 0x4C
|
||||
#define PT_ACR2 0x50
|
||||
#define PT_ACR3 0x54
|
||||
#define PT_ACR4 0x58
|
||||
#define PT_ACR5 0x5C
|
||||
#define PT_ACR6 0x60
|
||||
#define PT_ACR7 0x64
|
||||
#define PT_ACR8 0x68
|
||||
#define PT_ACR9 0x6C
|
||||
#define PT_ACR10 0x70
|
||||
#define PT_ACR11 0x74
|
||||
#define PT_ACR12 0x78
|
||||
#define PT_ACR13 0x7C
|
||||
#define PT_ACR14 0x80
|
||||
#define PT_ACR15 0x84
|
||||
#define PT_ORIGGPR2 0x88
|
||||
#define PT_FPC 0x90
|
||||
/*
|
||||
* A nasty fact of life that the ptrace api
|
||||
* only supports passing of longs.
|
||||
*/
|
||||
#define PT_FPR0_HI 0x98
|
||||
#define PT_FPR0_LO 0x9C
|
||||
#define PT_FPR1_HI 0xA0
|
||||
#define PT_FPR1_LO 0xA4
|
||||
#define PT_FPR2_HI 0xA8
|
||||
#define PT_FPR2_LO 0xAC
|
||||
#define PT_FPR3_HI 0xB0
|
||||
#define PT_FPR3_LO 0xB4
|
||||
#define PT_FPR4_HI 0xB8
|
||||
#define PT_FPR4_LO 0xBC
|
||||
#define PT_FPR5_HI 0xC0
|
||||
#define PT_FPR5_LO 0xC4
|
||||
#define PT_FPR6_HI 0xC8
|
||||
#define PT_FPR6_LO 0xCC
|
||||
#define PT_FPR7_HI 0xD0
|
||||
#define PT_FPR7_LO 0xD4
|
||||
#define PT_FPR8_HI 0xD8
|
||||
#define PT_FPR8_LO 0XDC
|
||||
#define PT_FPR9_HI 0xE0
|
||||
#define PT_FPR9_LO 0xE4
|
||||
#define PT_FPR10_HI 0xE8
|
||||
#define PT_FPR10_LO 0xEC
|
||||
#define PT_FPR11_HI 0xF0
|
||||
#define PT_FPR11_LO 0xF4
|
||||
#define PT_FPR12_HI 0xF8
|
||||
#define PT_FPR12_LO 0xFC
|
||||
#define PT_FPR13_HI 0x100
|
||||
#define PT_FPR13_LO 0x104
|
||||
#define PT_FPR14_HI 0x108
|
||||
#define PT_FPR14_LO 0x10C
|
||||
#define PT_FPR15_HI 0x110
|
||||
#define PT_FPR15_LO 0x114
|
||||
#define PT_CR_9 0x118
|
||||
#define PT_CR_10 0x11C
|
||||
#define PT_CR_11 0x120
|
||||
#define PT_IEEE_IP 0x13C
|
||||
#define PT_LASTOFF PT_IEEE_IP
|
||||
#define PT_ENDREGS 0x140-1
|
||||
|
||||
#define GPR_SIZE 4
|
||||
#define CR_SIZE 4
|
||||
|
||||
#define STACK_FRAME_OVERHEAD 96 /* size of minimum stack frame */
|
||||
|
||||
#else /* __s390x__ */
|
||||
|
||||
#define PT_PSWMASK 0x00
|
||||
#define PT_PSWADDR 0x08
|
||||
#define PT_GPR0 0x10
|
||||
#define PT_GPR1 0x18
|
||||
#define PT_GPR2 0x20
|
||||
#define PT_GPR3 0x28
|
||||
#define PT_GPR4 0x30
|
||||
#define PT_GPR5 0x38
|
||||
#define PT_GPR6 0x40
|
||||
#define PT_GPR7 0x48
|
||||
#define PT_GPR8 0x50
|
||||
#define PT_GPR9 0x58
|
||||
#define PT_GPR10 0x60
|
||||
#define PT_GPR11 0x68
|
||||
#define PT_GPR12 0x70
|
||||
#define PT_GPR13 0x78
|
||||
#define PT_GPR14 0x80
|
||||
#define PT_GPR15 0x88
|
||||
#define PT_ACR0 0x90
|
||||
#define PT_ACR1 0x94
|
||||
#define PT_ACR2 0x98
|
||||
#define PT_ACR3 0x9C
|
||||
#define PT_ACR4 0xA0
|
||||
#define PT_ACR5 0xA4
|
||||
#define PT_ACR6 0xA8
|
||||
#define PT_ACR7 0xAC
|
||||
#define PT_ACR8 0xB0
|
||||
#define PT_ACR9 0xB4
|
||||
#define PT_ACR10 0xB8
|
||||
#define PT_ACR11 0xBC
|
||||
#define PT_ACR12 0xC0
|
||||
#define PT_ACR13 0xC4
|
||||
#define PT_ACR14 0xC8
|
||||
#define PT_ACR15 0xCC
|
||||
#define PT_ORIGGPR2 0xD0
|
||||
#define PT_FPC 0xD8
|
||||
#define PT_FPR0 0xE0
|
||||
#define PT_FPR1 0xE8
|
||||
#define PT_FPR2 0xF0
|
||||
#define PT_FPR3 0xF8
|
||||
#define PT_FPR4 0x100
|
||||
#define PT_FPR5 0x108
|
||||
#define PT_FPR6 0x110
|
||||
#define PT_FPR7 0x118
|
||||
#define PT_FPR8 0x120
|
||||
#define PT_FPR9 0x128
|
||||
#define PT_FPR10 0x130
|
||||
#define PT_FPR11 0x138
|
||||
#define PT_FPR12 0x140
|
||||
#define PT_FPR13 0x148
|
||||
#define PT_FPR14 0x150
|
||||
#define PT_FPR15 0x158
|
||||
#define PT_CR_9 0x160
|
||||
#define PT_CR_10 0x168
|
||||
#define PT_CR_11 0x170
|
||||
#define PT_IEEE_IP 0x1A8
|
||||
#define PT_LASTOFF PT_IEEE_IP
|
||||
#define PT_ENDREGS 0x1B0-1
|
||||
|
||||
#define GPR_SIZE 8
|
||||
#define CR_SIZE 8
|
||||
|
||||
#define STACK_FRAME_OVERHEAD 160 /* size of minimum stack frame */
|
||||
|
||||
#endif /* __s390x__ */
|
||||
|
||||
#define NUM_GPRS 16
|
||||
#define NUM_FPRS 16
|
||||
#define NUM_CRS 16
|
||||
#define NUM_ACRS 16
|
||||
|
||||
#define NUM_CR_WORDS 3
|
||||
|
||||
#define FPR_SIZE 8
|
||||
#define FPC_SIZE 4
|
||||
#define FPC_PAD_SIZE 4 /* gcc insists on aligning the fpregs */
|
||||
#define ACR_SIZE 4
|
||||
|
||||
|
||||
#define PTRACE_OLDSETOPTIONS 21
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
typedef union
|
||||
{
|
||||
float f;
|
||||
double d;
|
||||
__u64 ui;
|
||||
struct
|
||||
{
|
||||
__u32 hi;
|
||||
__u32 lo;
|
||||
} fp;
|
||||
} freg_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__u32 fpc;
|
||||
freg_t fprs[NUM_FPRS];
|
||||
} s390_fp_regs;
|
||||
|
||||
#define FPC_EXCEPTION_MASK 0xF8000000
|
||||
#define FPC_FLAGS_MASK 0x00F80000
|
||||
#define FPC_DXC_MASK 0x0000FF00
|
||||
#define FPC_RM_MASK 0x00000003
|
||||
#define FPC_VALID_MASK 0xF8F8FF03
|
||||
|
||||
/* this typedef defines how a Program Status Word looks like */
|
||||
typedef struct
|
||||
{
|
||||
unsigned long mask;
|
||||
unsigned long addr;
|
||||
} __attribute__ ((aligned(8))) psw_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__u32 mask;
|
||||
__u32 addr;
|
||||
} __attribute__ ((aligned(8))) psw_compat_t;
|
||||
|
||||
#ifndef __s390x__
|
||||
|
||||
#define PSW_MASK_PER 0x40000000UL
|
||||
#define PSW_MASK_DAT 0x04000000UL
|
||||
#define PSW_MASK_IO 0x02000000UL
|
||||
#define PSW_MASK_EXT 0x01000000UL
|
||||
#define PSW_MASK_KEY 0x00F00000UL
|
||||
#define PSW_MASK_BASE 0x00080000UL /* always one */
|
||||
#define PSW_MASK_MCHECK 0x00040000UL
|
||||
#define PSW_MASK_WAIT 0x00020000UL
|
||||
#define PSW_MASK_PSTATE 0x00010000UL
|
||||
#define PSW_MASK_ASC 0x0000C000UL
|
||||
#define PSW_MASK_CC 0x00003000UL
|
||||
#define PSW_MASK_PM 0x00000F00UL
|
||||
#define PSW_MASK_RI 0x00000000UL
|
||||
#define PSW_MASK_EA 0x00000000UL
|
||||
#define PSW_MASK_BA 0x00000000UL
|
||||
|
||||
#define PSW_MASK_USER 0x00003F00UL
|
||||
|
||||
#define PSW_ADDR_AMODE 0x80000000UL
|
||||
#define PSW_ADDR_INSN 0x7FFFFFFFUL
|
||||
|
||||
#define PSW_DEFAULT_KEY (((unsigned long) PAGE_DEFAULT_ACC) << 20)
|
||||
|
||||
#define PSW_ASC_PRIMARY 0x00000000UL
|
||||
#define PSW_ASC_ACCREG 0x00004000UL
|
||||
#define PSW_ASC_SECONDARY 0x00008000UL
|
||||
#define PSW_ASC_HOME 0x0000C000UL
|
||||
|
||||
#else /* __s390x__ */
|
||||
|
||||
#define PSW_MASK_PER 0x4000000000000000UL
|
||||
#define PSW_MASK_DAT 0x0400000000000000UL
|
||||
#define PSW_MASK_IO 0x0200000000000000UL
|
||||
#define PSW_MASK_EXT 0x0100000000000000UL
|
||||
#define PSW_MASK_BASE 0x0000000000000000UL
|
||||
#define PSW_MASK_KEY 0x00F0000000000000UL
|
||||
#define PSW_MASK_MCHECK 0x0004000000000000UL
|
||||
#define PSW_MASK_WAIT 0x0002000000000000UL
|
||||
#define PSW_MASK_PSTATE 0x0001000000000000UL
|
||||
#define PSW_MASK_ASC 0x0000C00000000000UL
|
||||
#define PSW_MASK_CC 0x0000300000000000UL
|
||||
#define PSW_MASK_PM 0x00000F0000000000UL
|
||||
#define PSW_MASK_RI 0x0000008000000000UL
|
||||
#define PSW_MASK_EA 0x0000000100000000UL
|
||||
#define PSW_MASK_BA 0x0000000080000000UL
|
||||
|
||||
#define PSW_MASK_USER 0x00003F8180000000UL
|
||||
|
||||
#define PSW_ADDR_AMODE 0x0000000000000000UL
|
||||
#define PSW_ADDR_INSN 0xFFFFFFFFFFFFFFFFUL
|
||||
|
||||
#define PSW_DEFAULT_KEY (((unsigned long) PAGE_DEFAULT_ACC) << 52)
|
||||
|
||||
#define PSW_ASC_PRIMARY 0x0000000000000000UL
|
||||
#define PSW_ASC_ACCREG 0x0000400000000000UL
|
||||
#define PSW_ASC_SECONDARY 0x0000800000000000UL
|
||||
#define PSW_ASC_HOME 0x0000C00000000000UL
|
||||
|
||||
#endif /* __s390x__ */
|
||||
|
||||
|
||||
/*
|
||||
* The s390_regs structure is used to define the elf_gregset_t.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
psw_t psw;
|
||||
unsigned long gprs[NUM_GPRS];
|
||||
unsigned int acrs[NUM_ACRS];
|
||||
unsigned long orig_gpr2;
|
||||
} s390_regs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
psw_compat_t psw;
|
||||
__u32 gprs[NUM_GPRS];
|
||||
__u32 acrs[NUM_ACRS];
|
||||
__u32 orig_gpr2;
|
||||
} s390_compat_regs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__u32 gprs_high[NUM_GPRS];
|
||||
} s390_compat_regs_high;
|
||||
|
||||
|
||||
/*
|
||||
* Now for the user space program event recording (trace) definitions.
|
||||
* The following structures are used only for the ptrace interface, don't
|
||||
* touch or even look at it if you don't want to modify the user-space
|
||||
* ptrace interface. In particular stay away from it for in-kernel PER.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
unsigned long cr[NUM_CR_WORDS];
|
||||
} per_cr_words;
|
||||
|
||||
#define PER_EM_MASK 0xE8000000UL
|
||||
|
||||
typedef struct
|
||||
{
|
||||
#ifdef __s390x__
|
||||
unsigned : 32;
|
||||
#endif /* __s390x__ */
|
||||
unsigned em_branching : 1;
|
||||
unsigned em_instruction_fetch : 1;
|
||||
/*
|
||||
* Switching on storage alteration automatically fixes
|
||||
* the storage alteration event bit in the users std.
|
||||
*/
|
||||
unsigned em_storage_alteration : 1;
|
||||
unsigned em_gpr_alt_unused : 1;
|
||||
unsigned em_store_real_address : 1;
|
||||
unsigned : 3;
|
||||
unsigned branch_addr_ctl : 1;
|
||||
unsigned : 1;
|
||||
unsigned storage_alt_space_ctl : 1;
|
||||
unsigned : 21;
|
||||
unsigned long starting_addr;
|
||||
unsigned long ending_addr;
|
||||
} per_cr_bits;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned short perc_atmid;
|
||||
unsigned long address;
|
||||
unsigned char access_id;
|
||||
} per_lowcore_words;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned perc_branching : 1;
|
||||
unsigned perc_instruction_fetch : 1;
|
||||
unsigned perc_storage_alteration : 1;
|
||||
unsigned perc_gpr_alt_unused : 1;
|
||||
unsigned perc_store_real_address : 1;
|
||||
unsigned : 3;
|
||||
unsigned atmid_psw_bit_31 : 1;
|
||||
unsigned atmid_validity_bit : 1;
|
||||
unsigned atmid_psw_bit_32 : 1;
|
||||
unsigned atmid_psw_bit_5 : 1;
|
||||
unsigned atmid_psw_bit_16 : 1;
|
||||
unsigned atmid_psw_bit_17 : 1;
|
||||
unsigned si : 2;
|
||||
unsigned long address;
|
||||
unsigned : 4;
|
||||
unsigned access_id : 4;
|
||||
} per_lowcore_bits;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
union {
|
||||
per_cr_words words;
|
||||
per_cr_bits bits;
|
||||
} control_regs;
|
||||
/*
|
||||
* Use these flags instead of setting em_instruction_fetch
|
||||
* directly they are used so that single stepping can be
|
||||
* switched on & off while not affecting other tracing
|
||||
*/
|
||||
unsigned single_step : 1;
|
||||
unsigned instruction_fetch : 1;
|
||||
unsigned : 30;
|
||||
/*
|
||||
* These addresses are copied into cr10 & cr11 if single
|
||||
* stepping is switched off
|
||||
*/
|
||||
unsigned long starting_addr;
|
||||
unsigned long ending_addr;
|
||||
union {
|
||||
per_lowcore_words words;
|
||||
per_lowcore_bits bits;
|
||||
} lowcore;
|
||||
} per_struct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned int len;
|
||||
unsigned long kernel_addr;
|
||||
unsigned long process_addr;
|
||||
} ptrace_area;
|
||||
|
||||
/*
|
||||
* S/390 specific non posix ptrace requests. I chose unusual values so
|
||||
* they are unlikely to clash with future ptrace definitions.
|
||||
*/
|
||||
#define PTRACE_PEEKUSR_AREA 0x5000
|
||||
#define PTRACE_POKEUSR_AREA 0x5001
|
||||
#define PTRACE_PEEKTEXT_AREA 0x5002
|
||||
#define PTRACE_PEEKDATA_AREA 0x5003
|
||||
#define PTRACE_POKETEXT_AREA 0x5004
|
||||
#define PTRACE_POKEDATA_AREA 0x5005
|
||||
#define PTRACE_GET_LAST_BREAK 0x5006
|
||||
#define PTRACE_PEEK_SYSTEM_CALL 0x5007
|
||||
#define PTRACE_POKE_SYSTEM_CALL 0x5008
|
||||
#define PTRACE_ENABLE_TE 0x5009
|
||||
#define PTRACE_DISABLE_TE 0x5010
|
||||
|
||||
/*
|
||||
* PT_PROT definition is loosely based on hppa bsd definition in
|
||||
* gdb/hppab-nat.c
|
||||
*/
|
||||
#define PTRACE_PROT 21
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ptprot_set_access_watchpoint,
|
||||
ptprot_set_write_watchpoint,
|
||||
ptprot_disable_watchpoint
|
||||
} ptprot_flags;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned long lowaddr;
|
||||
unsigned long hiaddr;
|
||||
ptprot_flags prot;
|
||||
} ptprot_area;
|
||||
|
||||
/* Sequence of bytes for breakpoint illegal instruction. */
|
||||
#define S390_BREAKPOINT {0x0,0x1}
|
||||
#define S390_BREAKPOINT_U16 ((__u16)0x0001)
|
||||
#define S390_SYSCALL_OPCODE ((__u16)0x0a00)
|
||||
#define S390_SYSCALL_SIZE 2
|
||||
|
||||
/*
|
||||
* The user_regs_struct defines the way the user registers are
|
||||
* store on the stack for signal handling.
|
||||
*/
|
||||
struct user_regs_struct
|
||||
{
|
||||
psw_t psw;
|
||||
unsigned long gprs[NUM_GPRS];
|
||||
unsigned int acrs[NUM_ACRS];
|
||||
unsigned long orig_gpr2;
|
||||
s390_fp_regs fp_regs;
|
||||
/*
|
||||
* These per registers are in here so that gdb can modify them
|
||||
* itself as there is no "official" ptrace interface for hardware
|
||||
* watchpoints. This is the way intel does it.
|
||||
*/
|
||||
per_struct per_info;
|
||||
unsigned long ieee_instruction_pointer; /* obsolete, always 0 */
|
||||
};
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* _UAPI_S390_PTRACE_H */
|
115
arch/s390/include/uapi/asm/qeth.h
Normal file
115
arch/s390/include/uapi/asm/qeth.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
* ioctl definitions for qeth driver
|
||||
*
|
||||
* Copyright IBM Corp. 2004
|
||||
*
|
||||
* Author(s): Thomas Spatzier <tspat@de.ibm.com>
|
||||
*
|
||||
*/
|
||||
#ifndef __ASM_S390_QETH_IOCTL_H__
|
||||
#define __ASM_S390_QETH_IOCTL_H__
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define SIOC_QETH_ARP_SET_NO_ENTRIES (SIOCDEVPRIVATE)
|
||||
#define SIOC_QETH_ARP_QUERY_INFO (SIOCDEVPRIVATE + 1)
|
||||
#define SIOC_QETH_ARP_ADD_ENTRY (SIOCDEVPRIVATE + 2)
|
||||
#define SIOC_QETH_ARP_REMOVE_ENTRY (SIOCDEVPRIVATE + 3)
|
||||
#define SIOC_QETH_ARP_FLUSH_CACHE (SIOCDEVPRIVATE + 4)
|
||||
#define SIOC_QETH_ADP_SET_SNMP_CONTROL (SIOCDEVPRIVATE + 5)
|
||||
#define SIOC_QETH_GET_CARD_TYPE (SIOCDEVPRIVATE + 6)
|
||||
#define SIOC_QETH_QUERY_OAT (SIOCDEVPRIVATE + 7)
|
||||
|
||||
struct qeth_arp_cache_entry {
|
||||
__u8 macaddr[6];
|
||||
__u8 reserved1[2];
|
||||
__u8 ipaddr[16]; /* for both IPv4 and IPv6 */
|
||||
__u8 reserved2[32];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
enum qeth_arp_ipaddrtype {
|
||||
QETHARP_IP_ADDR_V4 = 1,
|
||||
QETHARP_IP_ADDR_V6 = 2,
|
||||
};
|
||||
struct qeth_arp_entrytype {
|
||||
__u8 mac;
|
||||
__u8 ip;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define QETH_QARP_MEDIASPECIFIC_BYTES 32
|
||||
#define QETH_QARP_MACADDRTYPE_BYTES 1
|
||||
struct qeth_arp_qi_entry7 {
|
||||
__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 macaddr[6];
|
||||
__u8 ipaddr[4];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry7_ipv6 {
|
||||
__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 macaddr[6];
|
||||
__u8 ipaddr[16];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry7_short {
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 macaddr[6];
|
||||
__u8 ipaddr[4];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry7_short_ipv6 {
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 macaddr[6];
|
||||
__u8 ipaddr[16];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry5 {
|
||||
__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 ipaddr[4];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry5_ipv6 {
|
||||
__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 ipaddr[16];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry5_short {
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 ipaddr[4];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_arp_qi_entry5_short_ipv6 {
|
||||
struct qeth_arp_entrytype type;
|
||||
__u8 ipaddr[16];
|
||||
} __attribute__((packed));
|
||||
/*
|
||||
* can be set by user if no "media specific information" is wanted
|
||||
* -> saves a lot of space in user space buffer
|
||||
*/
|
||||
#define QETH_QARP_STRIP_ENTRIES 0x8000
|
||||
#define QETH_QARP_WITH_IPV6 0x4000
|
||||
#define QETH_QARP_REQUEST_MASK 0x00ff
|
||||
|
||||
/* data sent to user space as result of query arp ioctl */
|
||||
#define QETH_QARP_USER_DATA_SIZE 20000
|
||||
#define QETH_QARP_MASK_OFFSET 4
|
||||
#define QETH_QARP_ENTRIES_OFFSET 6
|
||||
struct qeth_arp_query_user_data {
|
||||
union {
|
||||
__u32 data_len; /* set by user space program */
|
||||
__u32 no_entries; /* set by kernel */
|
||||
} u;
|
||||
__u16 mask_bits;
|
||||
char *entries;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct qeth_query_oat_data {
|
||||
__u32 command;
|
||||
__u32 buffer_len;
|
||||
__u32 response_len;
|
||||
__u64 ptr;
|
||||
};
|
||||
#endif /* __ASM_S390_QETH_IOCTL_H__ */
|
13
arch/s390/include/uapi/asm/resource.h
Normal file
13
arch/s390/include/uapi/asm/resource.h
Normal file
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/resources.h"
|
||||
*/
|
||||
|
||||
#ifndef _S390_RESOURCE_H
|
||||
#define _S390_RESOURCE_H
|
||||
|
||||
#include <asm-generic/resource.h>
|
||||
|
||||
#endif
|
||||
|
16
arch/s390/include/uapi/asm/schid.h
Normal file
16
arch/s390/include/uapi/asm/schid.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef _UAPIASM_SCHID_H
|
||||
#define _UAPIASM_SCHID_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct subchannel_id {
|
||||
__u32 cssid : 8;
|
||||
__u32 : 4;
|
||||
__u32 m : 1;
|
||||
__u32 ssid : 2;
|
||||
__u32 one : 1;
|
||||
__u32 sch_no : 16;
|
||||
} __attribute__ ((packed, aligned(4)));
|
||||
|
||||
|
||||
#endif /* _UAPIASM_SCHID_H */
|
29
arch/s390/include/uapi/asm/sembuf.h
Normal file
29
arch/s390/include/uapi/asm/sembuf.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef _S390_SEMBUF_H
|
||||
#define _S390_SEMBUF_H
|
||||
|
||||
/*
|
||||
* The semid64_ds structure for S/390 architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 64-bit time_t to solve y2038 problem (for !__s390x__)
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct semid64_ds {
|
||||
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
|
||||
__kernel_time_t sem_otime; /* last semop time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused1;
|
||||
#endif /* ! __s390x__ */
|
||||
__kernel_time_t sem_ctime; /* last change time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused2;
|
||||
#endif /* ! __s390x__ */
|
||||
unsigned long sem_nsems; /* no. of semaphores in array */
|
||||
unsigned long __unused3;
|
||||
unsigned long __unused4;
|
||||
};
|
||||
|
||||
#endif /* _S390_SEMBUF_H */
|
13
arch/s390/include/uapi/asm/setup.h
Normal file
13
arch/s390/include/uapi/asm/setup.h
Normal file
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* S390 version
|
||||
* Copyright IBM Corp. 1999, 2010
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_S390_SETUP_H
|
||||
#define _UAPI_ASM_S390_SETUP_H
|
||||
|
||||
#define COMMAND_LINE_SIZE 4096
|
||||
|
||||
#define ARCH_COMMAND_LINE_SIZE 896
|
||||
|
||||
#endif /* _UAPI_ASM_S390_SETUP_H */
|
48
arch/s390/include/uapi/asm/shmbuf.h
Normal file
48
arch/s390/include/uapi/asm/shmbuf.h
Normal file
@@ -0,0 +1,48 @@
|
||||
#ifndef _S390_SHMBUF_H
|
||||
#define _S390_SHMBUF_H
|
||||
|
||||
/*
|
||||
* The shmid64_ds structure for S/390 architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 64-bit time_t to solve y2038 problem (for !__s390x__)
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct shmid64_ds {
|
||||
struct ipc64_perm shm_perm; /* operation perms */
|
||||
size_t shm_segsz; /* size of segment (bytes) */
|
||||
__kernel_time_t shm_atime; /* last attach time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused1;
|
||||
#endif /* ! __s390x__ */
|
||||
__kernel_time_t shm_dtime; /* last detach time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused2;
|
||||
#endif /* ! __s390x__ */
|
||||
__kernel_time_t shm_ctime; /* last change time */
|
||||
#ifndef __s390x__
|
||||
unsigned long __unused3;
|
||||
#endif /* ! __s390x__ */
|
||||
__kernel_pid_t shm_cpid; /* pid of creator */
|
||||
__kernel_pid_t shm_lpid; /* pid of last operator */
|
||||
unsigned long shm_nattch; /* no. of current attaches */
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
struct shminfo64 {
|
||||
unsigned long shmmax;
|
||||
unsigned long shmmin;
|
||||
unsigned long shmmni;
|
||||
unsigned long shmseg;
|
||||
unsigned long shmall;
|
||||
unsigned long __unused1;
|
||||
unsigned long __unused2;
|
||||
unsigned long __unused3;
|
||||
unsigned long __unused4;
|
||||
};
|
||||
|
||||
#endif /* _S390_SHMBUF_H */
|
69
arch/s390/include/uapi/asm/sigcontext.h
Normal file
69
arch/s390/include/uapi/asm/sigcontext.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* S390 version
|
||||
* Copyright IBM Corp. 1999, 2000
|
||||
*/
|
||||
|
||||
#ifndef _ASM_S390_SIGCONTEXT_H
|
||||
#define _ASM_S390_SIGCONTEXT_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
|
||||
#define __NUM_GPRS 16
|
||||
#define __NUM_FPRS 16
|
||||
#define __NUM_ACRS 16
|
||||
|
||||
#ifndef __s390x__
|
||||
|
||||
/* Has to be at least _NSIG_WORDS from asm/signal.h */
|
||||
#define _SIGCONTEXT_NSIG 64
|
||||
#define _SIGCONTEXT_NSIG_BPW 32
|
||||
/* Size of stack frame allocated when calling signal handler. */
|
||||
#define __SIGNAL_FRAMESIZE 96
|
||||
|
||||
#else /* __s390x__ */
|
||||
|
||||
/* Has to be at least _NSIG_WORDS from asm/signal.h */
|
||||
#define _SIGCONTEXT_NSIG 64
|
||||
#define _SIGCONTEXT_NSIG_BPW 64
|
||||
/* Size of stack frame allocated when calling signal handler. */
|
||||
#define __SIGNAL_FRAMESIZE 160
|
||||
|
||||
#endif /* __s390x__ */
|
||||
|
||||
#define _SIGCONTEXT_NSIG_WORDS (_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
|
||||
#define _SIGMASK_COPY_SIZE (sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned long mask;
|
||||
unsigned long addr;
|
||||
} __attribute__ ((aligned(8))) _psw_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
_psw_t psw;
|
||||
unsigned long gprs[__NUM_GPRS];
|
||||
unsigned int acrs[__NUM_ACRS];
|
||||
} _s390_regs_common;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned int fpc;
|
||||
double fprs[__NUM_FPRS];
|
||||
} _s390_fp_regs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
_s390_regs_common regs;
|
||||
_s390_fp_regs fpregs;
|
||||
} _sigregs;
|
||||
|
||||
struct sigcontext
|
||||
{
|
||||
unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS];
|
||||
_sigregs __user *sregs;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
16
arch/s390/include/uapi/asm/siginfo.h
Normal file
16
arch/s390/include/uapi/asm/siginfo.h
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/siginfo.h"
|
||||
*/
|
||||
|
||||
#ifndef _S390_SIGINFO_H
|
||||
#define _S390_SIGINFO_H
|
||||
|
||||
#ifdef __s390x__
|
||||
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
|
||||
#endif
|
||||
|
||||
#include <asm-generic/siginfo.h>
|
||||
|
||||
#endif
|
135
arch/s390/include/uapi/asm/signal.h
Normal file
135
arch/s390/include/uapi/asm/signal.h
Normal file
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/signal.h"
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASMS390_SIGNAL_H
|
||||
#define _UAPI_ASMS390_SIGNAL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/time.h>
|
||||
|
||||
/* Avoid too many header ordering problems. */
|
||||
struct siginfo;
|
||||
struct pt_regs;
|
||||
|
||||
#ifndef __KERNEL__
|
||||
/* Here we must cater to libcs that poke about in kernel headers. */
|
||||
|
||||
#define NSIG 32
|
||||
typedef unsigned long sigset_t;
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
#define SIGQUIT 3
|
||||
#define SIGILL 4
|
||||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT 6
|
||||
#define SIGBUS 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGUSR1 10
|
||||
#define SIGSEGV 11
|
||||
#define SIGUSR2 12
|
||||
#define SIGPIPE 13
|
||||
#define SIGALRM 14
|
||||
#define SIGTERM 15
|
||||
#define SIGSTKFLT 16
|
||||
#define SIGCHLD 17
|
||||
#define SIGCONT 18
|
||||
#define SIGSTOP 19
|
||||
#define SIGTSTP 20
|
||||
#define SIGTTIN 21
|
||||
#define SIGTTOU 22
|
||||
#define SIGURG 23
|
||||
#define SIGXCPU 24
|
||||
#define SIGXFSZ 25
|
||||
#define SIGVTALRM 26
|
||||
#define SIGPROF 27
|
||||
#define SIGWINCH 28
|
||||
#define SIGIO 29
|
||||
#define SIGPOLL SIGIO
|
||||
/*
|
||||
#define SIGLOST 29
|
||||
*/
|
||||
#define SIGPWR 30
|
||||
#define SIGSYS 31
|
||||
#define SIGUNUSED 31
|
||||
|
||||
/* These should not be considered constants from userland. */
|
||||
#define SIGRTMIN 32
|
||||
#define SIGRTMAX _NSIG
|
||||
|
||||
/*
|
||||
* SA_FLAGS values:
|
||||
*
|
||||
* SA_ONSTACK indicates that a registered stack_t will be used.
|
||||
* SA_RESTART flag to get restarting signals (which were the default long ago)
|
||||
* SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
|
||||
* SA_RESETHAND clears the handler when the signal is delivered.
|
||||
* SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
|
||||
* SA_NODEFER prevents the current signal from being masked in the handler.
|
||||
*
|
||||
* SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
|
||||
* Unix names RESETHAND and NODEFER respectively.
|
||||
*/
|
||||
#define SA_NOCLDSTOP 0x00000001
|
||||
#define SA_NOCLDWAIT 0x00000002
|
||||
#define SA_SIGINFO 0x00000004
|
||||
#define SA_ONSTACK 0x08000000
|
||||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
|
||||
#define SA_NOMASK SA_NODEFER
|
||||
#define SA_ONESHOT SA_RESETHAND
|
||||
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
/*
|
||||
* sigaltstack controls
|
||||
*/
|
||||
#define SS_ONSTACK 1
|
||||
#define SS_DISABLE 2
|
||||
|
||||
#define MINSIGSTKSZ 2048
|
||||
#define SIGSTKSZ 8192
|
||||
|
||||
#include <asm-generic/signal-defs.h>
|
||||
|
||||
#ifndef __KERNEL__
|
||||
/* Here we must cater to libcs that poke about in kernel headers. */
|
||||
|
||||
struct sigaction {
|
||||
union {
|
||||
__sighandler_t _sa_handler;
|
||||
void (*_sa_sigaction)(int, struct siginfo *, void *);
|
||||
} _u;
|
||||
#ifndef __s390x__ /* lovely */
|
||||
sigset_t sa_mask;
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer)(void);
|
||||
#else /* __s390x__ */
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer)(void);
|
||||
sigset_t sa_mask;
|
||||
#endif /* __s390x__ */
|
||||
};
|
||||
|
||||
#define sa_handler _u._sa_handler
|
||||
#define sa_sigaction _u._sa_sigaction
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
typedef struct sigaltstack {
|
||||
void __user *ss_sp;
|
||||
int ss_flags;
|
||||
size_t ss_size;
|
||||
} stack_t;
|
||||
|
||||
|
||||
#endif /* _UAPI_ASMS390_SIGNAL_H */
|
78
arch/s390/include/uapi/asm/socket.h
Normal file
78
arch/s390/include/uapi/asm/socket.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/socket.h"
|
||||
*/
|
||||
|
||||
#ifndef _ASM_SOCKET_H
|
||||
#define _ASM_SOCKET_H
|
||||
|
||||
#include <asm/sockios.h>
|
||||
|
||||
/* For setsockopt(2) */
|
||||
#define SOL_SOCKET 1
|
||||
|
||||
#define SO_DEBUG 1
|
||||
#define SO_REUSEADDR 2
|
||||
#define SO_TYPE 3
|
||||
#define SO_ERROR 4
|
||||
#define SO_DONTROUTE 5
|
||||
#define SO_BROADCAST 6
|
||||
#define SO_SNDBUF 7
|
||||
#define SO_RCVBUF 8
|
||||
#define SO_SNDBUFFORCE 32
|
||||
#define SO_RCVBUFFORCE 33
|
||||
#define SO_KEEPALIVE 9
|
||||
#define SO_OOBINLINE 10
|
||||
#define SO_NO_CHECK 11
|
||||
#define SO_PRIORITY 12
|
||||
#define SO_LINGER 13
|
||||
#define SO_BSDCOMPAT 14
|
||||
/* To add :#define SO_REUSEPORT 15 */
|
||||
#define SO_PASSCRED 16
|
||||
#define SO_PEERCRED 17
|
||||
#define SO_RCVLOWAT 18
|
||||
#define SO_SNDLOWAT 19
|
||||
#define SO_RCVTIMEO 20
|
||||
#define SO_SNDTIMEO 21
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define SO_SECURITY_AUTHENTICATION 22
|
||||
#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
||||
#define SO_SECURITY_ENCRYPTION_NETWORK 24
|
||||
|
||||
#define SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define SO_ATTACH_FILTER 26
|
||||
#define SO_DETACH_FILTER 27
|
||||
|
||||
#define SO_PEERNAME 28
|
||||
#define SO_TIMESTAMP 29
|
||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
||||
|
||||
#define SO_ACCEPTCONN 30
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#define SO_MARK 36
|
||||
|
||||
#define SO_TIMESTAMPING 37
|
||||
#define SCM_TIMESTAMPING SO_TIMESTAMPING
|
||||
|
||||
#define SO_PROTOCOL 38
|
||||
#define SO_DOMAIN 39
|
||||
|
||||
#define SO_RXQ_OVFL 40
|
||||
|
||||
#define SO_WIFI_STATUS 41
|
||||
#define SCM_WIFI_STATUS SO_WIFI_STATUS
|
||||
#define SO_PEEK_OFF 42
|
||||
|
||||
/* Instruct lower device to use last 4-bytes of skb data as FCS */
|
||||
#define SO_NOFCS 43
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
6
arch/s390/include/uapi/asm/sockios.h
Normal file
6
arch/s390/include/uapi/asm/sockios.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef _ASM_S390_SOCKIOS_H
|
||||
#define _ASM_S390_SOCKIOS_H
|
||||
|
||||
#include <asm-generic/sockios.h>
|
||||
|
||||
#endif
|
103
arch/s390/include/uapi/asm/stat.h
Normal file
103
arch/s390/include/uapi/asm/stat.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/stat.h"
|
||||
*/
|
||||
|
||||
#ifndef _S390_STAT_H
|
||||
#define _S390_STAT_H
|
||||
|
||||
#ifndef __s390x__
|
||||
struct __old_kernel_stat {
|
||||
unsigned short st_dev;
|
||||
unsigned short st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
unsigned short st_rdev;
|
||||
unsigned long st_size;
|
||||
unsigned long st_atime;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_ctime;
|
||||
};
|
||||
|
||||
struct stat {
|
||||
unsigned short st_dev;
|
||||
unsigned short __pad1;
|
||||
unsigned long st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
unsigned short st_rdev;
|
||||
unsigned short __pad2;
|
||||
unsigned long st_size;
|
||||
unsigned long st_blksize;
|
||||
unsigned long st_blocks;
|
||||
unsigned long st_atime;
|
||||
unsigned long st_atime_nsec;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_mtime_nsec;
|
||||
unsigned long st_ctime;
|
||||
unsigned long st_ctime_nsec;
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
/* This matches struct stat64 in glibc2.1, hence the absolutely
|
||||
* insane amounts of padding around dev_t's.
|
||||
*/
|
||||
struct stat64 {
|
||||
unsigned long long st_dev;
|
||||
unsigned int __pad1;
|
||||
#define STAT64_HAS_BROKEN_ST_INO 1
|
||||
unsigned long __st_ino;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_nlink;
|
||||
unsigned long st_uid;
|
||||
unsigned long st_gid;
|
||||
unsigned long long st_rdev;
|
||||
unsigned int __pad3;
|
||||
long long st_size;
|
||||
unsigned long st_blksize;
|
||||
unsigned char __pad4[4];
|
||||
unsigned long __pad5; /* future possible st_blocks high bits */
|
||||
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
|
||||
unsigned long st_atime;
|
||||
unsigned long st_atime_nsec;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_mtime_nsec;
|
||||
unsigned long st_ctime;
|
||||
unsigned long st_ctime_nsec; /* will be high 32 bits of ctime someday */
|
||||
unsigned long long st_ino;
|
||||
};
|
||||
|
||||
#else /* __s390x__ */
|
||||
|
||||
struct stat {
|
||||
unsigned long st_dev;
|
||||
unsigned long st_ino;
|
||||
unsigned long st_nlink;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned int __pad1;
|
||||
unsigned long st_rdev;
|
||||
unsigned long st_size;
|
||||
unsigned long st_atime;
|
||||
unsigned long st_atime_nsec;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_mtime_nsec;
|
||||
unsigned long st_ctime;
|
||||
unsigned long st_ctime_nsec;
|
||||
unsigned long st_blksize;
|
||||
long st_blocks;
|
||||
unsigned long __unused[3];
|
||||
};
|
||||
|
||||
#endif /* __s390x__ */
|
||||
|
||||
#define STAT_HAVE_NSEC 1
|
||||
|
||||
#endif
|
69
arch/s390/include/uapi/asm/statfs.h
Normal file
69
arch/s390/include/uapi/asm/statfs.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/statfs.h"
|
||||
*/
|
||||
|
||||
#ifndef _S390_STATFS_H
|
||||
#define _S390_STATFS_H
|
||||
|
||||
#ifndef __s390x__
|
||||
#include <asm-generic/statfs.h>
|
||||
#else
|
||||
/*
|
||||
* We can't use <asm-generic/statfs.h> because in 64-bit mode
|
||||
* we mix ints of different sizes in our struct statfs.
|
||||
*/
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
#include <linux/types.h>
|
||||
typedef __kernel_fsid_t fsid_t;
|
||||
#endif
|
||||
|
||||
struct statfs {
|
||||
int f_type;
|
||||
int f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
int f_namelen;
|
||||
int f_frsize;
|
||||
int f_flags;
|
||||
int f_spare[4];
|
||||
};
|
||||
|
||||
struct statfs64 {
|
||||
int f_type;
|
||||
int f_bsize;
|
||||
long f_blocks;
|
||||
long f_bfree;
|
||||
long f_bavail;
|
||||
long f_files;
|
||||
long f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
int f_namelen;
|
||||
int f_frsize;
|
||||
int f_flags;
|
||||
int f_spare[4];
|
||||
};
|
||||
|
||||
struct compat_statfs64 {
|
||||
__u32 f_type;
|
||||
__u32 f_bsize;
|
||||
__u64 f_blocks;
|
||||
__u64 f_bfree;
|
||||
__u64 f_bavail;
|
||||
__u64 f_files;
|
||||
__u64 f_ffree;
|
||||
__kernel_fsid_t f_fsid;
|
||||
__u32 f_namelen;
|
||||
__u32 f_frsize;
|
||||
__u32 f_flags;
|
||||
__u32 f_spare[4];
|
||||
};
|
||||
|
||||
#endif /* __s390x__ */
|
||||
#endif
|
89
arch/s390/include/uapi/asm/swab.h
Normal file
89
arch/s390/include/uapi/asm/swab.h
Normal file
@@ -0,0 +1,89 @@
|
||||
#ifndef _S390_SWAB_H
|
||||
#define _S390_SWAB_H
|
||||
|
||||
/*
|
||||
* S390 version
|
||||
* Copyright IBM Corp. 1999
|
||||
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#ifndef __s390x__
|
||||
# define __SWAB_64_THRU_32__
|
||||
#endif
|
||||
|
||||
#ifdef __s390x__
|
||||
static inline __u64 __arch_swab64p(const __u64 *x)
|
||||
{
|
||||
__u64 result;
|
||||
|
||||
asm volatile("lrvg %0,%1" : "=d" (result) : "m" (*x));
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab64p __arch_swab64p
|
||||
|
||||
static inline __u64 __arch_swab64(__u64 x)
|
||||
{
|
||||
__u64 result;
|
||||
|
||||
asm volatile("lrvgr %0,%1" : "=d" (result) : "d" (x));
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab64 __arch_swab64
|
||||
|
||||
static inline void __arch_swab64s(__u64 *x)
|
||||
{
|
||||
*x = __arch_swab64p(x);
|
||||
}
|
||||
#define __arch_swab64s __arch_swab64s
|
||||
#endif /* __s390x__ */
|
||||
|
||||
static inline __u32 __arch_swab32p(const __u32 *x)
|
||||
{
|
||||
__u32 result;
|
||||
|
||||
asm volatile(
|
||||
#ifndef __s390x__
|
||||
" icm %0,8,%O1+3(%R1)\n"
|
||||
" icm %0,4,%O1+2(%R1)\n"
|
||||
" icm %0,2,%O1+1(%R1)\n"
|
||||
" ic %0,%1"
|
||||
: "=&d" (result) : "Q" (*x) : "cc");
|
||||
#else /* __s390x__ */
|
||||
" lrv %0,%1"
|
||||
: "=d" (result) : "m" (*x));
|
||||
#endif /* __s390x__ */
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab32p __arch_swab32p
|
||||
|
||||
#ifdef __s390x__
|
||||
static inline __u32 __arch_swab32(__u32 x)
|
||||
{
|
||||
__u32 result;
|
||||
|
||||
asm volatile("lrvr %0,%1" : "=d" (result) : "d" (x));
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab32 __arch_swab32
|
||||
#endif /* __s390x__ */
|
||||
|
||||
static inline __u16 __arch_swab16p(const __u16 *x)
|
||||
{
|
||||
__u16 result;
|
||||
|
||||
asm volatile(
|
||||
#ifndef __s390x__
|
||||
" icm %0,2,%O1+1(%R1)\n"
|
||||
" ic %0,%1\n"
|
||||
: "=&d" (result) : "Q" (*x) : "cc");
|
||||
#else /* __s390x__ */
|
||||
" lrvh %0,%1"
|
||||
: "=d" (result) : "m" (*x));
|
||||
#endif /* __s390x__ */
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab16p __arch_swab16p
|
||||
|
||||
#endif /* _S390_SWAB_H */
|
102
arch/s390/include/uapi/asm/tape390.h
Normal file
102
arch/s390/include/uapi/asm/tape390.h
Normal file
@@ -0,0 +1,102 @@
|
||||
/*************************************************************************
|
||||
*
|
||||
* enables user programs to display messages and control encryption
|
||||
* on s390 tape devices
|
||||
*
|
||||
* Copyright IBM Corp. 2001, 2006
|
||||
* Author(s): Michael Holzheu <holzheu@de.ibm.com>
|
||||
*
|
||||
*************************************************************************/
|
||||
|
||||
#ifndef _TAPE390_H
|
||||
#define _TAPE390_H
|
||||
|
||||
#define TAPE390_DISPLAY _IOW('d', 1, struct display_struct)
|
||||
|
||||
/*
|
||||
* The TAPE390_DISPLAY ioctl calls the Load Display command
|
||||
* which transfers 17 bytes of data from the channel to the subsystem:
|
||||
* - 1 format control byte, and
|
||||
* - two 8-byte messages
|
||||
*
|
||||
* Format control byte:
|
||||
* 0-2: New Message Overlay
|
||||
* 3: Alternate Messages
|
||||
* 4: Blink Message
|
||||
* 5: Display Low/High Message
|
||||
* 6: Reserved
|
||||
* 7: Automatic Load Request
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct display_struct {
|
||||
char cntrl;
|
||||
char message1[8];
|
||||
char message2[8];
|
||||
} display_struct;
|
||||
|
||||
/*
|
||||
* Tape encryption support
|
||||
*/
|
||||
|
||||
struct tape390_crypt_info {
|
||||
char capability;
|
||||
char status;
|
||||
char medium_status;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
/* Macros for "capable" field */
|
||||
#define TAPE390_CRYPT_SUPPORTED_MASK 0x01
|
||||
#define TAPE390_CRYPT_SUPPORTED(x) \
|
||||
((x.capability & TAPE390_CRYPT_SUPPORTED_MASK))
|
||||
|
||||
/* Macros for "status" field */
|
||||
#define TAPE390_CRYPT_ON_MASK 0x01
|
||||
#define TAPE390_CRYPT_ON(x) (((x.status) & TAPE390_CRYPT_ON_MASK))
|
||||
|
||||
/* Macros for "medium status" field */
|
||||
#define TAPE390_MEDIUM_LOADED_MASK 0x01
|
||||
#define TAPE390_MEDIUM_ENCRYPTED_MASK 0x02
|
||||
#define TAPE390_MEDIUM_ENCRYPTED(x) \
|
||||
(((x.medium_status) & TAPE390_MEDIUM_ENCRYPTED_MASK))
|
||||
#define TAPE390_MEDIUM_LOADED(x) \
|
||||
(((x.medium_status) & TAPE390_MEDIUM_LOADED_MASK))
|
||||
|
||||
/*
|
||||
* The TAPE390_CRYPT_SET ioctl is used to switch on/off encryption.
|
||||
* The "encryption_capable" and "tape_status" fields are ignored for this ioctl!
|
||||
*/
|
||||
#define TAPE390_CRYPT_SET _IOW('d', 2, struct tape390_crypt_info)
|
||||
|
||||
/*
|
||||
* The TAPE390_CRYPT_QUERY ioctl is used to query the encryption state.
|
||||
*/
|
||||
#define TAPE390_CRYPT_QUERY _IOR('d', 3, struct tape390_crypt_info)
|
||||
|
||||
/* Values for "kekl1/2_type" and "kekl1/2_type_on_tape" fields */
|
||||
#define TAPE390_KEKL_TYPE_NONE 0
|
||||
#define TAPE390_KEKL_TYPE_LABEL 1
|
||||
#define TAPE390_KEKL_TYPE_HASH 2
|
||||
|
||||
struct tape390_kekl {
|
||||
unsigned char type;
|
||||
unsigned char type_on_tape;
|
||||
char label[65];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct tape390_kekl_pair {
|
||||
struct tape390_kekl kekl[2];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/*
|
||||
* The TAPE390_KEKL_SET ioctl is used to set Key Encrypting Key labels.
|
||||
*/
|
||||
#define TAPE390_KEKL_SET _IOW('d', 4, struct tape390_kekl_pair)
|
||||
|
||||
/*
|
||||
* The TAPE390_KEKL_QUERY ioctl is used to query Key Encrypting Key labels.
|
||||
*/
|
||||
#define TAPE390_KEKL_QUERY _IOR('d', 5, struct tape390_kekl_pair)
|
||||
|
||||
#endif
|
6
arch/s390/include/uapi/asm/termbits.h
Normal file
6
arch/s390/include/uapi/asm/termbits.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef _ASM_S390_TERMBITS_H
|
||||
#define _ASM_S390_TERMBITS_H
|
||||
|
||||
#include <asm-generic/termbits.h>
|
||||
|
||||
#endif
|
49
arch/s390/include/uapi/asm/termios.h
Normal file
49
arch/s390/include/uapi/asm/termios.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/termios.h"
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_S390_TERMIOS_H
|
||||
#define _UAPI_S390_TERMIOS_H
|
||||
|
||||
#include <asm/termbits.h>
|
||||
#include <asm/ioctls.h>
|
||||
|
||||
struct winsize {
|
||||
unsigned short ws_row;
|
||||
unsigned short ws_col;
|
||||
unsigned short ws_xpixel;
|
||||
unsigned short ws_ypixel;
|
||||
};
|
||||
|
||||
#define NCC 8
|
||||
struct termio {
|
||||
unsigned short c_iflag; /* input mode flags */
|
||||
unsigned short c_oflag; /* output mode flags */
|
||||
unsigned short c_cflag; /* control mode flags */
|
||||
unsigned short c_lflag; /* local mode flags */
|
||||
unsigned char c_line; /* line discipline */
|
||||
unsigned char c_cc[NCC]; /* control characters */
|
||||
};
|
||||
|
||||
/* modem lines */
|
||||
#define TIOCM_LE 0x001
|
||||
#define TIOCM_DTR 0x002
|
||||
#define TIOCM_RTS 0x004
|
||||
#define TIOCM_ST 0x008
|
||||
#define TIOCM_SR 0x010
|
||||
#define TIOCM_CTS 0x020
|
||||
#define TIOCM_CAR 0x040
|
||||
#define TIOCM_RNG 0x080
|
||||
#define TIOCM_DSR 0x100
|
||||
#define TIOCM_CD TIOCM_CAR
|
||||
#define TIOCM_RI TIOCM_RNG
|
||||
#define TIOCM_OUT1 0x2000
|
||||
#define TIOCM_OUT2 0x4000
|
||||
#define TIOCM_LOOP 0x8000
|
||||
|
||||
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
||||
|
||||
|
||||
#endif /* _UAPI_S390_TERMIOS_H */
|
22
arch/s390/include/uapi/asm/types.h
Normal file
22
arch/s390/include/uapi/asm/types.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/types.h"
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_S390_TYPES_H
|
||||
#define _UAPI_S390_TYPES_H
|
||||
|
||||
#include <asm-generic/int-ll64.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* A address type so that arithmetic can be done on it & it can be upgraded to
|
||||
64 bit when necessary
|
||||
*/
|
||||
typedef unsigned long addr_t;
|
||||
typedef __signed__ long saddr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* _UAPI_S390_TYPES_H */
|
33
arch/s390/include/uapi/asm/ucontext.h
Normal file
33
arch/s390/include/uapi/asm/ucontext.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/ucontext.h"
|
||||
*/
|
||||
|
||||
#ifndef _ASM_S390_UCONTEXT_H
|
||||
#define _ASM_S390_UCONTEXT_H
|
||||
|
||||
#define UC_EXTENDED 0x00000001
|
||||
|
||||
#ifndef __s390x__
|
||||
|
||||
struct ucontext_extended {
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
_sigregs uc_mcontext;
|
||||
unsigned long uc_sigmask[2];
|
||||
unsigned long uc_gprs_high[16];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
struct ucontext {
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
_sigregs uc_mcontext;
|
||||
sigset_t uc_sigmask; /* mask last for extensibility */
|
||||
};
|
||||
|
||||
#endif /* !_ASM_S390_UCONTEXT_H */
|
374
arch/s390/include/uapi/asm/unistd.h
Normal file
374
arch/s390/include/uapi/asm/unistd.h
Normal file
@@ -0,0 +1,374 @@
|
||||
/*
|
||||
* S390 version
|
||||
*
|
||||
* Derived from "include/asm-i386/unistd.h"
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_ASM_S390_UNISTD_H_
|
||||
#define _UAPI_ASM_S390_UNISTD_H_
|
||||
|
||||
/*
|
||||
* This file contains the system call numbers.
|
||||
*/
|
||||
|
||||
#define __NR_exit 1
|
||||
#define __NR_fork 2
|
||||
#define __NR_read 3
|
||||
#define __NR_write 4
|
||||
#define __NR_open 5
|
||||
#define __NR_close 6
|
||||
#define __NR_restart_syscall 7
|
||||
#define __NR_creat 8
|
||||
#define __NR_link 9
|
||||
#define __NR_unlink 10
|
||||
#define __NR_execve 11
|
||||
#define __NR_chdir 12
|
||||
#define __NR_mknod 14
|
||||
#define __NR_chmod 15
|
||||
#define __NR_lseek 19
|
||||
#define __NR_getpid 20
|
||||
#define __NR_mount 21
|
||||
#define __NR_umount 22
|
||||
#define __NR_ptrace 26
|
||||
#define __NR_alarm 27
|
||||
#define __NR_pause 29
|
||||
#define __NR_utime 30
|
||||
#define __NR_access 33
|
||||
#define __NR_nice 34
|
||||
#define __NR_sync 36
|
||||
#define __NR_kill 37
|
||||
#define __NR_rename 38
|
||||
#define __NR_mkdir 39
|
||||
#define __NR_rmdir 40
|
||||
#define __NR_dup 41
|
||||
#define __NR_pipe 42
|
||||
#define __NR_times 43
|
||||
#define __NR_brk 45
|
||||
#define __NR_signal 48
|
||||
#define __NR_acct 51
|
||||
#define __NR_umount2 52
|
||||
#define __NR_ioctl 54
|
||||
#define __NR_fcntl 55
|
||||
#define __NR_setpgid 57
|
||||
#define __NR_umask 60
|
||||
#define __NR_chroot 61
|
||||
#define __NR_ustat 62
|
||||
#define __NR_dup2 63
|
||||
#define __NR_getppid 64
|
||||
#define __NR_getpgrp 65
|
||||
#define __NR_setsid 66
|
||||
#define __NR_sigaction 67
|
||||
#define __NR_sigsuspend 72
|
||||
#define __NR_sigpending 73
|
||||
#define __NR_sethostname 74
|
||||
#define __NR_setrlimit 75
|
||||
#define __NR_getrusage 77
|
||||
#define __NR_gettimeofday 78
|
||||
#define __NR_settimeofday 79
|
||||
#define __NR_symlink 83
|
||||
#define __NR_readlink 85
|
||||
#define __NR_uselib 86
|
||||
#define __NR_swapon 87
|
||||
#define __NR_reboot 88
|
||||
#define __NR_readdir 89
|
||||
#define __NR_mmap 90
|
||||
#define __NR_munmap 91
|
||||
#define __NR_truncate 92
|
||||
#define __NR_ftruncate 93
|
||||
#define __NR_fchmod 94
|
||||
#define __NR_getpriority 96
|
||||
#define __NR_setpriority 97
|
||||
#define __NR_statfs 99
|
||||
#define __NR_fstatfs 100
|
||||
#define __NR_socketcall 102
|
||||
#define __NR_syslog 103
|
||||
#define __NR_setitimer 104
|
||||
#define __NR_getitimer 105
|
||||
#define __NR_stat 106
|
||||
#define __NR_lstat 107
|
||||
#define __NR_fstat 108
|
||||
#define __NR_lookup_dcookie 110
|
||||
#define __NR_vhangup 111
|
||||
#define __NR_idle 112
|
||||
#define __NR_wait4 114
|
||||
#define __NR_swapoff 115
|
||||
#define __NR_sysinfo 116
|
||||
#define __NR_ipc 117
|
||||
#define __NR_fsync 118
|
||||
#define __NR_sigreturn 119
|
||||
#define __NR_clone 120
|
||||
#define __NR_setdomainname 121
|
||||
#define __NR_uname 122
|
||||
#define __NR_adjtimex 124
|
||||
#define __NR_mprotect 125
|
||||
#define __NR_sigprocmask 126
|
||||
#define __NR_create_module 127
|
||||
#define __NR_init_module 128
|
||||
#define __NR_delete_module 129
|
||||
#define __NR_get_kernel_syms 130
|
||||
#define __NR_quotactl 131
|
||||
#define __NR_getpgid 132
|
||||
#define __NR_fchdir 133
|
||||
#define __NR_bdflush 134
|
||||
#define __NR_sysfs 135
|
||||
#define __NR_personality 136
|
||||
#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
|
||||
#define __NR_getdents 141
|
||||
#define __NR_flock 143
|
||||
#define __NR_msync 144
|
||||
#define __NR_readv 145
|
||||
#define __NR_writev 146
|
||||
#define __NR_getsid 147
|
||||
#define __NR_fdatasync 148
|
||||
#define __NR__sysctl 149
|
||||
#define __NR_mlock 150
|
||||
#define __NR_munlock 151
|
||||
#define __NR_mlockall 152
|
||||
#define __NR_munlockall 153
|
||||
#define __NR_sched_setparam 154
|
||||
#define __NR_sched_getparam 155
|
||||
#define __NR_sched_setscheduler 156
|
||||
#define __NR_sched_getscheduler 157
|
||||
#define __NR_sched_yield 158
|
||||
#define __NR_sched_get_priority_max 159
|
||||
#define __NR_sched_get_priority_min 160
|
||||
#define __NR_sched_rr_get_interval 161
|
||||
#define __NR_nanosleep 162
|
||||
#define __NR_mremap 163
|
||||
#define __NR_query_module 167
|
||||
#define __NR_poll 168
|
||||
#define __NR_nfsservctl 169
|
||||
#define __NR_prctl 172
|
||||
#define __NR_rt_sigreturn 173
|
||||
#define __NR_rt_sigaction 174
|
||||
#define __NR_rt_sigprocmask 175
|
||||
#define __NR_rt_sigpending 176
|
||||
#define __NR_rt_sigtimedwait 177
|
||||
#define __NR_rt_sigqueueinfo 178
|
||||
#define __NR_rt_sigsuspend 179
|
||||
#define __NR_pread64 180
|
||||
#define __NR_pwrite64 181
|
||||
#define __NR_getcwd 183
|
||||
#define __NR_capget 184
|
||||
#define __NR_capset 185
|
||||
#define __NR_sigaltstack 186
|
||||
#define __NR_sendfile 187
|
||||
#define __NR_getpmsg 188
|
||||
#define __NR_putpmsg 189
|
||||
#define __NR_vfork 190
|
||||
#define __NR_pivot_root 217
|
||||
#define __NR_mincore 218
|
||||
#define __NR_madvise 219
|
||||
#define __NR_getdents64 220
|
||||
#define __NR_readahead 222
|
||||
#define __NR_setxattr 224
|
||||
#define __NR_lsetxattr 225
|
||||
#define __NR_fsetxattr 226
|
||||
#define __NR_getxattr 227
|
||||
#define __NR_lgetxattr 228
|
||||
#define __NR_fgetxattr 229
|
||||
#define __NR_listxattr 230
|
||||
#define __NR_llistxattr 231
|
||||
#define __NR_flistxattr 232
|
||||
#define __NR_removexattr 233
|
||||
#define __NR_lremovexattr 234
|
||||
#define __NR_fremovexattr 235
|
||||
#define __NR_gettid 236
|
||||
#define __NR_tkill 237
|
||||
#define __NR_futex 238
|
||||
#define __NR_sched_setaffinity 239
|
||||
#define __NR_sched_getaffinity 240
|
||||
#define __NR_tgkill 241
|
||||
/* Number 242 is reserved for tux */
|
||||
#define __NR_io_setup 243
|
||||
#define __NR_io_destroy 244
|
||||
#define __NR_io_getevents 245
|
||||
#define __NR_io_submit 246
|
||||
#define __NR_io_cancel 247
|
||||
#define __NR_exit_group 248
|
||||
#define __NR_epoll_create 249
|
||||
#define __NR_epoll_ctl 250
|
||||
#define __NR_epoll_wait 251
|
||||
#define __NR_set_tid_address 252
|
||||
#define __NR_fadvise64 253
|
||||
#define __NR_timer_create 254
|
||||
#define __NR_timer_settime (__NR_timer_create+1)
|
||||
#define __NR_timer_gettime (__NR_timer_create+2)
|
||||
#define __NR_timer_getoverrun (__NR_timer_create+3)
|
||||
#define __NR_timer_delete (__NR_timer_create+4)
|
||||
#define __NR_clock_settime (__NR_timer_create+5)
|
||||
#define __NR_clock_gettime (__NR_timer_create+6)
|
||||
#define __NR_clock_getres (__NR_timer_create+7)
|
||||
#define __NR_clock_nanosleep (__NR_timer_create+8)
|
||||
/* Number 263 is reserved for vserver */
|
||||
#define __NR_statfs64 265
|
||||
#define __NR_fstatfs64 266
|
||||
#define __NR_remap_file_pages 267
|
||||
/* Number 268 is reserved for new sys_mbind */
|
||||
/* Number 269 is reserved for new sys_get_mempolicy */
|
||||
/* Number 270 is reserved for new sys_set_mempolicy */
|
||||
#define __NR_mq_open 271
|
||||
#define __NR_mq_unlink 272
|
||||
#define __NR_mq_timedsend 273
|
||||
#define __NR_mq_timedreceive 274
|
||||
#define __NR_mq_notify 275
|
||||
#define __NR_mq_getsetattr 276
|
||||
#define __NR_kexec_load 277
|
||||
#define __NR_add_key 278
|
||||
#define __NR_request_key 279
|
||||
#define __NR_keyctl 280
|
||||
#define __NR_waitid 281
|
||||
#define __NR_ioprio_set 282
|
||||
#define __NR_ioprio_get 283
|
||||
#define __NR_inotify_init 284
|
||||
#define __NR_inotify_add_watch 285
|
||||
#define __NR_inotify_rm_watch 286
|
||||
/* Number 287 is reserved for new sys_migrate_pages */
|
||||
#define __NR_openat 288
|
||||
#define __NR_mkdirat 289
|
||||
#define __NR_mknodat 290
|
||||
#define __NR_fchownat 291
|
||||
#define __NR_futimesat 292
|
||||
#define __NR_unlinkat 294
|
||||
#define __NR_renameat 295
|
||||
#define __NR_linkat 296
|
||||
#define __NR_symlinkat 297
|
||||
#define __NR_readlinkat 298
|
||||
#define __NR_fchmodat 299
|
||||
#define __NR_faccessat 300
|
||||
#define __NR_pselect6 301
|
||||
#define __NR_ppoll 302
|
||||
#define __NR_unshare 303
|
||||
#define __NR_set_robust_list 304
|
||||
#define __NR_get_robust_list 305
|
||||
#define __NR_splice 306
|
||||
#define __NR_sync_file_range 307
|
||||
#define __NR_tee 308
|
||||
#define __NR_vmsplice 309
|
||||
/* Number 310 is reserved for new sys_move_pages */
|
||||
#define __NR_getcpu 311
|
||||
#define __NR_epoll_pwait 312
|
||||
#define __NR_utimes 313
|
||||
#define __NR_fallocate 314
|
||||
#define __NR_utimensat 315
|
||||
#define __NR_signalfd 316
|
||||
#define __NR_timerfd 317
|
||||
#define __NR_eventfd 318
|
||||
#define __NR_timerfd_create 319
|
||||
#define __NR_timerfd_settime 320
|
||||
#define __NR_timerfd_gettime 321
|
||||
#define __NR_signalfd4 322
|
||||
#define __NR_eventfd2 323
|
||||
#define __NR_inotify_init1 324
|
||||
#define __NR_pipe2 325
|
||||
#define __NR_dup3 326
|
||||
#define __NR_epoll_create1 327
|
||||
#define __NR_preadv 328
|
||||
#define __NR_pwritev 329
|
||||
#define __NR_rt_tgsigqueueinfo 330
|
||||
#define __NR_perf_event_open 331
|
||||
#define __NR_fanotify_init 332
|
||||
#define __NR_fanotify_mark 333
|
||||
#define __NR_prlimit64 334
|
||||
#define __NR_name_to_handle_at 335
|
||||
#define __NR_open_by_handle_at 336
|
||||
#define __NR_clock_adjtime 337
|
||||
#define __NR_syncfs 338
|
||||
#define __NR_setns 339
|
||||
#define __NR_process_vm_readv 340
|
||||
#define __NR_process_vm_writev 341
|
||||
#define __NR_s390_runtime_instr 342
|
||||
#define __NR_kcmp 343
|
||||
#define NR_syscalls 344
|
||||
|
||||
/*
|
||||
* There are some system calls that are not present on 64 bit, some
|
||||
* have a different name although they do the same (e.g. __NR_chown32
|
||||
* is __NR_chown on 64 bit).
|
||||
*/
|
||||
#ifndef __s390x__
|
||||
|
||||
#define __NR_time 13
|
||||
#define __NR_lchown 16
|
||||
#define __NR_setuid 23
|
||||
#define __NR_getuid 24
|
||||
#define __NR_stime 25
|
||||
#define __NR_setgid 46
|
||||
#define __NR_getgid 47
|
||||
#define __NR_geteuid 49
|
||||
#define __NR_getegid 50
|
||||
#define __NR_setreuid 70
|
||||
#define __NR_setregid 71
|
||||
#define __NR_getrlimit 76
|
||||
#define __NR_getgroups 80
|
||||
#define __NR_setgroups 81
|
||||
#define __NR_fchown 95
|
||||
#define __NR_ioperm 101
|
||||
#define __NR_setfsuid 138
|
||||
#define __NR_setfsgid 139
|
||||
#define __NR__llseek 140
|
||||
#define __NR__newselect 142
|
||||
#define __NR_setresuid 164
|
||||
#define __NR_getresuid 165
|
||||
#define __NR_setresgid 170
|
||||
#define __NR_getresgid 171
|
||||
#define __NR_chown 182
|
||||
#define __NR_ugetrlimit 191 /* SuS compliant getrlimit */
|
||||
#define __NR_mmap2 192
|
||||
#define __NR_truncate64 193
|
||||
#define __NR_ftruncate64 194
|
||||
#define __NR_stat64 195
|
||||
#define __NR_lstat64 196
|
||||
#define __NR_fstat64 197
|
||||
#define __NR_lchown32 198
|
||||
#define __NR_getuid32 199
|
||||
#define __NR_getgid32 200
|
||||
#define __NR_geteuid32 201
|
||||
#define __NR_getegid32 202
|
||||
#define __NR_setreuid32 203
|
||||
#define __NR_setregid32 204
|
||||
#define __NR_getgroups32 205
|
||||
#define __NR_setgroups32 206
|
||||
#define __NR_fchown32 207
|
||||
#define __NR_setresuid32 208
|
||||
#define __NR_getresuid32 209
|
||||
#define __NR_setresgid32 210
|
||||
#define __NR_getresgid32 211
|
||||
#define __NR_chown32 212
|
||||
#define __NR_setuid32 213
|
||||
#define __NR_setgid32 214
|
||||
#define __NR_setfsuid32 215
|
||||
#define __NR_setfsgid32 216
|
||||
#define __NR_fcntl64 221
|
||||
#define __NR_sendfile64 223
|
||||
#define __NR_fadvise64_64 264
|
||||
#define __NR_fstatat64 293
|
||||
|
||||
#else
|
||||
|
||||
#define __NR_select 142
|
||||
#define __NR_getrlimit 191 /* SuS compliant getrlimit */
|
||||
#define __NR_lchown 198
|
||||
#define __NR_getuid 199
|
||||
#define __NR_getgid 200
|
||||
#define __NR_geteuid 201
|
||||
#define __NR_getegid 202
|
||||
#define __NR_setreuid 203
|
||||
#define __NR_setregid 204
|
||||
#define __NR_getgroups 205
|
||||
#define __NR_setgroups 206
|
||||
#define __NR_fchown 207
|
||||
#define __NR_setresuid 208
|
||||
#define __NR_getresuid 209
|
||||
#define __NR_setresgid 210
|
||||
#define __NR_getresgid 211
|
||||
#define __NR_chown 212
|
||||
#define __NR_setuid 213
|
||||
#define __NR_setgid 214
|
||||
#define __NR_setfsuid 215
|
||||
#define __NR_setfsgid 216
|
||||
#define __NR_newfstatat 293
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _UAPI_ASM_S390_UNISTD_H_ */
|
213
arch/s390/include/uapi/asm/vtoc.h
Normal file
213
arch/s390/include/uapi/asm/vtoc.h
Normal file
@@ -0,0 +1,213 @@
|
||||
/*
|
||||
* This file contains volume label definitions for DASD devices.
|
||||
*
|
||||
* Copyright IBM Corp. 2005
|
||||
*
|
||||
* Author(s): Volker Sameske <sameske@de.ibm.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _ASM_S390_VTOC_H
|
||||
#define _ASM_S390_VTOC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct vtoc_ttr
|
||||
{
|
||||
__u16 tt;
|
||||
__u8 r;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_cchhb
|
||||
{
|
||||
__u16 cc;
|
||||
__u16 hh;
|
||||
__u8 b;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_cchh
|
||||
{
|
||||
__u16 cc;
|
||||
__u16 hh;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_labeldate
|
||||
{
|
||||
__u8 year;
|
||||
__u16 day;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_volume_label_cdl
|
||||
{
|
||||
char volkey[4]; /* volume key = volume label */
|
||||
char vollbl[4]; /* volume label */
|
||||
char volid[6]; /* volume identifier */
|
||||
__u8 security; /* security byte */
|
||||
struct vtoc_cchhb vtoc; /* VTOC address */
|
||||
char res1[5]; /* reserved */
|
||||
char cisize[4]; /* CI-size for FBA,... */
|
||||
/* ...blanks for CKD */
|
||||
char blkperci[4]; /* no of blocks per CI (FBA), blanks for CKD */
|
||||
char labperci[4]; /* no of labels per CI (FBA), blanks for CKD */
|
||||
char res2[4]; /* reserved */
|
||||
char lvtoc[14]; /* owner code for LVTOC */
|
||||
char res3[29]; /* reserved */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_volume_label_ldl {
|
||||
char vollbl[4]; /* volume label */
|
||||
char volid[6]; /* volume identifier */
|
||||
char res3[69]; /* reserved */
|
||||
char ldl_version; /* version number, valid for ldl format */
|
||||
__u64 formatted_blocks; /* valid when ldl_version >= f2 */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_extent
|
||||
{
|
||||
__u8 typeind; /* extent type indicator */
|
||||
__u8 seqno; /* extent sequence number */
|
||||
struct vtoc_cchh llimit; /* starting point of this extent */
|
||||
struct vtoc_cchh ulimit; /* ending point of this extent */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_dev_const
|
||||
{
|
||||
__u16 DS4DSCYL; /* number of logical cyls */
|
||||
__u16 DS4DSTRK; /* number of tracks in a logical cylinder */
|
||||
__u16 DS4DEVTK; /* device track length */
|
||||
__u8 DS4DEVI; /* non-last keyed record overhead */
|
||||
__u8 DS4DEVL; /* last keyed record overhead */
|
||||
__u8 DS4DEVK; /* non-keyed record overhead differential */
|
||||
__u8 DS4DEVFG; /* flag byte */
|
||||
__u16 DS4DEVTL; /* device tolerance */
|
||||
__u8 DS4DEVDT; /* number of DSCB's per track */
|
||||
__u8 DS4DEVDB; /* number of directory blocks per track */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_format1_label
|
||||
{
|
||||
char DS1DSNAM[44]; /* data set name */
|
||||
__u8 DS1FMTID; /* format identifier */
|
||||
char DS1DSSN[6]; /* data set serial number */
|
||||
__u16 DS1VOLSQ; /* volume sequence number */
|
||||
struct vtoc_labeldate DS1CREDT; /* creation date: ydd */
|
||||
struct vtoc_labeldate DS1EXPDT; /* expiration date */
|
||||
__u8 DS1NOEPV; /* number of extents on volume */
|
||||
__u8 DS1NOBDB; /* no. of bytes used in last direction blk */
|
||||
__u8 DS1FLAG1; /* flag 1 */
|
||||
char DS1SYSCD[13]; /* system code */
|
||||
struct vtoc_labeldate DS1REFD; /* date last referenced */
|
||||
__u8 DS1SMSFG; /* system managed storage indicators */
|
||||
__u8 DS1SCXTF; /* sec. space extension flag byte */
|
||||
__u16 DS1SCXTV; /* secondary space extension value */
|
||||
__u8 DS1DSRG1; /* data set organisation byte 1 */
|
||||
__u8 DS1DSRG2; /* data set organisation byte 2 */
|
||||
__u8 DS1RECFM; /* record format */
|
||||
__u8 DS1OPTCD; /* option code */
|
||||
__u16 DS1BLKL; /* block length */
|
||||
__u16 DS1LRECL; /* record length */
|
||||
__u8 DS1KEYL; /* key length */
|
||||
__u16 DS1RKP; /* relative key position */
|
||||
__u8 DS1DSIND; /* data set indicators */
|
||||
__u8 DS1SCAL1; /* secondary allocation flag byte */
|
||||
char DS1SCAL3[3]; /* secondary allocation quantity */
|
||||
struct vtoc_ttr DS1LSTAR; /* last used track and block on track */
|
||||
__u16 DS1TRBAL; /* space remaining on last used track */
|
||||
__u16 res1; /* reserved */
|
||||
struct vtoc_extent DS1EXT1; /* first extent description */
|
||||
struct vtoc_extent DS1EXT2; /* second extent description */
|
||||
struct vtoc_extent DS1EXT3; /* third extent description */
|
||||
struct vtoc_cchhb DS1PTRDS; /* possible pointer to f2 or f3 DSCB */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_format4_label
|
||||
{
|
||||
char DS4KEYCD[44]; /* key code for VTOC labels: 44 times 0x04 */
|
||||
__u8 DS4IDFMT; /* format identifier */
|
||||
struct vtoc_cchhb DS4HPCHR; /* highest address of a format 1 DSCB */
|
||||
__u16 DS4DSREC; /* number of available DSCB's */
|
||||
struct vtoc_cchh DS4HCCHH; /* CCHH of next available alternate track */
|
||||
__u16 DS4NOATK; /* number of remaining alternate tracks */
|
||||
__u8 DS4VTOCI; /* VTOC indicators */
|
||||
__u8 DS4NOEXT; /* number of extents in VTOC */
|
||||
__u8 DS4SMSFG; /* system managed storage indicators */
|
||||
__u8 DS4DEVAC; /* number of alternate cylinders.
|
||||
* Subtract from first two bytes of
|
||||
* DS4DEVSZ to get number of usable
|
||||
* cylinders. can be zero. valid
|
||||
* only if DS4DEVAV on. */
|
||||
struct vtoc_dev_const DS4DEVCT; /* device constants */
|
||||
char DS4AMTIM[8]; /* VSAM time stamp */
|
||||
char DS4AMCAT[3]; /* VSAM catalog indicator */
|
||||
char DS4R2TIM[8]; /* VSAM volume/catalog match time stamp */
|
||||
char res1[5]; /* reserved */
|
||||
char DS4F6PTR[5]; /* pointer to first format 6 DSCB */
|
||||
struct vtoc_extent DS4VTOCE; /* VTOC extent description */
|
||||
char res2[10]; /* reserved */
|
||||
__u8 DS4EFLVL; /* extended free-space management level */
|
||||
struct vtoc_cchhb DS4EFPTR; /* pointer to extended free-space info */
|
||||
char res3; /* reserved */
|
||||
__u32 DS4DCYL; /* number of logical cyls */
|
||||
char res4[2]; /* reserved */
|
||||
__u8 DS4DEVF2; /* device flags */
|
||||
char res5; /* reserved */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_ds5ext
|
||||
{
|
||||
__u16 t; /* RTA of the first track of free extent */
|
||||
__u16 fc; /* number of whole cylinders in free ext. */
|
||||
__u8 ft; /* number of remaining free tracks */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_format5_label
|
||||
{
|
||||
char DS5KEYID[4]; /* key identifier */
|
||||
struct vtoc_ds5ext DS5AVEXT; /* first available (free-space) extent. */
|
||||
struct vtoc_ds5ext DS5EXTAV[7]; /* seven available extents */
|
||||
__u8 DS5FMTID; /* format identifier */
|
||||
struct vtoc_ds5ext DS5MAVET[18]; /* eighteen available extents */
|
||||
struct vtoc_cchhb DS5PTRDS; /* pointer to next format5 DSCB */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_ds7ext
|
||||
{
|
||||
__u32 a; /* starting RTA value */
|
||||
__u32 b; /* ending RTA value + 1 */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_format7_label
|
||||
{
|
||||
char DS7KEYID[4]; /* key identifier */
|
||||
struct vtoc_ds7ext DS7EXTNT[5]; /* space for 5 extent descriptions */
|
||||
__u8 DS7FMTID; /* format identifier */
|
||||
struct vtoc_ds7ext DS7ADEXT[11]; /* space for 11 extent descriptions */
|
||||
char res1[2]; /* reserved */
|
||||
struct vtoc_cchhb DS7PTRDS; /* pointer to next FMT7 DSCB */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct vtoc_cms_label {
|
||||
__u8 label_id[4]; /* Label identifier */
|
||||
__u8 vol_id[6]; /* Volid */
|
||||
__u16 version_id; /* Version identifier */
|
||||
__u32 block_size; /* Disk block size */
|
||||
__u32 origin_ptr; /* Disk origin pointer */
|
||||
__u32 usable_count; /* Number of usable cylinders/blocks */
|
||||
__u32 formatted_count; /* Maximum number of formatted cylinders/
|
||||
* blocks */
|
||||
__u32 block_count; /* Disk size in CMS blocks */
|
||||
__u32 used_count; /* Number of CMS blocks in use */
|
||||
__u32 fst_size; /* File Status Table (FST) size */
|
||||
__u32 fst_count; /* Number of FSTs per CMS block */
|
||||
__u8 format_date[6]; /* Disk FORMAT date */
|
||||
__u8 reserved1[2];
|
||||
__u32 disk_offset; /* Disk offset when reserved*/
|
||||
__u32 map_block; /* Allocation Map Block with next hole */
|
||||
__u32 hblk_disp; /* Displacement into HBLK data of next hole */
|
||||
__u32 user_disp; /* Displacement into user part of Allocation
|
||||
* map */
|
||||
__u8 reserved2[4];
|
||||
__u8 segment_name[8]; /* Name of shared segment */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#endif /* _ASM_S390_VTOC_H */
|
276
arch/s390/include/uapi/asm/zcrypt.h
Normal file
276
arch/s390/include/uapi/asm/zcrypt.h
Normal file
@@ -0,0 +1,276 @@
|
||||
/*
|
||||
* include/asm-s390/zcrypt.h
|
||||
*
|
||||
* zcrypt 2.1.0 (user-visible header)
|
||||
*
|
||||
* Copyright IBM Corp. 2001, 2006
|
||||
* Author(s): Robert Burroughs
|
||||
* Eric Rossman (edrossma@us.ibm.com)
|
||||
*
|
||||
* Hotplug & misc device support: Jochen Roehrig (roehrig@de.ibm.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_S390_ZCRYPT_H
|
||||
#define __ASM_S390_ZCRYPT_H
|
||||
|
||||
#define ZCRYPT_VERSION 2
|
||||
#define ZCRYPT_RELEASE 1
|
||||
#define ZCRYPT_VARIANT 1
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
/**
|
||||
* struct ica_rsa_modexpo
|
||||
*
|
||||
* Requirements:
|
||||
* - outputdatalength is at least as large as inputdatalength.
|
||||
* - All key parts are right justified in their fields, padded on
|
||||
* the left with zeroes.
|
||||
* - length(b_key) = inputdatalength
|
||||
* - length(n_modulus) = inputdatalength
|
||||
*/
|
||||
struct ica_rsa_modexpo {
|
||||
char __user * inputdata;
|
||||
unsigned int inputdatalength;
|
||||
char __user * outputdata;
|
||||
unsigned int outputdatalength;
|
||||
char __user * b_key;
|
||||
char __user * n_modulus;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ica_rsa_modexpo_crt
|
||||
*
|
||||
* Requirements:
|
||||
* - inputdatalength is even.
|
||||
* - outputdatalength is at least as large as inputdatalength.
|
||||
* - All key parts are right justified in their fields, padded on
|
||||
* the left with zeroes.
|
||||
* - length(bp_key) = inputdatalength/2 + 8
|
||||
* - length(bq_key) = inputdatalength/2
|
||||
* - length(np_key) = inputdatalength/2 + 8
|
||||
* - length(nq_key) = inputdatalength/2
|
||||
* - length(u_mult_inv) = inputdatalength/2 + 8
|
||||
*/
|
||||
struct ica_rsa_modexpo_crt {
|
||||
char __user * inputdata;
|
||||
unsigned int inputdatalength;
|
||||
char __user * outputdata;
|
||||
unsigned int outputdatalength;
|
||||
char __user * bp_key;
|
||||
char __user * bq_key;
|
||||
char __user * np_prime;
|
||||
char __user * nq_prime;
|
||||
char __user * u_mult_inv;
|
||||
};
|
||||
|
||||
/**
|
||||
* CPRBX
|
||||
* Note that all shorts and ints are big-endian.
|
||||
* All pointer fields are 16 bytes long, and mean nothing.
|
||||
*
|
||||
* A request CPRB is followed by a request_parameter_block.
|
||||
*
|
||||
* The request (or reply) parameter block is organized thus:
|
||||
* function code
|
||||
* VUD block
|
||||
* key block
|
||||
*/
|
||||
struct CPRBX {
|
||||
unsigned short cprb_len; /* CPRB length 220 */
|
||||
unsigned char cprb_ver_id; /* CPRB version id. 0x02 */
|
||||
unsigned char pad_000[3]; /* Alignment pad bytes */
|
||||
unsigned char func_id[2]; /* function id 0x5432 */
|
||||
unsigned char cprb_flags[4]; /* Flags */
|
||||
unsigned int req_parml; /* request parameter buffer len */
|
||||
unsigned int req_datal; /* request data buffer */
|
||||
unsigned int rpl_msgbl; /* reply message block length */
|
||||
unsigned int rpld_parml; /* replied parameter block len */
|
||||
unsigned int rpl_datal; /* reply data block len */
|
||||
unsigned int rpld_datal; /* replied data block len */
|
||||
unsigned int req_extbl; /* request extension block len */
|
||||
unsigned char pad_001[4]; /* reserved */
|
||||
unsigned int rpld_extbl; /* replied extension block len */
|
||||
unsigned char padx000[16 - sizeof (char *)];
|
||||
unsigned char * req_parmb; /* request parm block 'address' */
|
||||
unsigned char padx001[16 - sizeof (char *)];
|
||||
unsigned char * req_datab; /* request data block 'address' */
|
||||
unsigned char padx002[16 - sizeof (char *)];
|
||||
unsigned char * rpl_parmb; /* reply parm block 'address' */
|
||||
unsigned char padx003[16 - sizeof (char *)];
|
||||
unsigned char * rpl_datab; /* reply data block 'address' */
|
||||
unsigned char padx004[16 - sizeof (char *)];
|
||||
unsigned char * req_extb; /* request extension block 'addr'*/
|
||||
unsigned char padx005[16 - sizeof (char *)];
|
||||
unsigned char * rpl_extb; /* reply extension block 'address'*/
|
||||
unsigned short ccp_rtcode; /* server return code */
|
||||
unsigned short ccp_rscode; /* server reason code */
|
||||
unsigned int mac_data_len; /* Mac Data Length */
|
||||
unsigned char logon_id[8]; /* Logon Identifier */
|
||||
unsigned char mac_value[8]; /* Mac Value */
|
||||
unsigned char mac_content_flgs;/* Mac content flag byte */
|
||||
unsigned char pad_002; /* Alignment */
|
||||
unsigned short domain; /* Domain */
|
||||
unsigned char usage_domain[4];/* Usage domain */
|
||||
unsigned char cntrl_domain[4];/* Control domain */
|
||||
unsigned char S390enf_mask[4];/* S/390 enforcement mask */
|
||||
unsigned char pad_004[36]; /* reserved */
|
||||
} __attribute__((packed));
|
||||
|
||||
/**
|
||||
* xcRB
|
||||
*/
|
||||
struct ica_xcRB {
|
||||
unsigned short agent_ID;
|
||||
unsigned int user_defined;
|
||||
unsigned short request_ID;
|
||||
unsigned int request_control_blk_length;
|
||||
unsigned char padding1[16 - sizeof (char *)];
|
||||
char __user * request_control_blk_addr;
|
||||
unsigned int request_data_length;
|
||||
char padding2[16 - sizeof (char *)];
|
||||
char __user * request_data_address;
|
||||
unsigned int reply_control_blk_length;
|
||||
char padding3[16 - sizeof (char *)];
|
||||
char __user * reply_control_blk_addr;
|
||||
unsigned int reply_data_length;
|
||||
char padding4[16 - sizeof (char *)];
|
||||
char __user * reply_data_addr;
|
||||
unsigned short priority_window;
|
||||
unsigned int status;
|
||||
} __attribute__((packed));
|
||||
#define AUTOSELECT ((unsigned int)0xFFFFFFFF)
|
||||
|
||||
#define ZCRYPT_IOCTL_MAGIC 'z'
|
||||
|
||||
/**
|
||||
* Interface notes:
|
||||
*
|
||||
* The ioctl()s which are implemented (along with relevant details)
|
||||
* are:
|
||||
*
|
||||
* ICARSAMODEXPO
|
||||
* Perform an RSA operation using a Modulus-Exponent pair
|
||||
* This takes an ica_rsa_modexpo struct as its arg.
|
||||
*
|
||||
* NOTE: please refer to the comments preceding this structure
|
||||
* for the implementation details for the contents of the
|
||||
* block
|
||||
*
|
||||
* ICARSACRT
|
||||
* Perform an RSA operation using a Chinese-Remainder Theorem key
|
||||
* This takes an ica_rsa_modexpo_crt struct as its arg.
|
||||
*
|
||||
* NOTE: please refer to the comments preceding this structure
|
||||
* for the implementation details for the contents of the
|
||||
* block
|
||||
*
|
||||
* ZSECSENDCPRB
|
||||
* Send an arbitrary CPRB to a crypto card.
|
||||
*
|
||||
* Z90STAT_STATUS_MASK
|
||||
* Return an 64 element array of unsigned chars for the status of
|
||||
* all devices.
|
||||
* 0x01: PCICA
|
||||
* 0x02: PCICC
|
||||
* 0x03: PCIXCC_MCL2
|
||||
* 0x04: PCIXCC_MCL3
|
||||
* 0x05: CEX2C
|
||||
* 0x06: CEX2A
|
||||
* 0x0d: device is disabled via the proc filesystem
|
||||
*
|
||||
* Z90STAT_QDEPTH_MASK
|
||||
* Return an 64 element array of unsigned chars for the queue
|
||||
* depth of all devices.
|
||||
*
|
||||
* Z90STAT_PERDEV_REQCNT
|
||||
* Return an 64 element array of unsigned integers for the number
|
||||
* of successfully completed requests per device since the device
|
||||
* was detected and made available.
|
||||
*
|
||||
* Z90STAT_REQUESTQ_COUNT
|
||||
* Return an integer count of the number of entries waiting to be
|
||||
* sent to a device.
|
||||
*
|
||||
* Z90STAT_PENDINGQ_COUNT
|
||||
* Return an integer count of the number of entries sent to all
|
||||
* devices awaiting the reply.
|
||||
*
|
||||
* Z90STAT_TOTALOPEN_COUNT
|
||||
* Return an integer count of the number of open file handles.
|
||||
*
|
||||
* Z90STAT_DOMAIN_INDEX
|
||||
* Return the integer value of the Cryptographic Domain.
|
||||
*
|
||||
* The following ioctls are deprecated and should be no longer used:
|
||||
*
|
||||
* Z90STAT_TOTALCOUNT
|
||||
* Return an integer count of all device types together.
|
||||
*
|
||||
* Z90STAT_PCICACOUNT
|
||||
* Return an integer count of all PCICAs.
|
||||
*
|
||||
* Z90STAT_PCICCCOUNT
|
||||
* Return an integer count of all PCICCs.
|
||||
*
|
||||
* Z90STAT_PCIXCCMCL2COUNT
|
||||
* Return an integer count of all MCL2 PCIXCCs.
|
||||
*
|
||||
* Z90STAT_PCIXCCMCL3COUNT
|
||||
* Return an integer count of all MCL3 PCIXCCs.
|
||||
*
|
||||
* Z90STAT_CEX2CCOUNT
|
||||
* Return an integer count of all CEX2Cs.
|
||||
*
|
||||
* Z90STAT_CEX2ACOUNT
|
||||
* Return an integer count of all CEX2As.
|
||||
*
|
||||
* ICAZ90STATUS
|
||||
* Return some device driver status in a ica_z90_status struct
|
||||
* This takes an ica_z90_status struct as its arg.
|
||||
*
|
||||
* Z90STAT_PCIXCCCOUNT
|
||||
* Return an integer count of all PCIXCCs (MCL2 + MCL3).
|
||||
* This is DEPRECATED now that MCL3 PCIXCCs are treated differently from
|
||||
* MCL2 PCIXCCs.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Supported ioctl calls
|
||||
*/
|
||||
#define ICARSAMODEXPO _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x05, 0)
|
||||
#define ICARSACRT _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x06, 0)
|
||||
#define ZSECSENDCPRB _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x81, 0)
|
||||
|
||||
/* New status calls */
|
||||
#define Z90STAT_TOTALCOUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x40, int)
|
||||
#define Z90STAT_PCICACOUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x41, int)
|
||||
#define Z90STAT_PCICCCOUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x42, int)
|
||||
#define Z90STAT_PCIXCCMCL2COUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x4b, int)
|
||||
#define Z90STAT_PCIXCCMCL3COUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x4c, int)
|
||||
#define Z90STAT_CEX2CCOUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x4d, int)
|
||||
#define Z90STAT_CEX2ACOUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x4e, int)
|
||||
#define Z90STAT_REQUESTQ_COUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x44, int)
|
||||
#define Z90STAT_PENDINGQ_COUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x45, int)
|
||||
#define Z90STAT_TOTALOPEN_COUNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x46, int)
|
||||
#define Z90STAT_DOMAIN_INDEX _IOR(ZCRYPT_IOCTL_MAGIC, 0x47, int)
|
||||
#define Z90STAT_STATUS_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x48, char[64])
|
||||
#define Z90STAT_QDEPTH_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x49, char[64])
|
||||
#define Z90STAT_PERDEV_REQCNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x4a, int[64])
|
||||
|
||||
#endif /* __ASM_S390_ZCRYPT_H */
|
Reference in New Issue
Block a user