55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
|
|
/*
|
||
|
|
* Minimal stub of ngspice's sharedspice.h for KiCad WASM builds.
|
||
|
|
*
|
||
|
|
* Only the type names referenced by kicad/eeschema/sim/ngspice.{h,cpp} need
|
||
|
|
* to exist. The eeschema sim layer compiles but the simulator frame is never
|
||
|
|
* instantiated in WASM (FRAME_SIMULATOR's try/catch in IFACE::CreateKiWindow
|
||
|
|
* catches the init failure and returns nullptr).
|
||
|
|
*
|
||
|
|
* We intentionally do NOT define NGSPICE_PACKAGE_VERSION so that ngspice.h's
|
||
|
|
* fallback `typedef bool NG_BOOL;` (line 46) provides the boolean type.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef KICAD_WASM_NGSPICE_SHAREDSPICE_STUB_H
|
||
|
|
#define KICAD_WASM_NGSPICE_SHAREDSPICE_STUB_H
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
typedef struct ngcomplex {
|
||
|
|
double cx_real;
|
||
|
|
double cx_imag;
|
||
|
|
} ngcomplex_t;
|
||
|
|
|
||
|
|
struct vector_info {
|
||
|
|
char* v_name;
|
||
|
|
int v_type;
|
||
|
|
short v_flags;
|
||
|
|
double* v_realdata;
|
||
|
|
ngcomplex_t* v_compdata;
|
||
|
|
int v_length;
|
||
|
|
};
|
||
|
|
|
||
|
|
typedef struct vector_info* pvector_info;
|
||
|
|
|
||
|
|
/* Opaque payload types for callbacks we never wire up (SendData/SendInitData). */
|
||
|
|
typedef struct vecvaluesall* pvecvaluesall;
|
||
|
|
typedef struct vecinfoall* pvecinfoall;
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Function types (not pointers). ngspice.h references them as `SendChar*` etc.,
|
||
|
|
* so the trailing star in the typedef site makes the pointer.
|
||
|
|
*/
|
||
|
|
typedef int (SendChar)(char*, int, void*);
|
||
|
|
typedef int (SendStat)(char*, int, void*);
|
||
|
|
typedef int (ControlledExit)(int, bool, bool, int, void*);
|
||
|
|
typedef int (SendData)(pvecvaluesall, int, int, void*);
|
||
|
|
typedef int (SendInitData)(pvecinfoall, int, void*);
|
||
|
|
typedef int (BGThreadRunning)(bool, int, void*);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* KICAD_WASM_NGSPICE_SHAREDSPICE_STUB_H */
|