blob: 749fd6fbaf569b36df3849630d8ee1a3410e4daa [file] [log] [blame]
/* 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