|
|
1.1 root 1: /*
2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7: * Reserved. This file contains Original Code and/or Modifications of
8: * Original Code as defined in and that are subject to the Apple Public
9: * Source License Version 1.1 (the "License"). You may not use this file
10: * except in compliance with the License. Please obtain a copy of the
11: * License at http://www.apple.com/publicsource and read it before using
12: * this file.
13: *
14: * The Original Code and all software distributed under the License are
15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18: * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19: * License for the specific language governing rights and limitations
20: * under the License.
21: *
22: * @APPLE_LICENSE_HEADER_END@
23: */
24: /* Copyright (c) 1991 NeXT Computer, Inc. All rights reserved.
25: *
26: * volCheckPrivate.h - internal typedefs for volCheck logic.
27: *
28: * HISTORY
29: * 07-May-91 Doug Mitchell at NeXT
30: * Created.
31: */
32:
33: #import <driverkit/IODisk.h>
34: #import <driverkit/IODiskPartition.h>
35: #import <driverkit/volCheck.h>
36: #import <kernserv/insertmsg.h>
37: #import <kernserv/queue.h>
38: #ifdef KERNEL
39: #import <kernserv/prototypes.h>
40: #else KERNEL
41: #import <bsd/libc.h>
42: #endif KERNEL
43:
44: #undef DRIVER_PRIVATE
45: #define DRIVER_PRIVATE
46: #import <bsd/dev/voldev.h>
47:
48: /*
49: * state per registered removable drive.
50: */
51: typedef struct {
52: id diskObj;
53: dev_t blockDev;
54: dev_t rawDev;
55: int ejectCounter;
56: BOOL ejectRequestPending;
57: BOOL diskRequestPending;
58: int tag;
59: int diskType; // PR_DRIVE_FLOPPY, etc.
60: queue_chain_t link;
61: } volCheckEntry_t;
62:
63: /*
64: * Command to be queued in volCheckCmdQ.
65: */
66: typedef enum {
67:
68: VC_REGISTER,
69: VC_UNREGISTER,
70: VC_REQUEST,
71: VC_EJECTING,
72: VC_NOTREADY,
73: VC_RESPONSE,
74:
75: } volCheckOp_t;
76:
77: typedef struct {
78: volCheckOp_t op;
79: id diskObj;
80: int diskType;
81: dev_t blockDev;
82: dev_t rawDev;
83: queue_chain_t link;
84: } volCheckCmd_t;
85:
86: /*
87: * Delay in seconds between executing "eject" and requiring a "not ready"
88: * state from the drive.
89: */
90: #define VC_EJECT_DELAY 5
91:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.