Annotation of XNU/bsd/sys/chio.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.