=================================================================== RCS file: /home/cvs/OpenXM/src/ox_math/mlo.h,v retrieving revision 1.4 retrieving revision 1.8 diff -u -p -r1.4 -r1.8 --- OpenXM/src/ox_math/mlo.h 2000/01/22 06:30:23 1.4 +++ OpenXM/src/ox_math/mlo.h 2003/03/23 21:56:11 1.8 @@ -1,10 +1,15 @@ -/* $OpenXM$ */ +/* $OpenXM: OpenXM/src/ox_math/mlo.h,v 1.7 2003/02/12 08:28:41 ohara Exp $ */ #ifndef _MLO_H_ #define _MLO_H_ -#include "ox.h" +#include +#define RESERVE_INTERRUPTION 1 +#define INTERRUPTED 2 +#define RESERVE_ABORTION 4 +#define ABORTED 8 + /* definitions of Mathlink Local Objects. */ typedef struct { int tag; @@ -15,7 +20,9 @@ typedef struct { typedef cmo mlo; typedef cmo_string mlo_string; +#if defined(WITH_GMP) typedef cmo_zz mlo_zz; +#endif mlo_function *new_mlo_function(char *function); @@ -26,18 +33,27 @@ cmo *receive_mlo_function(); cmo *convert_mlo_to_cmo(mlo *m); cmo *receive_mlo_function_newer(); cmo *receive_mlo_symbol(); +mlo *receive_mlo_error(); +mlo *receive_mlo_real(); int send_mlo(cmo *m); -int send_mlo_int32(cmo *m); -int send_mlo_string(cmo *m); -int send_mlo_zz(cmo *m); -int send_mlo_list(cmo *c); +int ml_abort(); +int ml_interrupt(); +int ml_next_packet(); +int ml_new_packet(); +int ml_read_packet(); int ml_init(); int ml_exit(); int ml_flush(); int ml_select(); int ml_evaluateStringByLocalParser(char *str); int ml_executeFunction(char *function, int argc, cmo *argv[]); +mlo *ml_return(); +/* state management for the OpenXM robust interruption */ +unsigned ml_state_set(unsigned fl); +unsigned ml_state_clear(unsigned fl); +unsigned ml_state(unsigned fl); +void ml_state_clear_all(); #endif