|
|
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: * HISTORY ! 27: * ! 28: * Revision 1.1.1.1 1998/09/22 21:05:38 wsanchez ! 29: * Import of Mac OS X kernel (~semeria) ! 30: * ! 31: * Revision 1.1.1.1 1998/03/07 02:25:39 wsanchez ! 32: * Import of OSF Mach kernel (~mburg) ! 33: * ! 34: * Revision 1.3.11.4 1995/12/15 10:49:49 bernadat ! 35: * cbus includes moved to busses/cbus ! 36: * [95/12/15 bernadat] ! 37: * ! 38: * Revision 1.3.11.3 1995/08/21 20:33:23 devrcs ! 39: * ri-osc CR1547: Fix himem buffer translation to cope with non ! 40: * page-aligned addresses. ! 41: * [1995/08/08 16:52:06 bolinger] ! 42: * ! 43: * Revision 1.3.11.2 1995/01/26 22:14:56 ezf ! 44: * removed extraneous CMU CR ! 45: * [1995/01/26 20:24:48 ezf] ! 46: * ! 47: * Revision 1.3.9.2 1994/06/08 21:14:27 dswartz ! 48: * Preemption merge. ! 49: * [1994/06/08 21:12:31 dswartz] ! 50: * ! 51: * Revision 1.3.9.1 1994/05/19 20:30:30 dwm ! 52: * mk6 CR 80. Add himem_init prototype. ! 53: * [1994/05/19 20:30:10 dwm] ! 54: * ! 55: * Revision 1.3.2.3 1993/08/09 19:37:21 dswartz ! 56: * Add ANSI prototypes - CR#9523 ! 57: * [1993/08/06 17:50:06 dswartz] ! 58: * ! 59: * Revision 1.3.2.2 1993/06/09 02:25:24 gm ! 60: * CR9176 - ANSI C violations: trailing tokens on CPP ! 61: * directives, extra semicolons after decl_ ..., asm keywords ! 62: * [1993/06/07 18:58:40 jeffc] ! 63: * ! 64: * Added to OSF/1 R1.3 from NMK15.0. ! 65: * [1993/06/02 21:01:57 jeffc] ! 66: * ! 67: * Revision 1.3 1993/04/19 16:09:54 devrcs ! 68: * Use free copyright ! 69: * [1993/03/03 12:12:12 bernadat] ! 70: * ! 71: * Revision 1.2 1992/11/25 01:07:16 robert ! 72: * integrate changes below for norma_14 ! 73: * [1992/11/13 19:28:57 robert] ! 74: * ! 75: * $EndLog$ ! 76: */ ! 77: ! 78: #ifndef _I386AT_HIMEM_H_ ! 79: #define _I386AT_HIMEM_H_ ! 80: ! 81: /* ! 82: * support of memory above 16 Megs for DMA limited to memory ! 83: * below 16 Megs. ! 84: */ ! 85: ! 86: #include <platforms.h> ! 87: ! 88: #define HIMEM_STATS 0 ! 89: ! 90: #if HIMEM_STATS ! 91: extern int himem_request; ! 92: extern int himem_used; ! 93: #endif /* HIMEM_STATS */ ! 94: ! 95: struct himem_link { ! 96: struct himem_link *next; ! 97: vm_offset_t high_addr; /* physical address */ ! 98: vm_offset_t low_page; /* physical page */ ! 99: vm_offset_t offset; /* offset on page */ ! 100: vm_size_t length; ! 101: }; ! 102: ! 103: typedef struct himem_link *hil_t; ! 104: ! 105: ! 106: #define HIGH_MEM ((vm_offset_t) 0xf00000) ! 107: ! 108: #define _high_mem_page(x) ((vm_offset_t)(x) >= HIGH_MEM) ! 109: ! 110: ! 111: #if HIMEM_STATS ! 112: #define high_mem_page(x) \ ! 113: (++himem_request && _high_mem_page(x) && ++himem_used) ! 114: ! 115: #else /* HIMEM_STATS */ ! 116: #define high_mem_page(x) _high_mem_page(x) ! 117: #endif /* HIMEM_STATS */ ! 118: ! 119: extern void himem_init(void); ! 120: extern void himem_reserve( ! 121: int npages); ! 122: extern vm_offset_t himem_convert( ! 123: vm_offset_t paddr, ! 124: vm_size_t len, ! 125: int op, ! 126: hil_t * hil); ! 127: extern void himem_revert( ! 128: hil_t hil); ! 129: ! 130: #endif /* _I386AT_HIMEM_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.