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

132 lines
4.9 KiB
C

/* symLib.h - symbol table subroutine library header */
/*
* Copyright (c) 1984-2005 Wind River Systems, Inc.
*
* The right to copy, distribute, modify or otherwise make use of this software
* may be licensed only pursuant to the terms of an applicable Wind River
* license agreement.
*/
/*
modification history
--------------------
04k,14apr05,v_r Marked obsolete errnos.
04j,03mar05,v_r Fixed SPR #98274 (loader backward compatibility errno review).
Cleanups + code conventions compliancy work.
04i,06apr04,jn Clean up - remove unused declarations and development-related
comments (merge work done in AE loader here)
04h,03apr03,to added status codes.
04g,15oct01,jn move private funcs into symLibP.h
04f,04sep98,cdp make Thumb-specific changes dependent on ARM_THUMB.
04e,02dec97,cdp added thumbSymTblAdd().
04d,30oct96,elp Added syncSymAddRtn, symSymRemoveRtn function pointers and
symSAdd().
04c,22sep92,rrr added support for c++
04b,28jul92,jmm added prototype for symAdd
04a,04jul92,jcf cleaned up.
03t,22jun92,jmm removed symFooWithGroup, added parameter to routines instead
03s,26may92,rrr the tree shuffle
03r,15may92,jmm Changed "symFooGroup" to "symFooWithGroup"
03i,30apr92,jmm Added support for goup numbers
03h,02jan92,gae used UINT's for value in symFindByValue{AndType}.
03g,13dec91,gae made symFindByCName() consistent with other symFind* routines.
03f,26nov91,llk added symName().
03e,04oct91,rrr passed through the ansification filter
-changed copyright notice
03d,05oct90,dnw deleted private functions.
03c,05oct90,shl added ANSI function prototypes.
added copyright notice.
03b,26jun90,jcf removed symbol table id error.
03a,22nov89,jcf changed for hasing/multiple access implementation
02d,30may88,dnw changed to v4 names.
02c,24dec86,gae changed stsLib.h to vwModNum.h.
02b,05jun86,dnw changed SYMTAB structure to have ptr to symbol array
instead of imbedded array.
02a,11oct85,dnw changed SYMTAB structure to have maxSymbols instead of
string table pool pointer.
deleted obsolete definition of MAX_SYM_LENGTH.
01g,11jun85,rdc added maxSymLength and free to the SYMTAB structure.
These were necessary
for variable symbol length.
01f,13aug84,ecs deleted status code S_sysLib_EMPTY_SYMBOL_TABLE.
01e,08aug84,ecs added include of stsLib.h, symLib status codes.
01d,27jun84,ecs changed length of name in SYMBOL to allow room for EOS.
01c,15jun84,dnw moved typedefs for SYMBOL and SYMTAB here from symLib.c.
added typedef for SYMTAB_ID.
01b,27jan84,ecs added inclusion test.
01a,03aug83,dnw written
*/
#ifndef __INCsymLibh
#define __INCsymLibh
#ifdef __cplusplus
extern "C" {
#endif
#ifdef HOST
#include "tgtmem.h"
#endif
#include "symbol.h"
/* status codes */
#define S_symLib_SYMBOL_NOT_FOUND (M_symLib | 1)
#define S_symLib_NAME_CLASH (M_symLib | 2)
#define S_symLib_TABLE_NOT_EMPTY (M_symLib | 3)
#define S_symLib_SYMBOL_STILL_IN_TABLE (M_symLib | 4) /* obsoleted */
#define S_symLib_INVALID_SYMBOL_NAME (M_symLib | 5)
#define S_symLib_INVALID_SYMTAB_ID (M_symLib | 12)
#define S_symLib_INVALID_SYM_ID_PTR (M_symLib | 13)
/* Type definitions */
typedef struct symtab * SYMTAB_ID;
/* default group number */
IMPORT UINT16 symGroupDefault;
IMPORT FUNCPTR syncSymAddRtn;
IMPORT FUNCPTR syncSymRemoveRtn;
/* function declarations */
extern STATUS symAdd (SYMTAB_ID symTblId, char *name, char *value,
SYM_TYPE type, UINT16 group);
extern STATUS symByValueAndTypeFind (SYMTAB_ID symTblId, UINT value,
char ** pName, int * pValue,
SYM_TYPE * pType, SYM_TYPE sType,
SYM_TYPE mask);
extern STATUS symByValueFind (SYMTAB_ID symTblId, UINT value, char ** pName,
int * pValue, SYM_TYPE * pType);
extern SYMBOL * symEach (SYMTAB_ID symTblId, FUNCPTR routine, int routineArg);
extern STATUS symFindByNameAndType (SYMTAB_ID symTblId, char * name,
char** pValue, SYM_TYPE *pType,
SYM_TYPE sType, SYM_TYPE mask);
extern STATUS symFindByName(SYMTAB_ID symTblId, char * name, char ** pValue,
SYM_TYPE * pType);
extern STATUS symFindByValueAndType (SYMTAB_ID symTblId, UINT value,
char * name, int *pValue,
SYM_TYPE * pType, SYM_TYPE sType,
SYM_TYPE mask);
extern STATUS symFindByValue(SYMTAB_ID symTblId, UINT value, char * name,
int * pValue, SYM_TYPE * pType);
extern STATUS symFree (SYMTAB_ID symTblId, SYMBOL *pSymbol);
extern STATUS symLibInit (void);
extern STATUS symRemove (SYMTAB_ID symTblId, char *name, SYM_TYPE type);
extern void symShowInit (void);
extern STATUS symShow (SYMTAB_ID symTblId, char *substr);
extern STATUS symTblAdd (SYMTAB_ID symTblId, SYMBOL *pSymbol);
extern SYMTAB_ID symTblCreate (int hashSizeLog2, BOOL sameNameOk,
PART_ID symPartId);
extern STATUS symTblDelete (SYMTAB_ID symTblId);
extern STATUS symTblRemove (SYMTAB_ID symTblId, SYMBOL *pSymbol);
#ifdef __cplusplus
}
#endif
#endif /* __INCsymLibh */