minix/servers/vm/i386/pagetable.h
Arun Thomas 2a8fabf4ad Include directory reorg and makefile updates.
-Convert the include directory over to using bsdmake
 syntax
-Update/add mkfiles
-Modify install(1) so that it can create symlinks
-Update makefiles to use new install(1) options
-Rename /usr/include/ibm to /usr/include/i386
-Create /usr/include/machine symlink to arch header files
-Move vm_i386.h to its new home in the /usr/include/i386
-Update source files to #include the header files at their
 new homes.
-Add new gnu-includes target for building GCC headers
2010-03-08 11:04:59 +00:00

48 lines
1.1 KiB
C

#ifndef _PAGETABLE_H
#define _PAGETABLE_H 1
#include <stdint.h>
#include <machine/vm.h>
#include "../vm.h"
/* An i386 pagetable. */
typedef struct {
/* Directory entries in VM addr space - root of page table. */
u32_t *pt_dir; /* page aligned (I386_VM_DIR_ENTRIES) */
u32_t pt_dir_phys; /* physical address of pt_dir */
/* Pointers to page tables in VM address space. */
u32_t *pt_pt[I386_VM_DIR_ENTRIES];
/* When looking for a hole in virtual address space, start
* looking here. This is in linear addresses, i.e.,
* not as the process sees it but the position in the page
* page table. This is just a hint.
*/
u32_t pt_virtop;
} pt_t;
/* Mapping flags. */
#define PTF_WRITE I386_VM_WRITE
#define PTF_PRESENT I386_VM_PRESENT
#define PTF_USER I386_VM_USER
#define PTF_GLOBAL I386_VM_GLOBAL
#define PTF_MAPALLOC I386_VM_PTAVAIL1 /* Page allocated by pt code. */
/* For arch-specific PT routines to check if no bits outside
* the regular flags are set.
*/
#define PTF_ALLFLAGS (PTF_WRITE|PTF_PRESENT|PTF_USER|PTF_GLOBAL)
#if SANITYCHECKS
#define PT_SANE(p) { pt_sanitycheck((p), __FILE__, __LINE__); }
#else
#define PT_SANE(p)
#endif
#endif