|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1998-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: #ifndef __IOKIT_SYSTEM_H ! 23: #define __IOKIT_SYSTEM_H ! 24: ! 25: #include <sys/cdefs.h> ! 26: ! 27: __BEGIN_DECLS ! 28: ! 29: #include <mach/mach_types.h> ! 30: #include <mach/mach_interface.h> ! 31: #include <mach/etap.h> ! 32: #include <mach/etap_events.h> ! 33: ! 34: #include <stdarg.h> ! 35: ! 36: #if KERNEL ! 37: #include <IOKit/assert.h> /* Must be before other includes of kern/assert.h */ ! 38: #include <kern/cpu_data.h> ! 39: #include <kern/thread.h> ! 40: #include <kern/thread_act.h> ! 41: #include <vm/pmap.h> ! 42: #include <vm/vm_kern.h> ! 43: #include <kern/kalloc.h> ! 44: #include <kern/task.h> ! 45: #include <kern/thread.h> ! 46: #include <kern/time_out.h> ! 47: #include <kern/sched_prim.h> ! 48: #include <kern/sync_sema.h> ! 49: #include <machine/spl.h> ! 50: #include <kern/lock.h> ! 51: #include <kern/queue.h> ! 52: #include <kern/ipc_mig.h> ! 53: #endif /* KERNEL */ ! 54: ! 55: extern int bcmp(const void *, const void *, size_t); ! 56: extern void bcopy(const void *, void *, size_t); ! 57: extern void bzero(void *, size_t); ! 58: ! 59: extern void _doprnt( const char *format, va_list *arg, ! 60: void (*putc)(char), int radix ); ! 61: ! 62: extern int sscanf(const char *input, const char *fmt, ...); ! 63: extern int sprintf(char *s, const char *format, ...); ! 64: extern long strtol(const char *, char **, int); ! 65: extern unsigned long strtoul(const char *, char **, int); ! 66: ! 67: extern ! 68: #ifdef __GNUC__ ! 69: volatile ! 70: #endif ! 71: void panic(const char * msg, ...); ! 72: ! 73: ! 74: // Exported from osfmk/vm/vm_user.c ! 75: /* ! 76: * JMM - Should be able to export this cleanly in the very near ! 77: * future. ! 78: * ! 79: * vm_allocate allocates "zero fill" memory in the specfied ! 80: * map. ! 81: */ ! 82: extern kern_return_t vm_allocate(vm_map_t map, ! 83: vm_offset_t *addr, ! 84: vm_size_t size, ! 85: boolean_t anywhere); ! 86: /* ! 87: * vm_deallocate deallocates the specified range of addresses in the ! 88: * specified address map. ! 89: */ ! 90: extern kern_return_t vm_deallocate(vm_map_t map, ! 91: vm_offset_t start, ! 92: vm_size_t size); ! 93: ! 94: // Grabbed from bsd space ! 95: #define thread_wait_result() get_thread_waitresult(current_thread()) ! 96: ! 97: ! 98: ! 99: /* ! 100: * Static Complex (read/write) lock operations (should not use ! 101: * statically allocated locks. They should all be dynamic.) ! 102: */ ! 103: extern void lock_init (void * x, ! 104: boolean_t sleep, ! 105: void * a, ! 106: void * b); ! 107: ! 108: ! 109: /* ! 110: */ ! 111: ! 112: #ifdef __ppc__ ! 113: ! 114: /* ! 115: * Really need a set of interfaces from osfmk/pexpert components to do ! 116: * all that is required to prepare an I/O from a cache management point ! 117: * of view. ! 118: * osfmk/ppc/cache.s ! 119: */ ! 120: extern void invalidate_icache(vm_offset_t addr, unsigned cnt, int phys); ! 121: extern void flush_dcache(vm_offset_t addr, unsigned count, int phys); ! 122: ! 123: #endif ! 124: ! 125: __END_DECLS ! 126: ! 127: #endif /* !__IOKIT_SYSTEM_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.