10f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#ifndef SPEC_H 20f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#define SPEC_H 30f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 40f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#include <string.h> 50f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#include <stdlib.h> 60f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 70f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#if __cplusplus 80f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern "C" { 90f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif 100f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 110f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern int num_lines; 120f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 130f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinestypedef struct { 140f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int isConst; 150f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int type; 160f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int bits; 170f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int ptrLevel; 180f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines char name[256]; 190f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines char typeName[256]; 200f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines} VarType; 210f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 220f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern VarType *currType; 230f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 240f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinestypedef struct { 250f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines char name[256]; 260f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int sync; 270f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int handcodeApi; 280f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int direct; 290f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int nocontext; 300f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines int paramCount; 310f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines VarType ret; 320f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines VarType params[16]; 330f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines} ApiEntry; 340f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 350f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern ApiEntry apis[128]; 360f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern int apiCount; 370f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 380f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern int typeNextState; 390f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 400f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#if __cplusplus 410f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines} // extern "C" 420f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif 430f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 440f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif // SPEC_H 45