|
|
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_COPYRIGHT@ ! 24: */ ! 25: ! 26: #ifndef _I386_MACHINE_ROUTINES_H_ ! 27: #define _I386_MACHINE_ROUTINES_H_ ! 28: ! 29: #include <mach/mach_types.h> ! 30: #include <mach/boolean.h> ! 31: #include <kern/kern_types.h> ! 32: #include <pexpert/pexpert.h> ! 33: ! 34: ! 35: #if defined(PEXPERT_KERNEL_PRIVATE) || defined(MACH_KERNEL_PRIVATE) ! 36: /* IO memory map services */ ! 37: ! 38: /* Map memory map IO space */ ! 39: vm_offset_t ml_io_map( ! 40: vm_offset_t phys_addr, ! 41: vm_size_t size); ! 42: ! 43: /* boot memory allocation */ ! 44: vm_offset_t ml_static_malloc( ! 45: vm_size_t size); ! 46: ! 47: #endif ! 48: ! 49: vm_offset_t ! 50: ml_static_ptovirt( ! 51: vm_offset_t); ! 52: ! 53: void ml_static_mfree( ! 54: vm_offset_t, ! 55: vm_size_t); ! 56: ! 57: /* virtual to physical on wired pages */ ! 58: vm_offset_t ml_vtophys( ! 59: vm_offset_t vaddr); ! 60: ! 61: /* Interrupt handling */ ! 62: ! 63: /* Get Interrupts Enabled */ ! 64: boolean_t ml_get_interrupts_enabled(void); ! 65: ! 66: /* Set Interrupts Enabled */ ! 67: boolean_t ml_set_interrupts_enabled(boolean_t enable); ! 68: ! 69: /* Check if running at interrupt context */ ! 70: boolean_t ml_at_interrupt_context(void); ! 71: ! 72: /* Generate a fake interrupt */ ! 73: void ml_cause_interrupt(void); ! 74: ! 75: /* Initialize Interrupts */ ! 76: void ml_install_interrupt_handler( ! 77: void *nub, ! 78: int source, ! 79: void *target, ! 80: IOInterruptHandler handler, ! 81: void *refCon); ! 82: ! 83: #ifdef MACH_KERNEL_PRIVATE ! 84: /* check pending timers */ ! 85: #define machine_clock_assist() ! 86: #endif ! 87: ! 88: /* Type for the IPI Hander */ ! 89: typedef void (*ipi_handler_t)(void); ! 90: ! 91: /* Register a processor */ ! 92: kern_return_t ml_processor_register( ! 93: cpu_id_t cpu_id, ! 94: vm_offset_t start_paddr, ! 95: processor_t *processor, ! 96: ipi_handler_t *ipi_handler, ! 97: boolean_t boot_cpu); ! 98: ! 99: #endif /* _I386_MACHINE_ROUTINES_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.