original files of m241
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
/* wvHashTblLibP.h - header for System Viewer hash table */
|
||||
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005-2006,2010 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
|
||||
--------------------
|
||||
01c,09feb10,tcr 64bit adaptation
|
||||
01b,19dec06,tcr make hash table SMP-safe
|
||||
01a,22nov05,tcr created
|
||||
*/
|
||||
|
||||
#ifndef __INCwvHashTableLibP_h
|
||||
#define __INCwvHashTableLibP_h
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* defines */
|
||||
|
||||
#define WV_HASH_TBL_SIZE 64
|
||||
|
||||
/* types */
|
||||
|
||||
typedef struct wvHashNode
|
||||
{
|
||||
char * pEvent; /* event data */
|
||||
size_t eventSize; /* size of event data */
|
||||
_Vx_usr_arg_t key; /* hash key */
|
||||
struct wvHashNode * next; /* next node */
|
||||
} WV_HASH_NODE;
|
||||
|
||||
|
||||
typedef struct tnHashTable
|
||||
{
|
||||
int size;
|
||||
WV_HASH_NODE ** tbl; /* *tbl[] */
|
||||
SEM_ID mutex;
|
||||
} WV_HASH_TBL;
|
||||
|
||||
typedef struct wvIterKey
|
||||
{
|
||||
int index;
|
||||
WV_HASH_NODE * pCur;
|
||||
} WV_ITER_KEY;
|
||||
|
||||
|
||||
/* function declarations */
|
||||
|
||||
extern WV_HASH_TBL * wvHashTblCreate
|
||||
(
|
||||
PART_ID memPart,
|
||||
int tblSize
|
||||
);
|
||||
|
||||
extern STATUS wvHashTblDestroy
|
||||
(
|
||||
WV_HASH_TBL * pTbl,
|
||||
PART_ID memPart
|
||||
);
|
||||
|
||||
extern STATUS wvHashTblInsert
|
||||
(
|
||||
WV_HASH_TBL * pTbl,
|
||||
PART_ID memPart,
|
||||
char * pEvent,
|
||||
size_t eventSize,
|
||||
_Vx_usr_arg_t key
|
||||
);
|
||||
|
||||
extern void wvHashTblIterDone
|
||||
(
|
||||
WV_ITER_KEY * pIterKey,
|
||||
WV_HASH_TBL * pTbl
|
||||
);
|
||||
|
||||
extern WV_ITER_KEY * wvHashTblIterInit
|
||||
(
|
||||
WV_HASH_TBL * pTbl
|
||||
);
|
||||
|
||||
extern WV_HASH_NODE * wvHashTblIterNext
|
||||
(
|
||||
WV_HASH_TBL * pTbl,
|
||||
WV_ITER_KEY * pIterKey
|
||||
);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __INCwvHashTableLibP_h */
|
||||
Reference in New Issue
Block a user