88 lines
1.7 KiB
C
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
|