version 1.1, 2018/09/19 05:45:08 |
version 1.3, 2019/03/28 06:46:04 |
|
|
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* $OpenXM$ |
* $OpenXM: OpenXM_contrib2/asir2018/io/tcpf.c,v 1.2 2018/09/28 08:20:29 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
#include "com.h" |
#include "com.h" |
#include <signal.h> |
#include <signal.h> |
#include <string.h> |
#include <string.h> |
#include <sys/types.h> |
|
#include <sys/wait.h> |
|
#include <stdlib.h> |
#include <stdlib.h> |
|
#if !defined(VISUAL) && !defined(__MINGW32__) |
#include <unistd.h> |
#include <unistd.h> |
|
#include <sys/types.h> |
|
#include <sys/wait.h> |
#include <pwd.h> |
#include <pwd.h> |
|
#endif |
|
|
#include "ox.h" |
#include "ox.h" |
|
|
Line 217 extern int mpi_myid, mpi_nprocs; |
|
Line 219 extern int mpi_myid, mpi_nprocs; |
|
|
|
void Pox_mpi_myid(Z *rp) |
void Pox_mpi_myid(Z *rp) |
{ |
{ |
STOQ(mpi_myid,*rp); |
STOZ(mpi_myid,*rp); |
} |
} |
|
|
void Pox_mpi_nprocs(Z *rp) |
void Pox_mpi_nprocs(Z *rp) |
{ |
{ |
STOQ(mpi_nprocs,*rp); |
STOZ(mpi_nprocs,*rp); |
} |
} |
#endif |
#endif |
|
|
Line 238 void Pox_get_serverinfo(NODE arg,LIST *rp) |
|
Line 240 void Pox_get_serverinfo(NODE arg,LIST *rp) |
|
if ( (m_c_tab[i].m>=0) || (m_c_tab[i].c>=0) ) { |
if ( (m_c_tab[i].m>=0) || (m_c_tab[i].c>=0) ) { |
c = m_c_tab[i].c; |
c = m_c_tab[i].c; |
ox_get_serverinfo(c,&list); |
ox_get_serverinfo(c,&list); |
STOQ(i,s_id); |
STOZ(i,s_id); |
t = mknode(2,s_id,list); |
t = mknode(2,s_id,list); |
MKLIST(l,t); |
MKLIST(l,t); |
NEXTNODE(n0,n); |
NEXTNODE(n0,n); |
Line 248 void Pox_get_serverinfo(NODE arg,LIST *rp) |
|
Line 250 void Pox_get_serverinfo(NODE arg,LIST *rp) |
|
NEXT(n) = 0; |
NEXT(n) = 0; |
MKLIST(*rp,n0); |
MKLIST(*rp,n0); |
} else { |
} else { |
i = QTOS((Q)ARG0(arg)); |
i = ZTOS((Q)ARG0(arg)); |
if ( i >= 0 && i < m_c_i && ((m_c_tab[i].m>=0) || (m_c_tab[i].c>=0)) ) |
if ( i >= 0 && i < m_c_i && ((m_c_tab[i].m>=0) || (m_c_tab[i].c>=0)) ) |
ox_get_serverinfo(m_c_tab[i].c,rp); |
ox_get_serverinfo(m_c_tab[i].c,rp); |
else { |
else { |
Line 273 void Pgenerate_port(NODE arg,Obj *rp) |
|
Line 275 void Pgenerate_port(NODE arg,Obj *rp) |
|
if ( !arg || !ARG0(arg) ) { |
if ( !arg || !ARG0(arg) ) { |
generate_port(0,port_str); |
generate_port(0,port_str); |
port = atoi(port_str); |
port = atoi(port_str); |
STOQ(port,q); |
STOZ(port,q); |
*rp = (Obj)q; |
*rp = (Obj)q; |
} else { |
} else { |
generate_port(1,port_str); |
generate_port(1,port_str); |
Line 287 void Pgenerate_port(NODE arg,Obj *rp) |
|
Line 289 void Pgenerate_port(NODE arg,Obj *rp) |
|
void Pox_reset_102(NODE arg,Z *rp) |
void Pox_reset_102(NODE arg,Z *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 301 void Pox_get_rank_102(LIST *rp) |
|
Line 303 void Pox_get_rank_102(LIST *rp) |
|
Z n,r; |
Z n,r; |
NODE node; |
NODE node; |
|
|
STOQ(nserver_102,n); |
STOZ(nserver_102,n); |
STOQ(myrank_102,r); |
STOZ(myrank_102,r); |
node = mknode(2,n,r); |
node = mknode(2,n,r); |
MKLIST(*rp,node); |
MKLIST(*rp,node); |
} |
} |
Line 311 void Pox_set_rank_102(NODE arg,Z *rp) |
|
Line 313 void Pox_set_rank_102(NODE arg,Z *rp) |
|
{ |
{ |
Z nserver,rank; |
Z nserver,rank; |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 329 void Pox_set_rank_102(NODE arg,Z *rp) |
|
Line 331 void Pox_set_rank_102(NODE arg,Z *rp) |
|
void Pox_tcp_accept_102(NODE arg,Z *rp) |
void Pox_tcp_accept_102(NODE arg,Z *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 348 void Pox_tcp_accept_102(NODE arg,Z *rp) |
|
Line 350 void Pox_tcp_accept_102(NODE arg,Z *rp) |
|
void Pox_tcp_connect_102(NODE arg,Z *rp) |
void Pox_tcp_connect_102(NODE arg,Z *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 371 void Ptry_bind_listen(NODE arg,Z *rp) |
|
Line 373 void Ptry_bind_listen(NODE arg,Z *rp) |
|
int port,s,use_unix; |
int port,s,use_unix; |
|
|
if ( IS_CYGWIN || !ARG0(arg) || NUM(ARG0(arg)) ) { |
if ( IS_CYGWIN || !ARG0(arg) || NUM(ARG0(arg)) ) { |
port = QTOS((Q)ARG0(arg)); |
port = ZTOS((Q)ARG0(arg)); |
sprintf(port_str,"%d",port); |
sprintf(port_str,"%d",port); |
use_unix = 0; |
use_unix = 0; |
} else { |
} else { |
Line 379 void Ptry_bind_listen(NODE arg,Z *rp) |
|
Line 381 void Ptry_bind_listen(NODE arg,Z *rp) |
|
use_unix = 1; |
use_unix = 1; |
} |
} |
s = try_bind_listen(use_unix,port_str); |
s = try_bind_listen(use_unix,port_str); |
STOQ(s,*rp); |
STOZ(s,*rp); |
} |
} |
|
|
/* |
/* |
Line 393 void Ptry_connect(NODE arg,Z *rp) |
|
Line 395 void Ptry_connect(NODE arg,Z *rp) |
|
int port,s,use_unix; |
int port,s,use_unix; |
|
|
if ( IS_CYGWIN || !ARG1(arg) || NUM(ARG1(arg)) ) { |
if ( IS_CYGWIN || !ARG1(arg) || NUM(ARG1(arg)) ) { |
port = QTOS((Q)ARG1(arg)); |
port = ZTOS((Q)ARG1(arg)); |
sprintf(port_str,"%d",port); |
sprintf(port_str,"%d",port); |
use_unix = 0; |
use_unix = 0; |
} else { |
} else { |
Line 402 void Ptry_connect(NODE arg,Z *rp) |
|
Line 404 void Ptry_connect(NODE arg,Z *rp) |
|
} |
} |
host = BDY((STRING)ARG0(arg)); |
host = BDY((STRING)ARG0(arg)); |
s = try_connect(use_unix,host,port_str); |
s = try_connect(use_unix,host,port_str); |
STOQ(s,*rp); |
STOZ(s,*rp); |
} |
} |
|
|
/* |
/* |
Line 417 void Ptry_accept(NODE arg,Z *rp) |
|
Line 419 void Ptry_accept(NODE arg,Z *rp) |
|
use_unix = 0; |
use_unix = 0; |
else |
else |
use_unix = 1; |
use_unix = 1; |
s = try_accept(use_unix,QTOS((Q)ARG0(arg))); |
s = try_accept(use_unix,ZTOS((Q)ARG0(arg))); |
STOQ(s,*rp); |
STOZ(s,*rp); |
} |
} |
|
|
/* |
/* |
Line 432 void Pregister_server(NODE arg,Z *rp) |
|
Line 434 void Pregister_server(NODE arg,Z *rp) |
|
Obj obj; |
Obj obj; |
MATHCAP server_mathcap; |
MATHCAP server_mathcap; |
|
|
cs = QTOS((Q)ARG0(arg)); |
cs = ZTOS((Q)ARG0(arg)); |
ss = QTOS((Q)ARG2(arg)); |
ss = ZTOS((Q)ARG2(arg)); |
if ( IS_CYGWIN || !ARG1(arg) || NUM(ARG1(arg)) ) { |
if ( IS_CYGWIN || !ARG1(arg) || NUM(ARG1(arg)) ) { |
sprintf(cport_str,"%d",QTOS((Q)ARG1(arg))); |
sprintf(cport_str,"%d",ZTOS((Q)ARG1(arg))); |
use_unix = 0; |
use_unix = 0; |
} else { |
} else { |
strcpy(cport_str,BDY((STRING)ARG1(arg))); |
strcpy(cport_str,BDY((STRING)ARG1(arg))); |
Line 444 void Pregister_server(NODE arg,Z *rp) |
|
Line 446 void Pregister_server(NODE arg,Z *rp) |
|
if ( !ARG3(arg) || NUM(ARG3(arg)) ) { |
if ( !ARG3(arg) || NUM(ARG3(arg)) ) { |
if ( use_unix ) |
if ( use_unix ) |
error("register_server : the protocol should conincide for two sockets"); |
error("register_server : the protocol should conincide for two sockets"); |
sprintf(sport_str,"%d",QTOS((Q)ARG3(arg))); |
sprintf(sport_str,"%d",ZTOS((Q)ARG3(arg))); |
} else { |
} else { |
if ( !use_unix ) |
if ( !use_unix ) |
error("register_server : the protocol should conincide for two sockets"); |
error("register_server : the protocol should conincide for two sockets"); |
Line 458 void Pregister_server(NODE arg,Z *rp) |
|
Line 460 void Pregister_server(NODE arg,Z *rp) |
|
if ( sn < 0 ) { |
if ( sn < 0 ) { |
/* we should terminate the launcher */ |
/* we should terminate the launcher */ |
ox_send_cmd(cn,SM_shutdown); ox_flush_stream_force(cn); |
ox_send_cmd(cn,SM_shutdown); ox_flush_stream_force(cn); |
STOQ(-1,*rp); |
STOZ(-1,*rp); |
return; |
return; |
} |
} |
|
|
Line 479 void Pregister_server(NODE arg,Z *rp) |
|
Line 481 void Pregister_server(NODE arg,Z *rp) |
|
ox_send_cmd(sn,SM_setMathcap); |
ox_send_cmd(sn,SM_setMathcap); |
} |
} |
/* return the server id */ |
/* return the server id */ |
STOQ(ind,*rp); |
STOZ(ind,*rp); |
} |
} |
|
|
#if !defined(VISUAL) && !defined(__MINGW32__) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
Line 550 void Pox_launch_generic(NODE arg,Z *rp) |
|
Line 552 void Pox_launch_generic(NODE arg,Z *rp) |
|
use_unix = !IS_CYGWIN && ARG3(arg) ? 1 : 0; |
use_unix = !IS_CYGWIN && ARG3(arg) ? 1 : 0; |
use_ssh = ARG4(arg) ? 1 : 0; |
use_ssh = ARG4(arg) ? 1 : 0; |
use_x = ARG5(arg) ? 1 : 0; |
use_x = ARG5(arg) ? 1 : 0; |
conn_to_serv = QTOS((Q)ARG6(arg)); |
conn_to_serv = ZTOS((Q)ARG6(arg)); |
if ( !IS_CYGWIN && !host ) |
if ( !IS_CYGWIN && !host ) |
use_unix = 1; |
use_unix = 1; |
ox_launch_generic(host,launcher,server, |
ox_launch_generic(host,launcher,server, |
Line 593 void ox_launcher_101_generic(char *host,char *launcher |
|
Line 595 void ox_launcher_101_generic(char *host,char *launcher |
|
/* register server to the server list */ |
/* register server to the server list */ |
ind = register_server_101(use_unix,cn); |
ind = register_server_101(use_unix,cn); |
|
|
STOQ(ind,*rp); |
STOZ(ind,*rp); |
} |
} |
#endif |
#endif |
|
|
Line 616 void ox_launch_generic(char *host,char *launcher,char |
|
Line 618 void ox_launch_generic(char *host,char *launcher,char |
|
key = BDY((STRING)BDY(n0)); |
key = BDY((STRING)BDY(n0)); |
value = (Z)BDY(NEXT(n0)); |
value = (Z)BDY(NEXT(n0)); |
if ( !strcmp(key,"fd") && value ) { |
if ( !strcmp(key,"fd") && value ) { |
fd = QTOS(value); |
fd = ZTOS(value); |
break; |
break; |
} |
} |
} |
} |
} |
} |
if (!available_mcindex(fd)) { |
if (!available_mcindex(fd)) { |
STOQ(-1,*rp); |
STOZ(-1,*rp); |
return; |
return; |
} |
} |
#if !defined(VISUAL) && !defined(__MINGW32__) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
Line 662 void ox_launch_generic(char *host,char *launcher,char |
|
Line 664 void ox_launch_generic(char *host,char *launcher,char |
|
if ( sn < 0 ) { |
if ( sn < 0 ) { |
/* we should terminate the launcher */ |
/* we should terminate the launcher */ |
ox_send_cmd(cn,SM_shutdown); ox_flush_stream_force(cn); |
ox_send_cmd(cn,SM_shutdown); ox_flush_stream_force(cn); |
STOQ(-1,*rp); |
STOZ(-1,*rp); |
return; |
return; |
} |
} |
|
|
Line 683 void ox_launch_generic(char *host,char *launcher,char |
|
Line 685 void ox_launch_generic(char *host,char *launcher,char |
|
ox_send_cmd(sn,SM_setMathcap); |
ox_send_cmd(sn,SM_setMathcap); |
} |
} |
/* return the server id */ |
/* return the server id */ |
STOQ(ind,*rp); |
STOZ(ind,*rp); |
} |
} |
|
|
#if defined(__CYGWIN32__) |
#if defined(__CYGWIN32__) |
Line 1081 void Pox_select(NODE arg,LIST *rp) |
|
Line 1083 void Pox_select(NODE arg,LIST *rp) |
|
FD_ZERO(&r); FD_ZERO(&w); FD_ZERO(&e); |
FD_ZERO(&r); FD_ZERO(&w); FD_ZERO(&e); |
maxfd = minfd = -1; |
maxfd = minfd = -1; |
for ( t = list, t0 = 0; t; t = NEXT(t) ) { |
for ( t = list, t0 = 0; t; t = NEXT(t) ) { |
index = QTOS((Q)BDY(t)); |
index = ZTOS((Q)BDY(t)); |
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
if ( ox_data_is_available(s) ) { |
if ( ox_data_is_available(s) ) { |
Line 1107 void Pox_select(NODE arg,LIST *rp) |
|
Line 1109 void Pox_select(NODE arg,LIST *rp) |
|
index = get_index(i); |
index = get_index(i); |
/* mcind : index to m_c_tab array */ |
/* mcind : index to m_c_tab array */ |
mcind = get_mcindex(index); |
mcind = get_mcindex(index); |
n--; STOQ(mcind,q); MKNODE(t1,q,t); t = t1; |
n--; STOZ(mcind,q); MKNODE(t1,q,t); t = t1; |
} |
} |
MKLIST(*rp,t); |
MKLIST(*rp,t); |
} |
} |
|
|
void Pox_flush(NODE arg,Z *rp) |
void Pox_flush(NODE arg,Z *rp) |
{ |
{ |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
ox_flush_stream_force(m_c_tab[index].c); |
ox_flush_stream_force(m_c_tab[index].c); |
Line 1124 void Pox_flush(NODE arg,Z *rp) |
|
Line 1126 void Pox_flush(NODE arg,Z *rp) |
|
void Pox_send_raw_cmo(NODE arg,Obj *rp) |
void Pox_send_raw_cmo(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1137 void Pox_send_raw_cmo(NODE arg,Obj *rp) |
|
Line 1139 void Pox_send_raw_cmo(NODE arg,Obj *rp) |
|
void Pox_recv_raw_cmo(NODE arg,Obj *rp) |
void Pox_recv_raw_cmo(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1146 void Pox_recv_raw_cmo(NODE arg,Obj *rp) |
|
Line 1148 void Pox_recv_raw_cmo(NODE arg,Obj *rp) |
|
|
|
void Pox_send_102(NODE arg,Obj *rp) |
void Pox_send_102(NODE arg,Obj *rp) |
{ |
{ |
int rank = QTOS((Q)ARG0(arg)); |
int rank = ZTOS((Q)ARG0(arg)); |
|
|
ox_send_data_102(rank,(Obj)ARG1(arg)); |
ox_send_data_102(rank,(Obj)ARG1(arg)); |
*rp = 0; |
*rp = 0; |
Line 1155 void Pox_send_102(NODE arg,Obj *rp) |
|
Line 1157 void Pox_send_102(NODE arg,Obj *rp) |
|
void Pox_recv_102(NODE arg,Obj *rp) |
void Pox_recv_102(NODE arg,Obj *rp) |
{ |
{ |
int id; |
int id; |
int rank = QTOS((Q)ARG0(arg)); |
int rank = ZTOS((Q)ARG0(arg)); |
|
|
ox_recv_102(rank,&id,rp); |
ox_recv_102(rank,&id,rp); |
} |
} |
|
|
void Pox_bcast_102(NODE arg,Obj *rp) |
void Pox_bcast_102(NODE arg,Obj *rp) |
{ |
{ |
int rank = QTOS((Q)ARG0(arg)); |
int rank = ZTOS((Q)ARG0(arg)); |
Obj data; |
Obj data; |
|
|
if ( argc(arg) > 1 ) |
if ( argc(arg) > 1 ) |
Line 1173 void Pox_bcast_102(NODE arg,Obj *rp) |
|
Line 1175 void Pox_bcast_102(NODE arg,Obj *rp) |
|
|
|
void Pox_reduce_102(NODE arg,Obj *rp) |
void Pox_reduce_102(NODE arg,Obj *rp) |
{ |
{ |
int root = QTOS((Q)ARG0(arg)); |
int root = ZTOS((Q)ARG0(arg)); |
STRING op; |
STRING op; |
char *opname; |
char *opname; |
void (*func)(); |
void (*func)(); |
Line 1203 void Pox_push_local(NODE arg,Obj *rp) |
|
Line 1205 void Pox_push_local(NODE arg,Obj *rp) |
|
|
|
if ( !arg ) |
if ( !arg ) |
error("ox_push_local : too few arguments."); |
error("ox_push_local : too few arguments."); |
index = QTOS((Q)ARG0(arg)); |
index = ZTOS((Q)ARG0(arg)); |
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; arg = NEXT(arg); |
s = m_c_tab[index].c; arg = NEXT(arg); |
|
|
Line 1223 void Pox_push_cmo(NODE arg,Obj *rp) |
|
Line 1225 void Pox_push_cmo(NODE arg,Obj *rp) |
|
|
|
if ( !arg ) |
if ( !arg ) |
error("ox_push_cmo : too few arguments."); |
error("ox_push_cmo : too few arguments."); |
index = QTOS((Q)ARG0(arg)); |
index = ZTOS((Q)ARG0(arg)); |
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; arg = NEXT(arg); |
s = m_c_tab[index].c; arg = NEXT(arg); |
for ( ; arg; arg = NEXT(arg) ) |
for ( ; arg; arg = NEXT(arg) ) |
Line 1233 void Pox_push_cmo(NODE arg,Obj *rp) |
|
Line 1235 void Pox_push_cmo(NODE arg,Obj *rp) |
|
|
|
void Pox_push_vl(NODE arg,Obj *rp) |
void Pox_push_vl(NODE arg,Obj *rp) |
{ |
{ |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
ox_send_local_ring(m_c_tab[index].c,CO); |
ox_send_local_ring(m_c_tab[index].c,CO); |
Line 1243 void Pox_push_vl(NODE arg,Obj *rp) |
|
Line 1245 void Pox_push_vl(NODE arg,Obj *rp) |
|
void Pox_pop_local(NODE arg,Obj *rp) |
void Pox_pop_local(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1255 void Pox_pop_local(NODE arg,Obj *rp) |
|
Line 1257 void Pox_pop_local(NODE arg,Obj *rp) |
|
void Pox_pop_cmo(NODE arg,Obj *rp) |
void Pox_pop_cmo(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1266 void Pox_pop_cmo(NODE arg,Obj *rp) |
|
Line 1268 void Pox_pop_cmo(NODE arg,Obj *rp) |
|
|
|
void Pox_pop0_local(NODE arg,Obj *rp) |
void Pox_pop0_local(NODE arg,Obj *rp) |
{ |
{ |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
ox_send_cmd(m_c_tab[index].c,SM_popSerializedLocalObject); |
ox_send_cmd(m_c_tab[index].c,SM_popSerializedLocalObject); |
Line 1275 void Pox_pop0_local(NODE arg,Obj *rp) |
|
Line 1277 void Pox_pop0_local(NODE arg,Obj *rp) |
|
|
|
void Pox_pop0_cmo(NODE arg,Obj *rp) |
void Pox_pop0_cmo(NODE arg,Obj *rp) |
{ |
{ |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
ox_send_cmd(m_c_tab[index].c,SM_popCMO); |
ox_send_cmd(m_c_tab[index].c,SM_popCMO); |
Line 1284 void Pox_pop0_cmo(NODE arg,Obj *rp) |
|
Line 1286 void Pox_pop0_cmo(NODE arg,Obj *rp) |
|
|
|
void Pox_pop0_string(NODE arg,STRING *rp) |
void Pox_pop0_string(NODE arg,STRING *rp) |
{ |
{ |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
ox_send_cmd(m_c_tab[index].c,SM_popString); |
ox_send_cmd(m_c_tab[index].c,SM_popString); |
Line 1294 void Pox_pop0_string(NODE arg,STRING *rp) |
|
Line 1296 void Pox_pop0_string(NODE arg,STRING *rp) |
|
void Pox_pop_string(NODE arg,Obj *rp) |
void Pox_pop_string(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1313 void Pox_get(NODE arg,Obj *rp) |
|
Line 1315 void Pox_get(NODE arg,Obj *rp) |
|
ox_get_result(0,rp); |
ox_get_result(0,rp); |
} else { |
} else { |
/* server->client */ |
/* server->client */ |
index = QTOS((Q)ARG0(arg)); |
index = ZTOS((Q)ARG0(arg)); |
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
ox_flush_stream_force(s); |
ox_flush_stream_force(s); |
Line 1325 void Pox_pops(NODE arg,Obj *rp) |
|
Line 1327 void Pox_pops(NODE arg,Obj *rp) |
|
{ |
{ |
int s; |
int s; |
USINT n; |
USINT n; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
if ( NEXT(arg) ) |
if ( NEXT(arg) ) |
MKUSINT(n,QTOS((Q)ARG1(arg))); |
MKUSINT(n,ZTOS((Q)ARG1(arg))); |
else |
else |
MKUSINT(n,1); |
MKUSINT(n,1); |
ox_send_data(s,n); |
ox_send_data(s,n); |
Line 1342 void Pox_execute_function(NODE arg,Obj *rp) |
|
Line 1344 void Pox_execute_function(NODE arg,Obj *rp) |
|
{ |
{ |
int s; |
int s; |
USINT ui; |
USINT ui; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
MKUSINT(ui,QTOS((Q)ARG2(arg))); |
MKUSINT(ui,ZTOS((Q)ARG2(arg))); |
ox_send_data(s,ui); |
ox_send_data(s,ui); |
ox_send_data(s,ARG1(arg)); |
ox_send_data(s,ARG1(arg)); |
ox_send_cmd(s,SM_executeFunction); |
ox_send_cmd(s,SM_executeFunction); |
Line 1356 void Pox_execute_function(NODE arg,Obj *rp) |
|
Line 1358 void Pox_execute_function(NODE arg,Obj *rp) |
|
void Pox_setname(NODE arg,Obj *rp) |
void Pox_setname(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1368 void Pox_setname(NODE arg,Obj *rp) |
|
Line 1370 void Pox_setname(NODE arg,Obj *rp) |
|
void Pox_evalname(NODE arg,Obj *rp) |
void Pox_evalname(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; |
s = m_c_tab[index].c; |
Line 1380 void Pox_evalname(NODE arg,Obj *rp) |
|
Line 1382 void Pox_evalname(NODE arg,Obj *rp) |
|
void Pox_execute_string(NODE arg,Obj *rp) |
void Pox_execute_string(NODE arg,Obj *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
asir_assert(ARG1(arg),O_STR,"ox_execute_string"); |
asir_assert(ARG1(arg),O_STR,"ox_execute_string"); |
valid_mctab_index(index); |
valid_mctab_index(index); |
Line 1399 void Pox_rpc(NODE arg,Obj *rp) |
|
Line 1401 void Pox_rpc(NODE arg,Obj *rp) |
|
USINT ui; |
USINT ui; |
pointer *w; |
pointer *w; |
NODE t; |
NODE t; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
s = m_c_tab[index].c; arg = NEXT(arg); |
s = m_c_tab[index].c; arg = NEXT(arg); |
Line 1426 void Pox_cmo_rpc(NODE arg,Obj *rp) |
|
Line 1428 void Pox_cmo_rpc(NODE arg,Obj *rp) |
|
NODE t; |
NODE t; |
Obj dmy; |
Obj dmy; |
pointer *w; |
pointer *w; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
int find; |
int find; |
Obj sync; |
Obj sync; |
|
|
Line 1462 void Pox_reset(NODE arg,Z *rp) |
|
Line 1464 void Pox_reset(NODE arg,Z *rp) |
|
Obj obj; |
Obj obj; |
NODE nd; |
NODE nd; |
Z q; |
Z q; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
m = m_c_tab[index].m; |
m = m_c_tab[index].m; |
c = m_c_tab[index].c; |
c = m_c_tab[index].c; |
if ( m >= 0 ) { |
if ( m >= 0 ) { |
if ( no_ox_reset(c) == 1 ) { |
if ( no_ox_reset(c) == 1 ) { |
STOQ(index,q); |
STOZ(index,q); |
nd = mknode(1,q); |
nd = mknode(1,q); |
switch ( No_ox_reset ) { |
switch ( No_ox_reset ) { |
case 1: |
case 1: |
fprintf(stderr,"The server does not implenent OX reset protocol.\n"); |
fprintf(stderr,"The server does not implenent OX reset protocol.\n"); |
fprintf(stderr,"The server is terminated.\n"); |
fprintf(stderr,"The server is terminated.\n"); |
Pox_shutdown(nd,rp); |
Pox_shutdown(nd,rp); |
if ( index == QTOS(ox_pari_stream) ) ox_pari_stream_initialized = 0; |
if ( index == ZTOS(ox_pari_stream) ) ox_pari_stream_initialized = 0; |
break; |
break; |
case 2: |
case 2: |
Pox_shutdown(nd,rp); |
Pox_shutdown(nd,rp); |
if ( index == QTOS(ox_pari_stream) ) ox_pari_stream_initialized = 0; |
if ( index == ZTOS(ox_pari_stream) ) ox_pari_stream_initialized = 0; |
break; |
break; |
default: |
default: |
error("The server does not implement OX reset protocol."); |
error("The server does not implement OX reset protocol."); |
Line 1517 void Pox_reset(NODE arg,Z *rp) |
|
Line 1519 void Pox_reset(NODE arg,Z *rp) |
|
void Pox_intr(NODE arg,Z *rp) |
void Pox_intr(NODE arg,Z *rp) |
{ |
{ |
int m; |
int m; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
m = m_c_tab[index].m; |
m = m_c_tab[index].m; |
Line 1534 void Pox_intr(NODE arg,Z *rp) |
|
Line 1536 void Pox_intr(NODE arg,Z *rp) |
|
void Pox_sync(NODE arg,Z *rp) |
void Pox_sync(NODE arg,Z *rp) |
{ |
{ |
int c; |
int c; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
c = m_c_tab[index].c; |
c = m_c_tab[index].c; |
Line 1545 void Pox_sync(NODE arg,Z *rp) |
|
Line 1547 void Pox_sync(NODE arg,Z *rp) |
|
void Pox_shutdown(NODE arg,Z *rp) |
void Pox_shutdown(NODE arg,Z *rp) |
{ |
{ |
int s; |
int s; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
#if !defined(VISUAL) && !defined(__MINGW32__) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
int status; |
int status; |
#endif |
#endif |
Line 1568 void Pox_shutdown(NODE arg,Z *rp) |
|
Line 1570 void Pox_shutdown(NODE arg,Z *rp) |
|
void Pox_push_cmd(NODE arg,Z *rp) |
void Pox_push_cmd(NODE arg,Z *rp) |
{ |
{ |
int ui; |
int ui; |
int index = QTOS((Q)ARG0(arg)); |
int index = ZTOS((Q)ARG0(arg)); |
|
|
valid_mctab_index(index); |
valid_mctab_index(index); |
ui = QTOS((Q)ARG1(arg)); |
ui = ZTOS((Q)ARG1(arg)); |
ox_send_cmd(m_c_tab[index].c,ui); |
ox_send_cmd(m_c_tab[index].c,ui); |
*rp = 0; |
*rp = 0; |
} |
} |
Line 1639 int validate_ox_plot_stream(int index) |
|
Line 1641 int validate_ox_plot_stream(int index) |
|
arg = mknode(2,NULL,name); |
arg = mknode(2,NULL,name); |
if ( debug_plot ) Pox_launch(arg,&r); |
if ( debug_plot ) Pox_launch(arg,&r); |
else Pox_launch_nox(arg,&r); |
else Pox_launch_nox(arg,&r); |
i = QTOS((Q)r); |
i = ZTOS((Q)r); |
#if defined(VISUAL) || defined(__MINGW32__) |
#if defined(VISUAL) || defined(__MINGW32__) |
Sleep(100); |
Sleep(100); |
ox_send_cmd(m_c_tab[i].c,SM_nop); |
ox_send_cmd(m_c_tab[i].c,SM_nop); |