| /* 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 cell dictlimit; |
| extern ucell *last; |
| #ifdef FCOMPILER |
| extern ucell *trampoline; |
| #endif |
| |
| #endif |