Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

pagetable.c File Reference


Detailed Description

Author:
Christian Biere
Date:
2007

#include "common.h"
#include "lib/pagetable.h"
#include "lib/misc.h"
#include "lib/vmm.h"
#include "lib/override.h"

Data Structures

struct  slice
struct  page_table

Defines

#define POINTER_WIDTH   32
 NOTE: These values are meant for a typical 32-bit system with 4 KiB large pages.
#define SLICE_BITSHIFT   24
#define SLICE_BITMASK   ((size_t)-1 << SLICE_BITSHIFT)
#define PAGE_BITSHIFT   12
#define PAGE_BITMASK   ((size_t)-1 << PAGE_BITSHIFT)

Functions

page_table_tpage_table_new (void)
void page_table_destroy (page_table_t *tab)
size_t page_table_lookup (page_table_t *tab, void *p)
int page_table_insert (page_table_t *tab, void *p, size_t size)
int page_table_remove (page_table_t *tab, void *p)
void page_table_foreach (page_table_t *tab, page_table_foreach_func func, void *data)


Define Documentation

#define PAGE_BITMASK   ((size_t)-1 << PAGE_BITSHIFT)
 

#define PAGE_BITSHIFT   12
 

#define POINTER_WIDTH   32
 

NOTE: These values are meant for a typical 32-bit system with 4 KiB large pages.

This is not efficient or useful for 64-bit systems.

#define SLICE_BITMASK   ((size_t)-1 << SLICE_BITSHIFT)
 

#define SLICE_BITSHIFT   24
 


Function Documentation

void page_table_destroy page_table_t tab  ) 
 

void page_table_foreach page_table_t tab,
page_table_foreach_func  func,
void *  data
 

int page_table_insert page_table_t tab,
void *  p,
size_t  size
 

size_t page_table_lookup page_table_t tab,
void *  p
 

page_table_t* page_table_new void   ) 
 

int page_table_remove page_table_t tab,
void *  p
 


Generated on Sat Jun 30 17:53:29 2007 for gtk-gnutella by  doxygen 1.3.9.1