f4814901af
This patch moves more includes (most of them, to tell the truth) to common/include directory. This completes the list of includes needed to compile current trunk with the new libc (but to do that you need more patches in queue). This patch also contains some modification (for compilation with new headers) to the common includes under __NBSD_LIBC, the define used in mk script to specialize compilation with new includes.
92 lines
2.2 KiB
C
92 lines
2.2 KiB
C
/*
|
|
* \brief Virtual page-table facility
|
|
* \author Thomas Friebel <tf13@os.inf.tu-dresden.de>
|
|
* \author Christian Helmuth <ch12@os.inf.tu-dresden.de>
|
|
* \date 2006-11-03
|
|
*/
|
|
|
|
#ifndef _DDEKIT_PGTAB_H
|
|
#define _DDEKIT_PGTAB_H
|
|
|
|
#include <ddekit/ddekit.h>
|
|
|
|
#include <ddekit/types.h>
|
|
|
|
/* FIXME Region types may be defined by pgtab users. Do we really need them
|
|
* here? */
|
|
enum ddekit_pgtab_type
|
|
{
|
|
PTE_TYPE_OTHER, PTE_TYPE_LARGE, PTE_TYPE_UMA, PTE_TYPE_CONTIG
|
|
};
|
|
|
|
|
|
/**
|
|
* Set virtual->physical mapping for VM region
|
|
*
|
|
* \param virt virtual start address for region
|
|
* \param phys physical start address for region
|
|
* \param pages number of pages in region
|
|
* \param type pgtab type for region
|
|
*/
|
|
_PROTOTYPE( void ddekit_pgtab_set_region,
|
|
(void *virt, ddekit_addr_t phys, int pages, int type));
|
|
|
|
|
|
/**
|
|
* Set virtual->physical mapping for VM region given a specific size in bytes.
|
|
*
|
|
* Internally, DDEKit manages regions with pages. However, DDEs do not need to tangle
|
|
* with the underlying mechanism and therefore can use this function that takes care
|
|
* of translating a size to an amount of pages.
|
|
*/
|
|
_PROTOTYPE( void ddekit_pgtab_set_region_with_size,
|
|
(void *virt, ddekit_addr_t phys, int size, int type));
|
|
|
|
|
|
/**
|
|
* Clear virtual->physical mapping for VM region
|
|
*
|
|
* \param virt virtual start address for region
|
|
* \param type pgtab type for region
|
|
*/
|
|
_PROTOTYPE( void ddekit_pgtab_clear_region,
|
|
(void *virt, int type));
|
|
|
|
/**
|
|
* Get physical address for virtual address
|
|
*
|
|
* \param virt virtual address
|
|
*
|
|
* \return physical address
|
|
*/
|
|
_PROTOTYPE( ddekit_addr_t ddekit_pgtab_get_physaddr, (const void *virt));
|
|
|
|
/**
|
|
* Get virtual address for physical address
|
|
*
|
|
* \param physical physical address
|
|
*
|
|
* \return virtual address
|
|
*/
|
|
_PROTOTYPE( ddekit_addr_t ddekit_pgtab_get_virtaddr,
|
|
(const ddekit_addr_t physical));
|
|
|
|
/**
|
|
* Get type of VM region.
|
|
*
|
|
* \param virt virtual address
|
|
|
|
* \return VM region type
|
|
*/
|
|
_PROTOTYPE( int ddekit_pgtab_get_type, (const void *virt));
|
|
|
|
/**
|
|
* Get size of VM region.
|
|
*
|
|
* \param virt virtual address
|
|
*
|
|
* \return VM region size (in bytes)
|
|
*/
|
|
_PROTOTYPE( int ddekit_pgtab_get_size, (const void *virt));
|
|
|
|
#endif
|