Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/s390/char/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  vmur.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Linux driver for System z and s390 unit record devices
 * (z/VM virtual punch, reader, printer)
 *
 * Copyright IBM Corp. 2001, 2007
 * Authors: Malcolm Beattie <beattiem@uk.ibm.com>
 *     Michael Holzheu <holzheu@de.ibm.com>
 *     Frank Munzert <munzert@de.ibm.com>
 */


#ifndef _VMUR_H_
#define _VMUR_H_

#include <linux/refcount.h>
#include <linux/workqueue.h>

#define DEV_CLASS_UR_I 0x20 /* diag210 unit record input device class */
#define DEV_CLASS_UR_O 0x10 /* diag210 unit record output device class */
/*
 * we only support z/VM's default unit record devices:
 * both in SPOOL directory control statement and in CP DEFINE statement
 * RDR defaults to 2540 reader
 * PUN defaults to 2540 punch
 * PRT defaults to 1403 printer
 */

#define READER_PUNCH_DEVTYPE 0x2540
#define PRINTER_DEVTYPE  0x1403

/* z/VM spool file control block SFBLOK */
struct file_control_block {
 char reserved_1[8];
 char user_owner[8];
 char user_orig[8];
 __s32 data_recs;
 __s16 rec_len;
 __s16 file_num;
 __u8  file_stat;
 __u8  dev_type;
 char  reserved_2[6];
 char  file_name[12];
 char  file_type[12];
 char  create_date[8];
 char  create_time[8];
 char  reserved_3[6];
 __u8  file_class;
 __u8  sfb_lok;
 __u64 distr_code;
 __u32 reserved_4;
 __u8  current_starting_copy_number;
 __u8  sfblock_cntrl_flags;
 __u8  reserved_5;
 __u8  more_status_flags;
 char  rest[200];
} __attribute__ ((packed));

#define FLG_SYSTEM_HOLD 0x04
#define FLG_CP_DUMP 0x10
#define FLG_USER_HOLD 0x20
#define FLG_IN_USE 0x80

/*
 * A struct urdev is created for each ur device that is made available
 * via the ccw_device driver model.
 */

struct urdev {
 struct ccw_device *cdev; /* Backpointer to ccw device */
 struct mutex io_mutex;  /* Serialises device IO */
 struct completion *io_done; /* do_ur_io waits; irq completes */
 struct device *device;
 struct cdev *char_device;
 struct ccw_dev_id dev_id; /* device id */
 size_t reclen;   /* Record length for *write* CCWs */
 int class;   /* VM device class */
 int io_request_rc;  /* return code from I/O request */
 refcount_t ref_count;  /* reference counter */
 wait_queue_head_t wait;  /* wait queue to serialize open */
 int open_flag;   /* "urdev is open" flag */
 spinlock_t open_lock;  /* serialize critical sections */
 struct work_struct uevent_work; /* work to send uevent */
};

/*
 * A struct urfile is allocated at open() time for each device and
 * freed on release().
 */

struct urfile {
 struct urdev *urd;
 unsigned int flags;
 size_t dev_reclen;
 __u16 file_reclen;
};

/*
 * Device major/minor definitions.
 */


#define UR_MAJOR 0 /* get dynamic major */
/*
 * We map minor numbers directly to device numbers (0-FFFF) for simplicity.
 * This avoids having to allocate (and manage) slot numbers.
 */

#define NUM_MINORS 65536

/* Limiting each I/O to 511 records limits chan prog to 4KB (511 r/w + 1 NOP) */
#define MAX_RECS_PER_IO  511
#define WRITE_CCW_CMD  0x01

#define TRACE(x...) debug_sprintf_event(vmur_dbf, 1, x)
#define CCWDEV_CU_DI(cutype, di) \
  CCW_DEVICE(cutype, 0x00), .driver_info = (di)

#define FILE_RECLEN_OFFSET 4064 /* reclen offset in spool data block */

#endif /* _VMUR_H_ */

Messung V0.5
C=93 H=89 G=90

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.