/* *structdasd_information2_t *representsanydataaboutthedevice,whichisvisibletouserspace. *includingformatandfeatueres.
*/ typedefstruct dasd_information2_t { unsignedint devno; /* S/390 devno */ unsignedint real_devno; /* for aliases */ unsignedint schid; /* S/390 subchannel identifier */ unsignedint cu_type : 16; /* from SenseID */ unsignedint cu_model : 8; /* from SenseID */ unsignedint dev_type : 16; /* from SenseID */ unsignedint dev_model : 8; /* from SenseID */ unsignedint open_count; unsignedint req_queue_len; unsignedint chanq_len; /* length of chanq */ char type[4]; /* from discipline.name, 'none' for unknown */ unsignedint status; /* current device level */ unsignedint label_block; /* where to find the VOLSER */ unsignedint FBA_layout; /* fixed block size (like AIXVOL) */ unsignedint characteristics_size; unsignedint confdata_size; char characteristics[64]; /* from read_device_characteristics */ char configuration_data[256]; /* from read_configuration_data */ unsignedint format; /* format info like formatted/cdl/ldl/... */ unsignedint features; /* dasd features like 'ro',... */ unsignedint reserved0; /* reserved for further use ,... */ unsignedint reserved1; /* reserved for further use ,... */ unsignedint reserved2; /* reserved for further use ,... */ unsignedint reserved3; /* reserved for further use ,... */ unsignedint reserved4; /* reserved for further use ,... */ unsignedint reserved5; /* reserved for further use ,... */ unsignedint reserved6; /* reserved for further use ,... */ unsignedint reserved7; /* reserved for further use ,... */
} dasd_information2_t;
/* *structprofile_info_t *holdstheprofinlinginformation
*/ typedefstruct dasd_profile_info_t { unsignedint dasd_io_reqs; /* number of requests processed at all */ unsignedint dasd_io_sects; /* number of sectors processed at all */ unsignedint dasd_io_secs[32]; /* histogram of request's sizes */ unsignedint dasd_io_times[32]; /* histogram of requests's times */ unsignedint dasd_io_timps[32]; /* histogram of requests's times per sector */ unsignedint dasd_io_time1[32]; /* histogram of time from build to start */ unsignedint dasd_io_time2[32]; /* histogram of time from start to irq */ unsignedint dasd_io_time2ps[32]; /* histogram of time from start to irq */ unsignedint dasd_io_time3[32]; /* histogram of time from irq to end */ unsignedint dasd_io_nr_req[32]; /* histogram of # of requests in chanq */
} dasd_profile_info_t;
/* Reserved for future updates. */
__u8 reserved[64];
};
/* *valuestobeusedforformat_data_t.intensity *0/8:normalformat *1/9:alsowriterecordzero *3/11:alsowritehomeaddress *4/12:invalidatetrack
*/ #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 */ #define DASD_FMT_INT_FMT_NOR0 16/* remove permission to write record zero */ #define DASD_FMT_INT_ESE_FULL 32/* release space for entire volume */
/* Output */ unsignedint result; /* Error indication (DASD_FMT_ERR_*) */ unsignedint unit; /* Track that is in error */ unsignedint rec; /* Record that is in error */ unsignedint num_records; /* Records in the track in error */ unsignedint blksize; /* Blocksize of first record in error */ unsignedint key_length; /* Key length of first record in error */
} format_check_t;
/* Values returned in format_check_t when a format error is detected: */ /* Too few records were found on a single track */ #define DASD_FMT_ERR_TOO_FEW_RECORDS 1 /* Too many records were found on a single track */ #define DASD_FMT_ERR_TOO_MANY_RECORDS 2 /* Blocksize/data-length of a record was wrong */ #define DASD_FMT_ERR_BLKSIZE 3 /* A record ID is defined by cylinder, head, and record number (CHR). */ /* On mismatch, this error is set */ #define DASD_FMT_ERR_RECORD_ID 4 /* If key-length was != 0 */ #define DASD_FMT_ERR_KEY_LENGTH 5
/* *structattrib_data_t *representstheoperation(cache)bitsforthedevice. *UsedinDEtoinfluencecachingoftheDASD.
*/ typedefstruct attrib_data_t { unsignedchar operation:3; /* cache operation mode */ unsignedchar 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
/* *PerformEMCSymmetrixI/O
*/ typedefstruct dasd_symmio_parms { unsignedchar reserved[8]; /* compat with older releases */ unsignedlonglong psf_data; /* char * cast to u64 */ unsignedlonglong rssd_result; /* char * cast to u64 */ int psf_data_len; int rssd_result_len;
} __attribute__ ((packed)) dasd_symmio_parms_t;
/* 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) /* Abort all I/O on a device */ #define BIODASDABORTIO _IO(DASD_IOCTL_LETTER, 240) /* Allow I/O on a device */ #define BIODASDALLOWIO _IO(DASD_IOCTL_LETTER, 241)
/* 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)
/* Get Sense Path Group ID (SNID) data */ #define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) /* Check device format according to format_check_t */ #define BIODASDCHECKFMT _IOWR(DASD_IOCTL_LETTER, 2, format_check_t)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.