18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> 48c2ecf20Sopenharmony_ci * Bugreports.to..: <Linux390@de.ibm.com> 58c2ecf20Sopenharmony_ci * Copyright IBM Corp. 1999, 2000 68c2ecf20Sopenharmony_ci * EMC Symmetrix ioctl Copyright EMC Corporation, 2008 78c2ecf20Sopenharmony_ci * Author.........: Nigel Hislop <hislop_nigel@emc.com> 88c2ecf20Sopenharmony_ci * 98c2ecf20Sopenharmony_ci * This file is the interface of the DASD device driver, which is exported to user space 108c2ecf20Sopenharmony_ci * any future changes wrt the API will result in a change of the APIVERSION reported 118c2ecf20Sopenharmony_ci * to userspace by the DASDAPIVER-ioctl 128c2ecf20Sopenharmony_ci * 138c2ecf20Sopenharmony_ci */ 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#ifndef DASD_H 168c2ecf20Sopenharmony_ci#define DASD_H 178c2ecf20Sopenharmony_ci#include <linux/types.h> 188c2ecf20Sopenharmony_ci#include <linux/ioctl.h> 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#define DASD_IOCTL_LETTER 'D' 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci#define DASD_API_VERSION 6 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci/* 258c2ecf20Sopenharmony_ci * struct dasd_information2_t 268c2ecf20Sopenharmony_ci * represents any data about the device, which is visible to userspace. 278c2ecf20Sopenharmony_ci * including foramt and featueres. 288c2ecf20Sopenharmony_ci */ 298c2ecf20Sopenharmony_citypedef struct dasd_information2_t { 308c2ecf20Sopenharmony_ci unsigned int devno; /* S/390 devno */ 318c2ecf20Sopenharmony_ci unsigned int real_devno; /* for aliases */ 328c2ecf20Sopenharmony_ci unsigned int schid; /* S/390 subchannel identifier */ 338c2ecf20Sopenharmony_ci unsigned int cu_type : 16; /* from SenseID */ 348c2ecf20Sopenharmony_ci unsigned int cu_model : 8; /* from SenseID */ 358c2ecf20Sopenharmony_ci unsigned int dev_type : 16; /* from SenseID */ 368c2ecf20Sopenharmony_ci unsigned int dev_model : 8; /* from SenseID */ 378c2ecf20Sopenharmony_ci unsigned int open_count; 388c2ecf20Sopenharmony_ci unsigned int req_queue_len; 398c2ecf20Sopenharmony_ci unsigned int chanq_len; /* length of chanq */ 408c2ecf20Sopenharmony_ci char type[4]; /* from discipline.name, 'none' for unknown */ 418c2ecf20Sopenharmony_ci unsigned int status; /* current device level */ 428c2ecf20Sopenharmony_ci unsigned int label_block; /* where to find the VOLSER */ 438c2ecf20Sopenharmony_ci unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ 448c2ecf20Sopenharmony_ci unsigned int characteristics_size; 458c2ecf20Sopenharmony_ci unsigned int confdata_size; 468c2ecf20Sopenharmony_ci char characteristics[64]; /* from read_device_characteristics */ 478c2ecf20Sopenharmony_ci char configuration_data[256]; /* from read_configuration_data */ 488c2ecf20Sopenharmony_ci unsigned int format; /* format info like formatted/cdl/ldl/... */ 498c2ecf20Sopenharmony_ci unsigned int features; /* dasd features like 'ro',... */ 508c2ecf20Sopenharmony_ci unsigned int reserved0; /* reserved for further use ,... */ 518c2ecf20Sopenharmony_ci unsigned int reserved1; /* reserved for further use ,... */ 528c2ecf20Sopenharmony_ci unsigned int reserved2; /* reserved for further use ,... */ 538c2ecf20Sopenharmony_ci unsigned int reserved3; /* reserved for further use ,... */ 548c2ecf20Sopenharmony_ci unsigned int reserved4; /* reserved for further use ,... */ 558c2ecf20Sopenharmony_ci unsigned int reserved5; /* reserved for further use ,... */ 568c2ecf20Sopenharmony_ci unsigned int reserved6; /* reserved for further use ,... */ 578c2ecf20Sopenharmony_ci unsigned int reserved7; /* reserved for further use ,... */ 588c2ecf20Sopenharmony_ci} dasd_information2_t; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci/* 618c2ecf20Sopenharmony_ci * values to be used for dasd_information_t.format 628c2ecf20Sopenharmony_ci * 0x00: NOT formatted 638c2ecf20Sopenharmony_ci * 0x01: Linux disc layout 648c2ecf20Sopenharmony_ci * 0x02: Common disc layout 658c2ecf20Sopenharmony_ci */ 668c2ecf20Sopenharmony_ci#define DASD_FORMAT_NONE 0 678c2ecf20Sopenharmony_ci#define DASD_FORMAT_LDL 1 688c2ecf20Sopenharmony_ci#define DASD_FORMAT_CDL 2 698c2ecf20Sopenharmony_ci/* 708c2ecf20Sopenharmony_ci * values to be used for dasd_information_t.features 718c2ecf20Sopenharmony_ci * 0x100: default features 728c2ecf20Sopenharmony_ci * 0x001: readonly (ro) 738c2ecf20Sopenharmony_ci * 0x002: use diag discipline (diag) 748c2ecf20Sopenharmony_ci * 0x004: set the device initially online (internal use only) 758c2ecf20Sopenharmony_ci * 0x008: enable ERP related logging 768c2ecf20Sopenharmony_ci * 0x010: allow I/O to fail on lost paths 778c2ecf20Sopenharmony_ci * 0x020: allow I/O to fail when a lock was stolen 788c2ecf20Sopenharmony_ci * 0x040: give access to raw eckd data 798c2ecf20Sopenharmony_ci * 0x080: enable discard support 808c2ecf20Sopenharmony_ci * 0x100: enable autodisable for IFCC errors (default) 818c2ecf20Sopenharmony_ci */ 828c2ecf20Sopenharmony_ci#define DASD_FEATURE_READONLY 0x001 838c2ecf20Sopenharmony_ci#define DASD_FEATURE_USEDIAG 0x002 848c2ecf20Sopenharmony_ci#define DASD_FEATURE_INITIAL_ONLINE 0x004 858c2ecf20Sopenharmony_ci#define DASD_FEATURE_ERPLOG 0x008 868c2ecf20Sopenharmony_ci#define DASD_FEATURE_FAILFAST 0x010 878c2ecf20Sopenharmony_ci#define DASD_FEATURE_FAILONSLCK 0x020 888c2ecf20Sopenharmony_ci#define DASD_FEATURE_USERAW 0x040 898c2ecf20Sopenharmony_ci#define DASD_FEATURE_DISCARD 0x080 908c2ecf20Sopenharmony_ci#define DASD_FEATURE_PATH_AUTODISABLE 0x100 918c2ecf20Sopenharmony_ci#define DASD_FEATURE_DEFAULT DASD_FEATURE_PATH_AUTODISABLE 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci#define DASD_PARTN_BITS 2 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci/* 968c2ecf20Sopenharmony_ci * struct dasd_information_t 978c2ecf20Sopenharmony_ci * represents any data about the data, which is visible to userspace 988c2ecf20Sopenharmony_ci */ 998c2ecf20Sopenharmony_citypedef struct dasd_information_t { 1008c2ecf20Sopenharmony_ci unsigned int devno; /* S/390 devno */ 1018c2ecf20Sopenharmony_ci unsigned int real_devno; /* for aliases */ 1028c2ecf20Sopenharmony_ci unsigned int schid; /* S/390 subchannel identifier */ 1038c2ecf20Sopenharmony_ci unsigned int cu_type : 16; /* from SenseID */ 1048c2ecf20Sopenharmony_ci unsigned int cu_model : 8; /* from SenseID */ 1058c2ecf20Sopenharmony_ci unsigned int dev_type : 16; /* from SenseID */ 1068c2ecf20Sopenharmony_ci unsigned int dev_model : 8; /* from SenseID */ 1078c2ecf20Sopenharmony_ci unsigned int open_count; 1088c2ecf20Sopenharmony_ci unsigned int req_queue_len; 1098c2ecf20Sopenharmony_ci unsigned int chanq_len; /* length of chanq */ 1108c2ecf20Sopenharmony_ci char type[4]; /* from discipline.name, 'none' for unknown */ 1118c2ecf20Sopenharmony_ci unsigned int status; /* current device level */ 1128c2ecf20Sopenharmony_ci unsigned int label_block; /* where to find the VOLSER */ 1138c2ecf20Sopenharmony_ci unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ 1148c2ecf20Sopenharmony_ci unsigned int characteristics_size; 1158c2ecf20Sopenharmony_ci unsigned int confdata_size; 1168c2ecf20Sopenharmony_ci char characteristics[64]; /* from read_device_characteristics */ 1178c2ecf20Sopenharmony_ci char configuration_data[256]; /* from read_configuration_data */ 1188c2ecf20Sopenharmony_ci} dasd_information_t; 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci/* 1218c2ecf20Sopenharmony_ci * Read Subsystem Data - Performance Statistics 1228c2ecf20Sopenharmony_ci */ 1238c2ecf20Sopenharmony_citypedef struct dasd_rssd_perf_stats_t { 1248c2ecf20Sopenharmony_ci unsigned char invalid:1; 1258c2ecf20Sopenharmony_ci unsigned char format:3; 1268c2ecf20Sopenharmony_ci unsigned char data_format:4; 1278c2ecf20Sopenharmony_ci unsigned char unit_address; 1288c2ecf20Sopenharmony_ci unsigned short device_status; 1298c2ecf20Sopenharmony_ci unsigned int nr_read_normal; 1308c2ecf20Sopenharmony_ci unsigned int nr_read_normal_hits; 1318c2ecf20Sopenharmony_ci unsigned int nr_write_normal; 1328c2ecf20Sopenharmony_ci unsigned int nr_write_fast_normal_hits; 1338c2ecf20Sopenharmony_ci unsigned int nr_read_seq; 1348c2ecf20Sopenharmony_ci unsigned int nr_read_seq_hits; 1358c2ecf20Sopenharmony_ci unsigned int nr_write_seq; 1368c2ecf20Sopenharmony_ci unsigned int nr_write_fast_seq_hits; 1378c2ecf20Sopenharmony_ci unsigned int nr_read_cache; 1388c2ecf20Sopenharmony_ci unsigned int nr_read_cache_hits; 1398c2ecf20Sopenharmony_ci unsigned int nr_write_cache; 1408c2ecf20Sopenharmony_ci unsigned int nr_write_fast_cache_hits; 1418c2ecf20Sopenharmony_ci unsigned int nr_inhibit_cache; 1428c2ecf20Sopenharmony_ci unsigned int nr_bybass_cache; 1438c2ecf20Sopenharmony_ci unsigned int nr_seq_dasd_to_cache; 1448c2ecf20Sopenharmony_ci unsigned int nr_dasd_to_cache; 1458c2ecf20Sopenharmony_ci unsigned int nr_cache_to_dasd; 1468c2ecf20Sopenharmony_ci unsigned int nr_delayed_fast_write; 1478c2ecf20Sopenharmony_ci unsigned int nr_normal_fast_write; 1488c2ecf20Sopenharmony_ci unsigned int nr_seq_fast_write; 1498c2ecf20Sopenharmony_ci unsigned int nr_cache_miss; 1508c2ecf20Sopenharmony_ci unsigned char status2; 1518c2ecf20Sopenharmony_ci unsigned int nr_quick_write_promotes; 1528c2ecf20Sopenharmony_ci unsigned char reserved; 1538c2ecf20Sopenharmony_ci unsigned short ssid; 1548c2ecf20Sopenharmony_ci unsigned char reseved2[96]; 1558c2ecf20Sopenharmony_ci} __attribute__((packed)) dasd_rssd_perf_stats_t; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci/* 1588c2ecf20Sopenharmony_ci * struct profile_info_t 1598c2ecf20Sopenharmony_ci * holds the profinling information 1608c2ecf20Sopenharmony_ci */ 1618c2ecf20Sopenharmony_citypedef struct dasd_profile_info_t { 1628c2ecf20Sopenharmony_ci unsigned int dasd_io_reqs; /* number of requests processed at all */ 1638c2ecf20Sopenharmony_ci unsigned int dasd_io_sects; /* number of sectors processed at all */ 1648c2ecf20Sopenharmony_ci unsigned int dasd_io_secs[32]; /* histogram of request's sizes */ 1658c2ecf20Sopenharmony_ci unsigned int dasd_io_times[32]; /* histogram of requests's times */ 1668c2ecf20Sopenharmony_ci unsigned int dasd_io_timps[32]; /* histogram of requests's times per sector */ 1678c2ecf20Sopenharmony_ci unsigned int dasd_io_time1[32]; /* histogram of time from build to start */ 1688c2ecf20Sopenharmony_ci unsigned int dasd_io_time2[32]; /* histogram of time from start to irq */ 1698c2ecf20Sopenharmony_ci unsigned int dasd_io_time2ps[32]; /* histogram of time from start to irq */ 1708c2ecf20Sopenharmony_ci unsigned int dasd_io_time3[32]; /* histogram of time from irq to end */ 1718c2ecf20Sopenharmony_ci unsigned int dasd_io_nr_req[32]; /* histogram of # of requests in chanq */ 1728c2ecf20Sopenharmony_ci} dasd_profile_info_t; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci/* 1758c2ecf20Sopenharmony_ci * struct format_data_t 1768c2ecf20Sopenharmony_ci * represents all data necessary to format a dasd 1778c2ecf20Sopenharmony_ci */ 1788c2ecf20Sopenharmony_citypedef struct format_data_t { 1798c2ecf20Sopenharmony_ci unsigned int start_unit; /* from track */ 1808c2ecf20Sopenharmony_ci unsigned int stop_unit; /* to track */ 1818c2ecf20Sopenharmony_ci unsigned int blksize; /* sectorsize */ 1828c2ecf20Sopenharmony_ci unsigned int intensity; 1838c2ecf20Sopenharmony_ci} format_data_t; 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci/* 1868c2ecf20Sopenharmony_ci * values to be used for format_data_t.intensity 1878c2ecf20Sopenharmony_ci * 0/8: normal format 1888c2ecf20Sopenharmony_ci * 1/9: also write record zero 1898c2ecf20Sopenharmony_ci * 3/11: also write home address 1908c2ecf20Sopenharmony_ci * 4/12: invalidate track 1918c2ecf20Sopenharmony_ci */ 1928c2ecf20Sopenharmony_ci#define DASD_FMT_INT_FMT_R0 1 /* write record zero */ 1938c2ecf20Sopenharmony_ci#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */ 1948c2ecf20Sopenharmony_ci#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */ 1958c2ecf20Sopenharmony_ci#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */ 1968c2ecf20Sopenharmony_ci#define DASD_FMT_INT_FMT_NOR0 16 /* remove permission to write record zero */ 1978c2ecf20Sopenharmony_ci#define DASD_FMT_INT_ESE_FULL 32 /* release space for entire volume */ 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci/* 2008c2ecf20Sopenharmony_ci * struct format_check_t 2018c2ecf20Sopenharmony_ci * represents all data necessary to evaluate the format of 2028c2ecf20Sopenharmony_ci * different tracks of a dasd 2038c2ecf20Sopenharmony_ci */ 2048c2ecf20Sopenharmony_citypedef struct format_check_t { 2058c2ecf20Sopenharmony_ci /* Input */ 2068c2ecf20Sopenharmony_ci struct format_data_t expect; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci /* Output */ 2098c2ecf20Sopenharmony_ci unsigned int result; /* Error indication (DASD_FMT_ERR_*) */ 2108c2ecf20Sopenharmony_ci unsigned int unit; /* Track that is in error */ 2118c2ecf20Sopenharmony_ci unsigned int rec; /* Record that is in error */ 2128c2ecf20Sopenharmony_ci unsigned int num_records; /* Records in the track in error */ 2138c2ecf20Sopenharmony_ci unsigned int blksize; /* Blocksize of first record in error */ 2148c2ecf20Sopenharmony_ci unsigned int key_length; /* Key length of first record in error */ 2158c2ecf20Sopenharmony_ci} format_check_t; 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci/* Values returned in format_check_t when a format error is detected: */ 2188c2ecf20Sopenharmony_ci/* Too few records were found on a single track */ 2198c2ecf20Sopenharmony_ci#define DASD_FMT_ERR_TOO_FEW_RECORDS 1 2208c2ecf20Sopenharmony_ci/* Too many records were found on a single track */ 2218c2ecf20Sopenharmony_ci#define DASD_FMT_ERR_TOO_MANY_RECORDS 2 2228c2ecf20Sopenharmony_ci/* Blocksize/data-length of a record was wrong */ 2238c2ecf20Sopenharmony_ci#define DASD_FMT_ERR_BLKSIZE 3 2248c2ecf20Sopenharmony_ci/* A record ID is defined by cylinder, head, and record number (CHR). */ 2258c2ecf20Sopenharmony_ci/* On mismatch, this error is set */ 2268c2ecf20Sopenharmony_ci#define DASD_FMT_ERR_RECORD_ID 4 2278c2ecf20Sopenharmony_ci/* If key-length was != 0 */ 2288c2ecf20Sopenharmony_ci#define DASD_FMT_ERR_KEY_LENGTH 5 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci/* 2318c2ecf20Sopenharmony_ci * struct attrib_data_t 2328c2ecf20Sopenharmony_ci * represents the operation (cache) bits for the device. 2338c2ecf20Sopenharmony_ci * Used in DE to influence caching of the DASD. 2348c2ecf20Sopenharmony_ci */ 2358c2ecf20Sopenharmony_citypedef struct attrib_data_t { 2368c2ecf20Sopenharmony_ci unsigned char operation:3; /* cache operation mode */ 2378c2ecf20Sopenharmony_ci unsigned char reserved:5; /* cache operation mode */ 2388c2ecf20Sopenharmony_ci __u16 nr_cyl; /* no of cyliners for read ahaed */ 2398c2ecf20Sopenharmony_ci __u8 reserved2[29]; /* for future use */ 2408c2ecf20Sopenharmony_ci} __attribute__ ((packed)) attrib_data_t; 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci/* definition of operation (cache) bits within attributes of DE */ 2438c2ecf20Sopenharmony_ci#define DASD_NORMAL_CACHE 0x0 2448c2ecf20Sopenharmony_ci#define DASD_BYPASS_CACHE 0x1 2458c2ecf20Sopenharmony_ci#define DASD_INHIBIT_LOAD 0x2 2468c2ecf20Sopenharmony_ci#define DASD_SEQ_ACCESS 0x3 2478c2ecf20Sopenharmony_ci#define DASD_SEQ_PRESTAGE 0x4 2488c2ecf20Sopenharmony_ci#define DASD_REC_ACCESS 0x5 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci/* 2518c2ecf20Sopenharmony_ci * Perform EMC Symmetrix I/O 2528c2ecf20Sopenharmony_ci */ 2538c2ecf20Sopenharmony_citypedef struct dasd_symmio_parms { 2548c2ecf20Sopenharmony_ci unsigned char reserved[8]; /* compat with older releases */ 2558c2ecf20Sopenharmony_ci unsigned long long psf_data; /* char * cast to u64 */ 2568c2ecf20Sopenharmony_ci unsigned long long rssd_result; /* char * cast to u64 */ 2578c2ecf20Sopenharmony_ci int psf_data_len; 2588c2ecf20Sopenharmony_ci int rssd_result_len; 2598c2ecf20Sopenharmony_ci} __attribute__ ((packed)) dasd_symmio_parms_t; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci/* 2628c2ecf20Sopenharmony_ci * Data returned by Sense Path Group ID (SNID) 2638c2ecf20Sopenharmony_ci */ 2648c2ecf20Sopenharmony_cistruct dasd_snid_data { 2658c2ecf20Sopenharmony_ci struct { 2668c2ecf20Sopenharmony_ci __u8 group:2; 2678c2ecf20Sopenharmony_ci __u8 reserve:2; 2688c2ecf20Sopenharmony_ci __u8 mode:1; 2698c2ecf20Sopenharmony_ci __u8 res:3; 2708c2ecf20Sopenharmony_ci } __attribute__ ((packed)) path_state; 2718c2ecf20Sopenharmony_ci __u8 pgid[11]; 2728c2ecf20Sopenharmony_ci} __attribute__ ((packed)); 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_cistruct dasd_snid_ioctl_data { 2758c2ecf20Sopenharmony_ci struct dasd_snid_data data; 2768c2ecf20Sopenharmony_ci __u8 path_mask; 2778c2ecf20Sopenharmony_ci} __attribute__ ((packed)); 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci/******************************************************************************** 2818c2ecf20Sopenharmony_ci * SECTION: Definition of IOCTLs 2828c2ecf20Sopenharmony_ci * 2838c2ecf20Sopenharmony_ci * Here ist how the ioctl-nr should be used: 2848c2ecf20Sopenharmony_ci * 0 - 31 DASD driver itself 2858c2ecf20Sopenharmony_ci * 32 - 239 still open 2868c2ecf20Sopenharmony_ci * 240 - 255 reserved for EMC 2878c2ecf20Sopenharmony_ci *******************************************************************************/ 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci/* Disable the volume (for Linux) */ 2908c2ecf20Sopenharmony_ci#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) 2918c2ecf20Sopenharmony_ci/* Enable the volume (for Linux) */ 2928c2ecf20Sopenharmony_ci#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1) 2938c2ecf20Sopenharmony_ci/* Issue a reserve/release command, rsp. */ 2948c2ecf20Sopenharmony_ci#define BIODASDRSRV _IO(DASD_IOCTL_LETTER,2) /* reserve */ 2958c2ecf20Sopenharmony_ci#define BIODASDRLSE _IO(DASD_IOCTL_LETTER,3) /* release */ 2968c2ecf20Sopenharmony_ci#define BIODASDSLCK _IO(DASD_IOCTL_LETTER,4) /* steal lock */ 2978c2ecf20Sopenharmony_ci/* reset profiling information of a device */ 2988c2ecf20Sopenharmony_ci#define BIODASDPRRST _IO(DASD_IOCTL_LETTER,5) 2998c2ecf20Sopenharmony_ci/* Quiesce IO on device */ 3008c2ecf20Sopenharmony_ci#define BIODASDQUIESCE _IO(DASD_IOCTL_LETTER,6) 3018c2ecf20Sopenharmony_ci/* Resume IO on device */ 3028c2ecf20Sopenharmony_ci#define BIODASDRESUME _IO(DASD_IOCTL_LETTER,7) 3038c2ecf20Sopenharmony_ci/* Abort all I/O on a device */ 3048c2ecf20Sopenharmony_ci#define BIODASDABORTIO _IO(DASD_IOCTL_LETTER, 240) 3058c2ecf20Sopenharmony_ci/* Allow I/O on a device */ 3068c2ecf20Sopenharmony_ci#define BIODASDALLOWIO _IO(DASD_IOCTL_LETTER, 241) 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci/* retrieve API version number */ 3108c2ecf20Sopenharmony_ci#define DASDAPIVER _IOR(DASD_IOCTL_LETTER,0,int) 3118c2ecf20Sopenharmony_ci/* Get information on a dasd device */ 3128c2ecf20Sopenharmony_ci#define BIODASDINFO _IOR(DASD_IOCTL_LETTER,1,dasd_information_t) 3138c2ecf20Sopenharmony_ci/* retrieve profiling information of a device */ 3148c2ecf20Sopenharmony_ci#define BIODASDPRRD _IOR(DASD_IOCTL_LETTER,2,dasd_profile_info_t) 3158c2ecf20Sopenharmony_ci/* Get information on a dasd device (enhanced) */ 3168c2ecf20Sopenharmony_ci#define BIODASDINFO2 _IOR(DASD_IOCTL_LETTER,3,dasd_information2_t) 3178c2ecf20Sopenharmony_ci/* Performance Statistics Read */ 3188c2ecf20Sopenharmony_ci#define BIODASDPSRD _IOR(DASD_IOCTL_LETTER,4,dasd_rssd_perf_stats_t) 3198c2ecf20Sopenharmony_ci/* Get Attributes (cache operations) */ 3208c2ecf20Sopenharmony_ci#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER,5,attrib_data_t) 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci/* #define BIODASDFORMAT _IOW(IOCTL_LETTER,0,format_data_t) , deprecated */ 3248c2ecf20Sopenharmony_ci#define BIODASDFMT _IOW(DASD_IOCTL_LETTER,1,format_data_t) 3258c2ecf20Sopenharmony_ci/* Set Attributes (cache operations) */ 3268c2ecf20Sopenharmony_ci#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER,2,attrib_data_t) 3278c2ecf20Sopenharmony_ci/* Release Allocated Space */ 3288c2ecf20Sopenharmony_ci#define BIODASDRAS _IOW(DASD_IOCTL_LETTER, 3, format_data_t) 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ci/* Get Sense Path Group ID (SNID) data */ 3318c2ecf20Sopenharmony_ci#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) 3328c2ecf20Sopenharmony_ci/* Check device format according to format_check_t */ 3338c2ecf20Sopenharmony_ci#define BIODASDCHECKFMT _IOWR(DASD_IOCTL_LETTER, 2, format_check_t) 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ci#define BIODASDSYMMIO _IOWR(DASD_IOCTL_LETTER, 240, dasd_symmio_parms_t) 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_ci#endif /* DASD_H */ 3388c2ecf20Sopenharmony_ci 339