ngspice/contrib/mslib/datadef.h

88 lines
1.7 KiB
C

/*
* MW. Include for spice
*/
#ifndef ngspice_DATADEF_H
#define ngspice_DATADEF_H
/*
* Program defaults
*
* *Directory for input file and input libraries
*/
#define DECKPATH "./"
#define LIBPATH "/usr/local/lib/"
/*
* Name for output library file
*/
#define TMPLIBNAME ".lib" /*
* * * * actual name is "deck.TMPLIBNAME"
*/
/*
* Command for libraries, subckts and models declaration
*/
#define LIBINVL "*LIB"
#define SUBINVL "*SUB"
#define MODINVL "*MOD"
/*
* Keywords for subckt start, end and model
*/
#define SUBLINE ".SUBCKT"
#define SUBEND ".ENDS"
#define MODLINE ".MODEL"
#define MODEND
#define LIBMESSAGE "* MW Library include for Spice"
#define BSIZE 255
#define MODDLINE 1
#define SUBDLINE 4
#define LIBDLINE 8
#define SUBLLINE 16
#define MODLLINE 32
#define ENDSLLINE 64
#define CONTLLINE 128
#define NORMLINE 0
#define WRITESUB 0xffff
#define WRITEMOD 0x1111
#define NOWRITE 0x0
#define FAILED 0xffffff
#define SUCCESS 0
#define IS_LIB 0x1
#define LIB_OPEN 0x2
#define IS_MOD 0x10
#define IS_SUB 0x100
#define FINDED 0x400
#define DUPLICATE 0x800
#define DECK_OPEN 0x20000
#define TLIB_OPEN 0x100000
#define NAMEVALID 0xfff
#define NAMENOTV 0x0
struct LSData
{
char name[BSIZE];
FILE *filedes;
int flag;
struct LSData *prevLS;
struct LSData *nextLS;
};
struct LSData *LSinsert(struct LSData *LS, struct LSData *where);
struct LSData *LSclear(struct LSData *LS);
struct LSData *Backfree(struct LSData *LS);
int readdeck(FILE * tdeck, struct LSData *lib, \
struct LSData *sub, struct LSData *mod);
int readlib(struct LSData *lib, FILE * tlib, \
struct LSData *firstSUB, struct LSData *firstMOD);
int checkname(struct LSData *smp, char *name);
#endif