
1: /* Declarations and macros for the basic Mach things set at startup. 2: Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc. 3: This file is part of the GNU C Library. 4: 5: The GNU C Library is free software; you can redistribute it and/or 6: modify it under the terms of the GNU Lesser General Public 7: License as published by the Free Software Foundation; either 8: version 2.1 of the License, or (at your option) any later version. 9: 10: The GNU C Library is distributed in the hope that it will be useful, 11: but WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13: Lesser General Public License for more details. 14: 15: You should have received a copy of the GNU Lesser General Public 16: License along with the GNU C Library; if not, write to the Free 17: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18: 02111-1307 USA. */ 19: 20: #ifndef _MACH_INIT_H 21: 22: #define _MACH_INIT_H 1 23: 24: #include <mach/mach_types.h> 25: 26: /* Return the current task's task port. */ 27: extern mach_port_t __mach_task_self (void); 28: extern mach_port_t mach_task_self (void); 29: 30: /* This cache is initialized at startup. */ 31: extern mach_port_t __mach_task_self_; 32: #define __mach_task_self() (__mach_task_self_ + 0) /* Not an lvalue. */ 33: #define mach_task_self() (__mach_task_self ()) 34: 35: /* Kernel page size. */ 36: extern vm_size_t __vm_page_size; 37: extern vm_size_t vm_page_size; 38: 39: /* Round the address X up to a page boundary. */ 40: #define round_page(x) \ 41: ((((vm_offset_t) (x) + __vm_page_size - 1) / __vm_page_size) * \ 42: __vm_page_size) 43: 44: /* Truncate the address X down to a page boundary. */ 45: #define trunc_page(x) \ 46: ((((vm_offset_t) (x)) / __vm_page_size) * __vm_page_size) 47: 48: #endif /* mach_init.h */