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

90 lines
3.4 KiB
C

/* adrSpaceLib.h - Address Space Library header */
/* Copyright 1998-2004 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
01s,22sep04,zl more comments
01r,31aug04,zl moved private APIs to private header file
01q,07jun04,tam added definition for option ADR_SPACE_OPT_RTP
01p,15apr04,yp Adding sysPhysMemDesc and numElems to ADR_SPACE_INFO for
testing
Added prototype for adrSpaceRAMAddToPool()
01o,05apr04,yp reworking adrSpaceLibInit call
01n,18mar04,yp removing unused prototype adrSpaceReserve
adding the kernel virtual page pool ID to ADR_SPACE_INFO
adding adrSpaceLibInit params to ADR_SPACE_INFO
01m,25nov03,yp using reserved field in page pool options for kernel space
01m,30nov03,yp adding error ADDRESS_OUT_OF_RANGE and removing PD related
errors; fixing prototype for adrSpaceLibInit;
01l,11nov03,yp adjusting ADR_SPACE_INFO structure for base 6
01k,16oct03,yp proted to base 6
01j,31aug00,pfl added S_adrSpaceLib_ALLOC_UNIT_IS_INVALID
01i,17aug00,tam added ADR_SPACE_OPT_KERNEL_PD
01h,13jun99,map added master page pools to ADR_SPACE_INFO struct.
01g,27mar00,map support for shared library and IO address space.
01f,05nov99,map added support for virtual regions.
01e,30apr99,map added support for appl PD region. removed sub-region support.
01d,28apr99,wkn added #include pgPoolLibP.h
01c,06apr99,map added adrSpace options, fixed prototypes.
01b,08feb99,tam added adrSpaceBaseGet().
01a,16sep98,map written.
*/
#ifndef __INCadrSpaceLibh
#define __INCadrSpaceLibh
#ifdef __cplusplus
extern "C" {
#endif
/* includes */
#include "vxWorks.h"
/* errnos */
#define S_adrSpaceLib_LIB_NOT_INITIALIZED (M_adrSpaceLib | 1)
#define S_adrSpaceLib_CANNOT_REINITIALIZE (M_adrSpaceLib | 2)
#define S_adrSpaceLib_PARAMETER_NOT_ALIGNED (M_adrSpaceLib | 3)
#define S_adrSpaceLib_REGION_NOT_AVAILABLE (M_adrSpaceLib | 4)
#define S_adrSpaceLib_VIRT_ADRS_NOT_ALIGNED (M_adrSpaceLib | 5)
#define S_adrSpaceLib_SIZE_IS_INVALID (M_adrSpaceLib | 6)
#define S_adrSpaceLib_INVALID_PARAMETER (M_adrSpaceLib | 7)
#define S_adrSpaceLib_VIRTUAL_OVERLAP (M_adrSpaceLib | 8)
#define S_adrSpaceLib_PHYSICAL_OVERLAP (M_adrSpaceLib | 9)
#define S_adrSpaceLib_ADDRESS_OUT_OF_RANGE (M_adrSpaceLib |10)
#define S_adrSpaceLib_INSUFFICIENT_SPACE_IN_RGN (M_adrSpaceLib |11)
#define S_adrSpaceLib_REGION_CONFLICT (M_adrSpaceLib |12)
/* typedefs */
typedef struct adr_space_info
{
UINT physAllocUnit; /* physical space allocation unit */
UINT physTotalPages; /* total system RAM physical pages*/
UINT physFreePages; /* unmapped system RAM physical pages */
UINT physMaxSize; /* largest unmapped system RAM block */
UINT kernelAllocUnit; /* kernel region allocation unit */
UINT kernelTotalPages; /* kernel region total pages */
UINT kernelFreePages; /* kernel region unmapped pages */
UINT kernelMaxSize; /* largest unmapped blk in kernel rgn */
UINT userAllocUnit; /* user region allocation unit */
UINT userTotalPages; /* user region total pages */
UINT userFreePages; /* user region unmapped pages */
UINT userMaxSize; /* largest unmapped blk in user rgn */
} ADR_SPACE_INFO;
/* function prototypes */
extern STATUS adrSpaceInfoGet (ADR_SPACE_INFO *pInfo);
extern STATUS adrSpaceRAMAddToPool (PHYS_ADDR startAddr, UINT size);
#ifdef __cplusplus
}
#endif
#endif /* __INCadrSpaceLibh */