Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | /* * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * The contents of this file constitute Original Code as defined in and * are subject to the Apple Public Source License Version 1.1 (the * "License"). You may not use this file except in compliance with the * License. Please obtain a copy of the License at * http://www.apple.com/publicsource and read it before using this file. * * This Original Code and all software distributed under the License are * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the * License for the specific language governing rights and limitations * under the License. * * @APPLE_LICENSE_HEADER_END@ */ /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ /* * The NEXTSTEP Software License Agreement specifies the terms * and conditions for redistribution. */ #ifndef _SYS_CHIO_H_ #define _SYS_CHIO_H_ /* * Structures and definitions for changer io control commands */ #define CH_INVERT 0x10000 #define CH_ADDR_MASK 0xffff struct chop { short ch_op; /* operations defined below */ short result; /* the result */ union { struct { int chm; /* Transport element */ int from; int to; } move; struct { int chm; /* Transport element */ int to; } position; struct { short chmo; /* Offset of first CHM */ short chms; /* No. of CHM */ short slots; /* No. of Storage Elements */ short sloto; /* Offset of first SE */ short imexs; /* No. of Import/Export Slots */ short imexo; /* Offset of first IM/EX */ short drives; /* No. of CTS */ short driveo; /* Offset of first CTS */ short rot; /* CHM can rotate */ } getparam; struct { int type; #define CH_CHM 1 #define CH_STOR 2 #define CH_IMEX 3 #define CH_CTS 4 int from; struct { u_char elema_1; u_char elema_0; u_char full:1; u_char rsvd:1; u_char except:1; u_char :5; u_char rsvd2; union { struct { u_char add_sense_code; u_char add_sense_code_qualifier; } specs; short add_sense; /* WARINING LSB only */ #define CH_CHOLDER 0x0290 /* Cartridge holder is missing */ #define CH_STATUSQ 0x0390 /* Status is questionable */ #define CH_CTS_CLOSED 0x0490 /* CTS door is closed */ } ch_add_sense; u_char rsvd3[3]; u_char :6; u_char invert:1; u_char svalid:1; u_char source_1; u_char source_0; u_char rsvd4[4]; } elem_data; } get_elem_stat; } u; }; /* operations */ #define CHMOVE 1 #define CHPOSITION 2 #define CHGETPARAM 3 #define CHGETELEM 4 /* Changer IO control command */ #define CHIOOP _IOWR('c', 1, struct chop) /* do a mag tape op */ #endif /* !_SYS_CHIO_H_ */ |