1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
/* tag: dict management headers
*
* Copyright (C) 2003 Patrick Mauritz, Stefan Reinauer
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#ifndef __DICT_H
#define __DICT_H
#define DICTID "OpenBIOS"
#define DOSEMIS 0
#define DOCOL 1
#define DOLIT 2
#define DOCON 3
#define DOVAR 4
#define DODFR 5
#define DODOES 6
#define MAXNFALEN 128
/* The header is 28/32 bytes on 32/64bit platforms */
typedef struct dictionary_header {
char signature[8];
u8 version;
u8 cellsize;
u8 endianess;
u8 compression;
u8 relocation;
u8 reserved[3];
u32 checksum;
u32 length;
ucell last;
} __attribute__((packed)) dictionary_header_t;
ucell lfa2nfa(ucell ilfa);
ucell load_dictionary(const char *data, ucell len);
void dump_header(dictionary_header_t *header);
ucell fstrlen(ucell fstr);
void fstrncpy(char *dest, ucell src, unsigned int maxlen);
ucell findsemis(ucell xt);
ucell findxtfromcell_wordlist(ucell incell, ucell wordlist);
ucell findxtfromcell(ucell incell);
/* program counter */
extern ucell PC;
extern unsigned char *dict;
extern cell dicthead;
extern ucell *last;
#ifdef FCOMPILER
extern ucell *trampoline;
#endif
#endif
|