Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

kb_symbol.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------- 00002 * kb_symbol.h - KoreBot Library - Symbol Management 00003 *-------------------------------------------------------------------- 00004 * $Id: kb_symbol.h,v 1.3 2004/09/22 08:29:14 pbureau Exp $ 00005 *-------------------------------------------------------------------- 00006 * $Author: pbureau $ 00007 * $Revision: 1.3 $ 00008 * $Date: 2004/09/22 08:29:14 $ 00009 *--------------------------------------------------------------------*/ 00010 00011 #ifndef __kb_symbol__ 00012 #define __kb_symbol__ 00013 00014 /*-------------------------------------------------------------------- 00015 * Symbol Constants Definition 00016 */ 00017 #define KB_SYMBOL_TYPE_NONE -1 /* Entry not used */ 00018 #define KB_SYMBOL_TYPE_SECTION 0 /* Section */ 00019 #define KB_SYMBOL_TYPE_ALIAS 1 /* Alias */ 00020 #define KB_SYMBOL_TYPE_DEVICE 2 /* Device */ 00021 #define KB_SYMBOL_TYPE_REGISTER 3 /* Register */ 00022 #define KB_SYMBOL_NAME_SIZE 128 /* Maximal length of a symbol name */ 00023 #define KB_SYMBOL_TABLE_SIZE 141 00024 00025 /*-------------------------------------------------------------------- 00026 * Symbol Type Definition 00027 */ 00028 typedef struct kb_symbol_s 00029 { 00030 /* Symbol Name */ 00031 char name[ KB_SYMBOL_NAME_SIZE ]; 00032 00033 /* Symbol Type */ 00034 int type; 00035 00036 int alloc; 00037 00043 unsigned int value; 00044 00045 /* Next Symbol in the list */ 00046 struct kb_symbol_s * next; 00047 } 00048 kb_symbol_t; 00049 00050 /*-------------------------------------------------------------------- 00051 * Symbol Table Definition 00052 */ 00053 typedef struct kb_table_s 00054 { 00055 pthread_mutex_t lock; 00056 kb_symbol_t *symbols[ KB_SYMBOL_TABLE_SIZE ]; 00057 unsigned int count; 00058 } 00059 kb_symbol_table_t; 00060 00061 /*-------------------------------------------------------------------- 00062 * Public Prototype Declarations 00063 */ 00064 00065 extern kb_symbol_table_t * kb_create_symbol_table( kb_symbol_table_t * table ); 00066 00067 extern void kb_destroy_symbol_table( kb_symbol_table_t * table ); 00068 00069 extern unsigned long kb_hash( const char * name ); 00070 00071 extern int kb_add_symbol( kb_symbol_table_t * table , 00072 kb_symbol_t * new ); 00073 00074 extern kb_symbol_t * kb_lookup_symbol( kb_symbol_table_t * table , 00075 const char * name ); 00076 00077 extern void kb_dump_symbol_table( kb_symbol_table_t * table ); 00078 00079 extern const char * kb_symbol_type_names[]; 00080 00081 #endif /* __kb_symbol__ */

Generated on Thu Nov 17 15:28:57 2005 for KoreBot Library by doxygen 1.3.7