/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos43N src/bos/kernel/sys/vm_types.h 1.4 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* Restricted Materials of IBM */ /* */ /* (C) COPYRIGHT International Business Machines Corp. 1999 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)47 1.4 src/bos/kernel/sys/vm_types.h, sysvmm, bos43N, 9922A_43N 5/27/99 07:54:59 */ #ifndef _H_VM_TYPES #define _H_VM_TYPES #ifndef _H_STANDARDS #include #endif #if defined(__64BIT__) && !defined(_KERNEL) typedef int vmid_t; /* virtual memory object ID */ #else #ifdef _32KERMODE typedef uint_t vmid_t; /* virtual memory object ID */ #else typedef long vmid_t; /* virtual memory object ID */ #endif #endif #if defined(__64BIT__) && !defined(_KERNEL) typedef uint_t vmhandle_t; /* virtual memory handle */ #else #ifdef _32KERMODE typedef uint_t vmhandle_t; /* virtual memory handle */ #else typedef ulong_t vmhandle_t; /* virtual memory handle */ #endif #endif #ifdef _32KERMODE typedef uint_t kvmid_t; /* kernel's internal version */ typedef uint_t kvmhandle_t; /* kernel's internal version */ typedef uint_t kvmidx_t; /* kernel's internal version */ typedef int vmidx_t; /* index for vm objects */ typedef int vmkey_t; /* key for vm objects */ typedef int vpn_t; /* virtual page number */ typedef int rpn_t; /* real page number */ #else typedef long32int64_t kvmid_t; /* kernel's internal version */ typedef ulong32int64_t kvmhandle_t; /* kernel's internal version */ typedef int kvmidx_t; /* kernel's internal version */ typedef int32long64_t vmidx_t; /* index for vm objects */ typedef int32long64_t vmkey_t; /* key for vm objects */ typedef int32long64_t vpn_t; /* virtual page number */ typedef int32long64_t rpn_t; /* real page number */ #endif #ifdef __64BIT__ typedef signed long rpn64_t; #else /* ILP32 */ #ifdef _LONG_LONG typedef signed long long rpn64_t; #else /* no long long */ #ifdef _ALL_SOURCE typedef quad rpn64_t; #endif /* _ALL_SOURCE */ #endif /* _LONG_LONG */ #endif /* __64BIT__ */ typedef int kvpn_t; /* kernel's internal view of vpn*/ typedef int krpn_t; /* kernel's internal view of rpn*/ typedef int32long64_t vmsize_t; /* size param */ #ifdef _IA64 typedef long vmrid_t; /* virtual memory region ID */ #endif typedef struct #ifdef _ALL_SOURCE vmaddr_t #endif /* _ALL_SOURCE */ { /* long-form virtual address */ #ifdef _ALL_SOURCE vmhandle_t srval; /* segment reg contents */ caddr_t offset; /* offset within segment */ #else /* _ALL_SOURCE */ vmhandle_t __srval; /* segment reg contents */ caddr_t __offset; /* offset within segment */ #endif /* _ALL_SOURCE */ } vmaddr_t; typedef struct #ifdef _ALL_SOURCE adspace_t #endif /* _ALL_SOURCE */ { /* address space mapping */ #ifdef _ALL_SOURCE ulong32int64_t alloc; /* allocation flags */ kvmhandle_t srval[16]; /* contents of all seg regs */ #else /* _ALL_SOURCE */ ulong32int64_t __alloc; /* allocation flags */ kvmhandle_t __srval[16]; /* contents of all seg regs */ #endif /* _ALL_SOURCE */ } adspace_t; #if defined(_ALL_SOURCE) && defined(_LONG_LONG) /* * Memory Region Management Definitions and Structures */ typedef enum _MR_ATTR_TYPE { VirtAddr = 1 } MR_ATTR_TYPE; typedef enum _MR_LABEL_TYPE { FreeMem = 1, IPLCB = 2, RMALLOC = 3, PM_HEAP = 4, RTAS_HEAP = 5, TCE_TABLE = 6, IO_SPACE = 7 } MR_LABEL_TYPE; typedef struct { unsigned long long mr_addr; /* memory region address */ unsigned long long mr_size; /* memory region length */ unsigned char mr_att; /* memory region attributes */ unsigned char mr_label; /* memory region label */ unsigned short mr_nodeid; /* memory region NUMA node ID */ char reserved[4]; /* padding, future use */ } iplcb_map_reg_t; #endif /* _ALL_SOURCE && _LONG_LONG */ #endif /*_H_VM_TYPES*/