/* Header for module logdig, generated by p2c */
#ifndef LOGDIG_H
#define LOGDIG_H



#ifndef LOGDEF_H
#include "logdef.h"
#endif

#ifndef SYSGLOBALS_H
#include <p2c/sysglobals.h>
#endif


#ifdef LOGDIG_G
# define vextern
#else
# define vextern extern
#endif



#define log_16_simtype  16


typedef enum {
  log_none, log_zero, log_one
} log_16_value;
typedef short log_16_viarr[(long)log_one - (long)log_none + 1];
typedef log_16_value log_16_ivarr[4];
typedef boolean log_16_vbarr[(long)log_one - (long)log_none + 1];
typedef log_16_value log_16_bvarr[2 - false];

typedef struct log_16_kindinfo {
  na_long info;
  Char internally_defined_stuff;
} log_16_kindinfo;

typedef enum {
  act_16_new, act_16_dispose, act_16_copy, act_16_read, act_16_write,
  act_16_sim, act_16_draw, act_16_erase, act_16_touch, act_16_configgate,
  act_16_configchgate, act_16_configrelgate, act_16_connect,
  act_16_disconnect, act_16_reset, act_16_refnodes, act_16_gengate,
  act_16_newkind, act_16_disposekind, act_16_genkind, act_16_cnf,
  act_16_immed, act_16_func
} log_16_actionkinds;

typedef struct log_16_action {
  log_16_actionkinds action;
  log_action *lact;
  Void (*hook_input) PP((log_action *lact, log_nrec *n, log_16_value *v));
  Void (*hook_output) PP((log_action *lact, log_nrec *n, log_16_value v));
  Void (*hook_ocoutput) PP((log_action *lact, log_nrec *n, log_16_value v));
  Void (*hook_led) PP((log_action *lact, int x, int y, log_16_value v));
  Void (*hook_eraled) PP((log_action *lact, int x, int y));
  Void (*hook_plotled) PP((log_action *lact, int x, int y, log_16_value v));
} log_16_action;

#if OS2
#ifndef LOGDIG_G
vextern Const log_16_viarr log_16_vi;
vextern Const log_16_ivarr log_16_iv;
vextern Const log_16_vbarr log_16_vb;
vextern Const log_16_bvarr log_16_bv;
#endif
#else
vextern Const log_16_viarr log_16_vi;
vextern Const log_16_ivarr log_16_iv;
vextern Const log_16_vbarr log_16_vb;
vextern Const log_16_bvarr log_16_bv;
#endif

#undef vextern

#endif /*LOGDIG_H*/

/* End. */
