|
|
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: /* ! 23: * @OSF_FREE_COPYRIGHT@ ! 24: * ! 25: */ ! 26: /* ! 27: * HISTORY ! 28: * ! 29: * Revision 1.2 1998/09/30 21:20:44 wsanchez ! 30: * Merged in IntelMerge1 (mburg: Intel support) ! 31: * ! 32: * Revision 1.1.2.1 1998/09/30 18:18:50 mburg ! 33: * Changes for Intel port ! 34: * ! 35: * Revision 1.1.1.1 1998/03/07 02:25:45 wsanchez ! 36: * Import of OSF Mach kernel (~mburg) ! 37: * ! 38: * Revision 1.1.6.2 1995/12/15 10:52:14 bernadat ! 39: * Split dev and vendor ids. ! 40: * [95/11/15 bernadat] ! 41: * ! 42: * Revision 1.1.6.1 1995/02/23 17:22:27 alanl ! 43: * Taken from DIPC2_SHARED ! 44: * [1995/01/03 19:09:31 alanl] ! 45: * ! 46: * Revision 1.1.2.1 1994/10/11 18:24:42 rwd ! 47: * Created. ! 48: * [1994/10/11 18:15:31 rwd] ! 49: * ! 50: * $EndLog$ ! 51: */ ! 52: /* ! 53: * Taken from ! 54: * ! 55: * Copyright (c) 1994 Wolfgang Stanglmeier, Koeln, Germany ! 56: * <[email protected]> ! 57: */ ! 58: ! 59: #ifndef __PCI_DEVICE_H__ ! 60: #define __PCI_DEVICE_H__ ! 61: ! 62: /*------------------------------------------------------------ ! 63: * ! 64: * Per driver structure. ! 65: * ! 66: *------------------------------------------------------------ ! 67: */ ! 68: ! 69: typedef unsigned short pci_vendor_id_t; ! 70: typedef unsigned short pci_dev_id_t; ! 71: ! 72: typedef union { ! 73: unsigned long cfg1; ! 74: struct { ! 75: unsigned char enable; ! 76: unsigned char forward; ! 77: unsigned short port; ! 78: } cfg2; ! 79: } pcici_t; ! 80: ! 81: struct pci_driver { ! 82: int (*probe )(pcici_t pci_ident); /* test whether device ! 83: is present */ ! 84: int (*attach)(pcici_t pci_ident); /* setup driver for a ! 85: device */ ! 86: pci_vendor_id_t vendor_id; /* vendor pci id */ ! 87: pci_dev_id_t device_id; /* device pci id */ ! 88: char *name; /* device name */ ! 89: char *vendor; /* device long name */ ! 90: void (*intr)(int); /* interupt handler */ ! 91: }; ! 92: ! 93: /*----------------------------------------------------------- ! 94: * ! 95: * Per device structure. ! 96: * ! 97: * It is initialized by the config utility and should live in ! 98: * "ioconf.c". At the moment there is only one field. ! 99: * ! 100: * This is a first attempt to include the pci bus to 386bsd. ! 101: * So this structure may grow .. ! 102: * ! 103: *----------------------------------------------------------- ! 104: */ ! 105: ! 106: struct pci_device { ! 107: struct pci_driver * pd_driver; ! 108: }; ! 109: ! 110: /*----------------------------------------------------------- ! 111: * ! 112: * This functions may be used by drivers to map devices ! 113: * to virtual and physical addresses. The va and pa ! 114: * addresses are "in/out" parameters. If they are 0 ! 115: * on entry, the mapping function assigns an address. ! 116: * ! 117: *----------------------------------------------------------- ! 118: */ ! 119: ! 120: int pci_map_mem(pcici_t tag, ! 121: unsigned long entry, ! 122: vm_offset_t *va, ! 123: vm_offset_t *pa); ! 124: #endif /*__PCI_DEVICE_H__*/
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.