|
|
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: * ConfigPrivate.h - private #defines for Config server. ! 27: * ! 28: * HISTORY ! 29: * 11-Apr-91 Doug Mitchell at NeXT ! 30: * Created. ! 31: */ ! 32: ! 33: #ifndef _CONFIG_PRIVATE_H_ ! 34: #define _CONFIG_PRIVATE_H_ ! 35: ! 36: #import <bsd/sys/types.h> ! 37: #import <driverkit/debugging.h> ! 38: #import <kernserv/queue.h> ! 39: #import <mach/cthreads.h> ! 40: #import <bsd/sys/dir.h> ! 41: ! 42: /* ! 43: * Typedefs for identifying executable driver files. ! 44: */ ! 45: typedef unsigned long file_id_t; // like fileno ! 46: #define FILENAME_SIZE (MAXNAMLEN+1) ! 47: typedef char filename_t[FILENAME_SIZE]; // human-readable name ! 48: ! 49: /* ! 50: * A list of these is maintained in driver_list. One driver_entry_t per driver. ! 51: * dev_list contains a list of dev_entry_t's, allowing mapping multiple devices ! 52: * to one driver. ! 53: */ ! 54: typedef struct { ! 55: queue_head_t dev_list; ! 56: file_id_t executable_fid; ! 57: filename_t filename; // name of executable ! 58: port_t driver_port; // created by driver ! 59: port_t driver_sig_port; // created by us ! 60: port_t boot_requestor; // requestor_port for ! 61: // bootstrap_subset() ! 62: boolean_t running; // we've exec'd it ! 63: queue_chain_t link; ! 64: } driver_entry_t; ! 65: ! 66: /* ! 67: * One per dev_port to which driver has rights. ! 68: */ ! 69: typedef struct { ! 70: port_t dev_port; // created by kernel ! 71: IODeviceType dev_type; ! 72: IOSlotId slot_id; ! 73: IODeviceNumber dev_number; ! 74: driver_entry_t *driver_entry; // in whose dev_list this ! 75: // resides ! 76: queue_chain_t link; ! 77: } dev_entry_t; ! 78: ! 79: ! 80: /* ! 81: * XPR control. ! 82: */ ! 83: #define XPR_CONFIG_INDEX 0 ! 84: ! 85: #ifdef DDM_DEBUG ! 86: ! 87: #define XPR_CONFIG 0x00000001 ! 88: #define XPR_SERVER 0x00000002 ! 89: #define XPR_COMMON 0x00000004 ! 90: #define XPR_ERR 0x00000008 ! 91: ! 92: #define xpr_config(x, a, b, c, d, e) { \ ! 93: if(IODDMMasks[XPR_CONFIG_INDEX] & XPR_CONFIG) { \ ! 94: IOAddDDMEntry(x, (int)a, (int)b, (int)c, (int)d, (int)e); \ ! 95: if(verbose) \ ! 96: printf(x, a, b, c, d, e); \ ! 97: } \ ! 98: } ! 99: #define xpr_server(x, a, b, c, d, e) { \ ! 100: if(IODDMMasks[XPR_CONFIG_INDEX] & XPR_SERVER) { \ ! 101: IOAddDDMEntry(x, (int)a, (int)b, (int)c, (int)d, (int)e); \ ! 102: if(verbose) \ ! 103: printf(x, a, b, c, d, e); \ ! 104: } \ ! 105: } ! 106: #define xpr_common(x, a, b, c, d, e) { \ ! 107: if(IODDMMasks[XPR_CONFIG_INDEX] & XPR_COMMON) { \ ! 108: IOAddDDMEntry(x, (int)a, (int)b, (int)c, (int)d, (int)e); \ ! 109: if(verbose) \ ! 110: printf(x, a, b, c, d, e); \ ! 111: } \ ! 112: } ! 113: #define xpr_err(x, a, b, c, d, e) { \ ! 114: if(IODDMMasks[XPR_CONFIG_INDEX] & XPR_ERR) { \ ! 115: IOAddDDMEntry(x, (int)a, (int)b, (int)c, (int)d, (int)e); \ ! 116: } \ ! 117: printf(x, a, b, c, d, e); \ ! 118: } ! 119: ! 120: #else DDM_DEBUG ! 121: ! 122: #define xpr_config(x, a, b, c, d, e) ! 123: #define xpr_server(x, a, b, c, d, e) ! 124: #define xpr_common(x, a, b, c, d, e) ! 125: #define xpr_err(x, a, b, c, d, e) ! 126: ! 127: #endif DDM_DEBUG ! 128: ! 129: /* ! 130: * Externs. ! 131: */ ! 132: extern queue_head_t driver_list; ! 133: extern mutex_t driver_list_lock; ! 134: extern condition_t driver_list_cond; ! 135: extern boolean_t driver_list_locked; ! 136: extern int verbose; ! 137: extern port_t device_master_port; ! 138: ! 139: #endif _CONFIG_PRIVATE_H_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.