Files
vxWorks/h/aimMmuBaseLib.h
2025-08-20 18:25:46 +08:00

71 lines
1.7 KiB
C

/* aimMmuBaseLib.h - Base of the MMU Architecture Independent Manager */
/* Copyright 1984-2004 Wind River Systems, Inc. */
/*
modification history
--------------------
01b,31aug04,dtr Add new attribute available for tlb locking.
01a,07jun04,sru written
*/
#ifndef __INCaimMmuBaseLibh
#define __INCaimMmuBaseLibh
#ifdef __cplusplus
extern "C" {
#endif
#include "vxWorks.h"
/* typedefs */
/*
* MMU_ARCH_LIB_ATTRS is a data structure that is allocated by the AIM
* base library. It is filled in with MMU-specific attributes during
* the initialization of the architecture-dependent MMU library. From
* that point forward, the data structure is used by the AIM for its
* internal management.
*/
typedef struct
{
/* fields filled in by the AD-MMU */
UINT pageSizeMask;
UINT lockSizeMask;
UINT contextMin; /* inclusive */
UINT contextMax; /* inclusive */
UINT pteSize; /* units are bytes */
UINT contextTblAlign;
UINT regionTblNumEntries;
UINT pageTblNumEntries;
UINT tlbNumEntries; /* sum of hardware TLB resources */
UINT tlbLockNumEntries; /* sum of hardware TLB resources available
for locking */
UINT sizeOfRegionTbl;
UINT sizeOfPageTbl;
UINT sizeOfContextTbl;
/* fields filled in by the AIM during initialization */
UINT pageSize;
UINT blockSize;
UINT regionShift; /* rightward bitshift to create region idx */
UINT regionMask; /* post-shift mask of region idx */
UINT pageShift; /* rightward bitshift to create page idx */
UINT pageMask; /* post-shift mask of page idx */
} MMU_ARCH_LIB_ATTRS;
/* externs */
extern STATUS aimMmuBaseLibInit ();
extern MMU_ARCH_LIB_ATTRS mmuArchLibAttrs;
#ifdef __cplusplus
}
#endif
#endif /* __INCaimMmuBaseLibh */