acnet_request
status.i4.v = acnet_request(task.i1a.r, dest_node.i2.v, dest_task.i1a.r,
request_buffer.g.v, request_length.u4.v,
request_flags.u2.v, request_id.u2.r)
This routine sends an ACNET request. The reply will be pushed onto
a FIFO stack for later access with 'acnet_get_reply'. This routine
should be preceded by a call to 'acnet_connect'.
task ASCII task name (PROCESS_NAME_LEN characters)
(name used in 'acnet_connect' call)
dest_node target ACNET logical node
(constants are in nodedefs)
dest_task target ASCII task name (PROCESS_NAME_LEN characters)
request_buffer request buffer
request_length request length in bytes (only even lengths allowed)
request_flags ACNET request flags
(REQ_M_NORMAL -> no special conditions,
REQ_M_MULTRPY -> multiple reply request,
REQ_M_USM -> request with no expected reply)
request_id returned ID of this request (A value of zero is
returned if the request is for an UnSolicited
Message (USM).)
This function returns ACNET status values as follows:
OK success
CLIB_INVARG odd reply length passed
ACNET_NOSUCH not connected with this task name
ACNET_xxx failed
This function requires the following include files:
acnet_h, nodedefs_h, acnet_errors.h
Related functions:
acnet_request_wait, acnet_connect, acnet_default_connect,
acnet_disconnect, acnet_get_reply, acnet_cancel_request,
acnet_node_name, acnet_accept_requests, acnet_get_request,
acnet_reply, acnet_wait, acnet_set_handle, acnet_current_rum_handle,
acnet_is_rum_handle
C usage:
static const char task[PROCESS_NAME_LEN+1] = "SA1082";
static const char dest_task[PROCESS_NAME_LEN+1] = "ODDMOD";
char request_buffer[REQUEST_LENGTH];
short dest_node = OPER;
unsigned short request_flags = REQ_M_NORMAL;
unsigned short request_id;
int status;
unsigned int request_length = REQUEST_LENGTH;
status = acnet_request(task,dest_node,dest_task,(void *) request_buffer,
request_length,request_flags,&request_id);