|
|
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.0 (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: /*
25: * Copyright 1997-1998 by Apple Computer, Inc., All rights reserved.
26: * Copyright 1994-1997 NeXT Software, Inc., All rights reserved.
27: *
28: * IdePIIX.h - PIIX specific initialization methods for Ide controller
29: * device class.
30: *
31: * HISTORY
32: *
33: * 1-May-1998 Joe Liu at Apple
34: * Created.
35: */
36:
37: #ifdef DRIVER_PRIVATE
38:
39: #ifndef _BSD_DEV_IDEPIIX_H
40: #define _BSD_DEV_IDEPIIX_H 1
41:
42: #import <driverkit/i386/PCI.h>
43: #import <driverkit/i386/IOPCIDeviceDescription.h>
44: #import <driverkit/return.h>
45: #import <driverkit/driverTypes.h>
46: #import "PIIX.h"
47: #import "AtapiCntCmds.h"
48:
49: @interface IdeController(PIIX)
50:
51: /*
52: * Generic PCI controller methods.
53: * Those methods are "exported" to other categories in IdeController class.
54: *
55: * In the future, if we support additional PCI controllers, we could make
56: * this category into a separate object. Each controller object would then
57: * export a protocol similar to what is declared below.
58: */
59: - (BOOL) probePCIController:(IOPCIDeviceDescription *)devDesc;
60:
61: - (void) getPCIControllerCapabilities:(txferModes_t *)modes;
62:
63: - (BOOL) setPCIControllerCapabilitiesForDrives:(driveInfo_t *)drives;
64:
65: - (ideTransferWidth_t) getPIOTransferWidth;
66:
67: - (void) resetPCIController;
68:
69: - (ide_return_t) performDMA:(ideIoReq_t *)ideIoReq;
70:
71: - (sc_status_t) performATAPIDMA:(atapiIoReq_t *)atapiIoReq
72: buffer:(void *)buffer
73: client:(struct vm_map *)client;
74:
75: /*
76: * PIIX specific (private) methods. They all start with the 'PIIX' prefix.
77: * Those methods should not be called directly outside of the PIIX category.
78: */
79: - (BOOL) PIIXInitController:(IOPCIDeviceDescription *)devDesc;
80:
81: - (void) PIIXResetTimings:(IOPCIDeviceDescription *)devDesc;
82:
83: - (void) PIIXComputePCIConfigSpace:(IOPCIConfigSpace *)configSpace
84: forDrives:(driveInfo_t *)drv;
85:
86: - (BOOL) PIIXRegisterBMRange:(IOPCIDeviceDescription *)devDesc;
87:
88: - (BOOL) PIIXInitPRDTable;
89:
90: - (void) PIIXReportTimings:(piix_idetim_u)tim
91: slaveTiming:(piix_sidetim_u)stim
92: isPrimary:(BOOL)primary;
93:
94: - (void) PIIXInit;
95:
96: @end
97:
98: #endif /* _BSD_DEV_IDEPIIX_H */
99:
100: #endif /* DRIVER_PRIVATE */
101:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.