|
|
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: #ifndef _KERN_LEDGER_H_ ! 26: #define _KERN_LEDGER_H_ ! 27: ! 28: #include <kern/lock.h> ! 29: #include <ipc/ipc_port.h> ! 30: #include <mach/mach_types.h> ! 31: ! 32: #define LEDGER_ITEM_INFINITY (~0) ! 33: ! 34: struct ledger { ! 35: ipc_port_t ledger_self; ! 36: ipc_port_t ledger_service_port; ! 37: ledger_item_t ledger_balance; ! 38: ledger_item_t ledger_limit; ! 39: struct ledger *ledger_ledger; ! 40: struct ledger *ledger_parent; ! 41: decl_simple_lock_data(,lock) ! 42: }; ! 43: ! 44: typedef struct ledger ledger_data_t; ! 45: ! 46: #define LEDGER_NULL ((ledger_t)0) ! 47: ! 48: #define ledger_lock(ledger) simple_lock(&(ledger)->lock) ! 49: #define ledger_unlock(ledger) simple_unlock(&(ledger)->lock) ! 50: #define ledger_lock_init(ledger) \ ! 51: simple_lock_init(&(ledger)->lock, ETAP_MISC_LEDGER) ! 52: ! 53: extern ledger_t root_wired_ledger; ! 54: extern ledger_t root_paged_ledger; ! 55: ! 56: #define root_wired_ledger_port root_wired_ledger->ledger_self ! 57: #define root_paged_ledger_port root_paged_ledger->ledger_self ! 58: ! 59: extern ipc_port_t convert_ledger_to_port(ledger_t); ! 60: extern ipc_port_t ledger_copy(ledger_t); ! 61: ! 62: extern kern_return_t ledger_enter(ledger_t, ledger_item_t); ! 63: extern void ledger_init(void); ! 64: ! 65: #endif /* _KERN_LEDGER_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.