docs.sheetjs.com/docz/static/stata/stplugin.h
2025-05-06 20:21:41 -04:00

247 lines
6.1 KiB
C

/*
stplugin.h, version 3.0.0
copyright (c) 2003, 2004, 2006, 2015 StataCorp LP
*/
#if !defined(STPLUGIN_H)
#define STPLUGIN_H
#if !defined(SD_FASTMODE)
#define SD_SAFEMODE
#endif
#define HP9000 1
#define OPUNIX 2
#define APPLEMAC 3
#define STWIN32 4
#ifndef SYSTEM
#define SYSTEM STWIN32
#endif
typedef signed char ST_sbyte ;
typedef unsigned char ST_ubyte ;
typedef int ST_int ;
typedef unsigned ST_unsigned ;
typedef short int ST_int2 ;
typedef int ST_int4 ;
typedef long ST_long ;
typedef unsigned int ST_uint4 ;
typedef float ST_float ;
typedef double ST_double ;
typedef unsigned char ST_boolean ;
typedef int ST_retcode ;
typedef double * ST_dmkey ;
#if !defined(bTrue)
#define bTrue 1
#define bFalse 0
#endif
#define SF_HIWORD(x) ((ST_int2)((ST_int4)(x)>>16))
#define SF_LOWORD(x) ((ST_int2)(x))
#define SF_MAKELONG(x,y) ((ST_int4)(((ST_int2)(x))|((ST_int4)((ST_int2)(y)))<<16))
#if SYSTEM==STWIN32
#if __cplusplus
#define STDLL extern "C" __declspec(dllexport) ST_retcode
#else
#define STDLL extern __declspec(dllexport) ST_retcode
#endif
#endif
#if SYSTEM!=STWIN32
#if SYSTEM==HP9000
#include <dl.h>
#endif
#if SYSTEM==OPUNIX
#include <dlfcn.h>
#endif
#if __cplusplus
#define STDLL extern "C" ST_retcode
#else
#define STDLL ST_retcode
#endif
#define LPSTR char *
#endif
typedef struct {
ST_int type ;
ST_int nel ;
ST_int m ;
ST_int n ;
} ST_matinfo ;
#define SD_PLUGINMAJ 3
#define SD_PLUGINMIN 0
#define SD_PLUGINVER SF_MAKELONG(SD_PLUGINMAJ,SD_PLUGINMIN)
typedef void (* ST_VV) (void) ;
typedef ST_int (* ST_IV) (void) ;
typedef ST_int (* ST_IS) (char *) ;
typedef void (* ST_VU) (ST_ubyte) ;
typedef ST_boolean (* ST_BI) (ST_int) ;
typedef ST_boolean (* ST_BII) (ST_int,ST_int) ;
typedef ST_boolean (* ST_BD) (ST_double) ;
typedef ST_int (* ST_III) (ST_int,ST_int) ;
typedef ST_double (* ST_DII) (ST_int,ST_int) ;
typedef ST_double (* ST_DV) (void) ;
typedef ST_double (* ST_DD) (ST_double) ;
typedef ST_double (* ST_DDD) (ST_double,ST_double) ;
typedef ST_int (* ST_ISS) (char *,char *) ;
typedef ST_int (* ST_ISI) (char *,ST_int) ;
typedef ST_int (* ST_ISSI) (char *,char *,ST_int) ;
typedef void (* ST_VSD) (char *,ST_double) ;
typedef ST_int (* ST_ISD) (char *, ST_double) ;
typedef ST_int (* ST_ISDp) (char *,ST_double *) ;
typedef ST_int (* ST_ISDpIIIII) (char *,ST_int,ST_double *,ST_int,ST_int,ST_int,ST_int,ST_int) ;
typedef ST_int (* ST_ISIID) (char *, ST_int, ST_int, ST_double) ;
typedef ST_int (* ST_ISIIDp) (char *,ST_int,ST_int,ST_double *) ;
typedef ST_int (* ST_ISDpI) (char *,ST_double *,ST_int) ;
typedef void (* ST_VSMip) (char *,ST_matinfo *) ;
typedef ST_int (* ST_IIIDp) (ST_int, ST_int, ST_double *) ;
typedef ST_int (* ST_IIID) (ST_int, ST_int, ST_double) ;
typedef char * (* ST_SSI) (char *,ST_int) ;
typedef char * (* ST_SSSD) (char *,char *,ST_double) ;
typedef char * (* ST_SSSDM) (char *,char *,ST_double, ST_dmkey) ;
typedef ST_int (* ST_IIIS) (ST_int, ST_int, char *) ;
typedef ST_int (* ST_IIISI) (ST_int, ST_int, char *, ST_int) ;
typedef struct {
ST_IS spoutsml ;
ST_IS spoutnosml ;
ST_VV spoutflush ;
ST_VU set_outputlevel ;
ST_ISI get_input ;
ST_IV pollstd ;
ST_IV pollnow ;
ST_SSSD safereforms ;
ST_SSSDM safereforml ;
ST_SSI gettok ;
ST_ISS macresave ;
ST_ISSI macuse ;
ST_ISDp scalaruse ;
ST_ISDp scalarsave ;
ST_ISDpIIIII matrixstore ;
ST_ISDpI matrixload ;
ST_VSMip matrixinfo ;
ST_ISIIDp matrixel ;
ST_int matsize ;
ST_DII data, safedata ;
ST_IV nobs ;
ST_IV nvar ;
ST_double missval ;
ST_BD ismissing ;
ST_ISI stfindvar ;
ST_BI isstr ;
ST_VSD abvarfcn ;
ST_int *stopflag ;
ST_DDD stround ;
ST_DD stsqrt ;
ST_DDD stpow ;
ST_DD stlog ;
ST_DD stexp ;
ST_DV strandom ;
ST_IIID store ;
ST_IIID safestore ;
ST_IIIS sstore ;
ST_BI selobs ;
ST_IV nobs1 ;
ST_IV nobs2 ;
ST_IV nvars ;
ST_IS spouterr ;
ST_ISIIDp safematel ;
ST_ISIID safematstore ;
ST_ISIIDp matel ;
ST_ISIID matstore ;
ST_IIIDp safevdata ;
ST_IIIDp vdata ;
ST_IS colsof ;
ST_IS rowsof ;
ST_ISD scalsave ;
ST_IIIS sdata ;
ST_int2 major ;
ST_int2 minor ;
ST_BI isstrl ;
ST_BII isbinary ;
ST_III sdatalen ;
ST_IIISI strldata ;
} ST_plugin ;
#if __cplusplus
extern "C" ST_plugin *_stata_ ;
#else
extern ST_plugin *_stata_ ;
#endif
STDLL pginit(ST_plugin *p) ;
#define SF_display(a) ((_stata_)->spoutsml((a)))
#define SF_error(a) ((_stata_)->spouterr((a)))
#define SF_poll ((_stata_)->pollstd)
#define SW_stopflag (*((_stata_)->stopflag))
#define SF_macro_save(m,t) ((_stata_)->macresave((m),(t)))
#define SF_macro_use(m,d,l) ((_stata_)->macuse((m),(d),(l)))
#define SF_scal_use(s,d) ((_stata_)->scalaruse((s),(d)))
#define SF_scal_save(s,d) ((_stata_)->scalsave((s),(d)))
#if defined(SD_SAFEMODE)
#define SF_mat_el(s,r,c,d) ((_stata_)->safematel((s),(r),(c),(d)))
#define SF_mat_store(s,r,c,d) ((_stata_)->safematstore((s),(r),(c),(d)))
#else
#define SF_mat_el(s,r,c,d) ((_stata_)->matel((s),(r),(c),(d)))
#define SF_mat_store(s,r,c,d) ((_stata_)->matstore((s),(r),(c),(d)))
#endif
#define SV_matsize ((_stata_)->matsize)
#define SF_col(s) ((_stata_)->colsof((s)))
#define SF_row(s) ((_stata_)->rowsof((s)))
#if defined(SD_SAFEMODE)
#define SF_vdata(i,j,d) ((_stata_)->safevdata((i),(j),(d)))
#define SF_vstore(i,j,v) ((_stata_)->safestore((i),(j),(v)))
#else
#define SF_vdata(i,j,d) ((_stata_)->vdata((i),(j),(d)))
#define SF_vstore(i,j,v) ((_stata_)->store((i),(j),(v)))
#endif
#define SF_nobs ((_stata_)->nobs)
#define SF_in1 ((_stata_)->nobs1)
#define SF_in2 ((_stata_)->nobs2)
#define SF_nvar ((_stata_)->nvar)
#define SF_nvars ((_stata_)->nvars)
#define SF_sstore(i,j,s) ((_stata_)->sstore((i),(j),(s)))
#define SF_sdata(i,j,s) ((_stata_)->sdata((i),(j),(s)))
#define SF_strldata(i,j,s,l) ((_stata_)->strldata((i),(j),(s),(l)))
#define SF_sdatalen(i,j) ((_stata_)->sdatalen((i),(j)))
#define SF_var_is_string(a) ((_stata_)->isstr(a))
#define SF_var_is_strl(a) ((_stata_)->isstrl(a))
#define SF_var_is_binary(i,j) ((_stata_)->isbinary((i),(j)))
#define SV_missval ((_stata_)->missval)
#define SF_is_missing(z) ((_stata_)->ismissing(z))
#define SF_ifobs(z) ((_stata_)->selobs(z))
#endif