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

119 lines
3.8 KiB
C

/* mmuLib.h - mmuLib header file */
/* Copyright 1984-2004 Wind River Systems, Inc. */
/*
modification history
--------------------
01r,15nov04,h_k renamed mmuSh7750LibInit to mmuShLibInit. removed
mmuSh7700LibInit.
01q,22oct04,pch SPR 102912: add #ifndef _ASMLANGUAGE
01p,29sep04,pcs Update the prototype of mmuPpcLibInit to use 2 more
parameters.
01o,06aug04,sru Add S_mmulib_LOCK_REQUIRED errno.
01n,06jul04,dtr Add in errno values for aimMmu to fix SPR 98263.
01m,20jan03,jb Resolving SPR 79707
01l,01mar00,frf Add SH4 support for T2.
01k,28aug98,st added prototype for mmuSh7750LibInit.
01j,15nov96,wt added prototype for mmuSh7700LibInit.
02b,20jan99,cdp removed support for old ARM libraries.
01l,12nov98,cdp removed prototype mmuLibInit() for new ARM architectures.
01k,09apr98,hdn added PentiumPro support.
01j,19sep95,tpr added prototype mmuPpcLibInit() for PowerPC.
01i,24nov93,hdn added prototype mmuLibInit() for I80X86.
01i,02dec93,pme added Am29K family support.
01h,01oct92,jcf rolled out 01g to remove warnings.
01g,27sep92,kdl deleted prototypes for mmu1eLibInit, mmu30LibInit, mmu40LibInit
01f,22sep92,rrr added support for c++
01e,22sep92,rdc added support for sun1e.
01d,17sep92,rdc added prototypes and errors for sun1e.
01c,30jul92,rdc added prototypes for mmu30LibInit and mmu40LibInit.
01b,28jul92,rdc removed superfluous function prototypes.
01a,08jul92,rdc written.
*/
#ifndef __INCmmuLibh
#define __INCmmuLibh
#ifdef __cplusplus
extern "C" {
#endif
#define S_mmuLib_INVALID_PAGE_SIZE (M_mmuLib | 1)
#define S_mmuLib_NO_DESCRIPTOR (M_mmuLib | 2)
#define S_mmuLib_INVALID_DESCRIPTOR (M_mmuLib | 3)
/* sun4 specific codes */
#define S_mmuLib_OUT_OF_PMEGS (M_mmuLib | 5)
/* virtual addresses must be in the first or last 1/2 Gibabyte of
* virtual address space
*/
#define S_mmuLib_VIRT_ADDR_OUT_OF_BOUNDS (M_mmuLib | 6)
/* additional errno required by aim */
/* Trying to change state of locked page or lock again is illegal */
#define S_mmuLib_TLB_LOCKED_PAGE (M_mmuLib | 7)
/* Trying to unlock a region which is not locked is an error */
#define S_mmuLib_TLB_PAGE_NOT_LOCKED (M_mmuLib | 8)
#define S_mmuLib_LOCK_NO_MORE_TLB_RESOURCES (M_mmuLib | 9)
/* Cannot optimize or lock a non contiguous phys addr or state*/
#define S_mmuLib_NOT_CONTIGUOUS_ADDR (M_mmuLib | 10)
#define S_mmuLib_NOT_CONTIGUOUS_STATE (M_mmuLib | 11)
/* Cannot optimize or lock a page marked as ISR callable */
/* Cannot change state of page in ISR unless marked */
#define S_mmuLib_ISR_CALL_BLOCKED (M_mmuLib | 12)
#define S_mmuLib_MARKED_ISR_CALLABLE (M_mmuLib | 13)
/* Illegal to lock a non global page */
#define S_mmuLib_NOT_GLOBAL_PAGE (M_mmuLib | 15)
/* Illegal to unlock a region required by the vxWorks kernel */
#define S_mmulib_LOCK_REQUIRED (M_mmuLib | 16)
#ifndef _ASMLANGUAGE
typedef struct mmuTransTblStruct * MMU_TRANS_TBL_ID;
#if defined(__STDC__) || defined(__cplusplus)
STATUS mmu30LibInit (int pageSize);
STATUS mmu40LibInit (int pageSize);
STATUS mmu1eLibInit (int pageSize);
#if (CPU_FAMILY != ARM)
STATUS mmuLibInit (int pageSize);
#endif
STATUS mmuPro32LibInit (int pageSize);
STATUS mmuPro36LibInit (int pageSize);
STATUS mmuAm29kLibInit (int pageSize);
STATUS mmuPpcLibInit (int mmuType, int * pPhysMemDesc, int elementNb, int *,
void * hashTableStartAddr,u_int hashTableSize);
STATUS mmuShLibInit (int pageSize);
#else /* __STDC__ */
STATUS mmu30LibInit ();
STATUS mmu40LibInit ();
STATUS mmu1eLibInit ();
#if (CPU_FAMILY != ARM)
STATUS mmuLibInit ();
#endif
STATUS mmuPro32LibInit ();
STATUS mmuPro36LibInit ();
STATUS mmuAm29kLibInit ();
STATUS mmuPpcLibInit ();
STATUS mmuShLibInit ();
#endif /* __STDC__ */
#endif /* _ASMLANGUAGE */
#ifdef __cplusplus
}
#endif
#endif /* __INCmmuLibh */