/*
 *   Includes for minrexx.c; please refer to that file for
 *   further documentation.
 */
#include <rexx/rxslib.h>

/*
 *   Maximum messages that can be pending, and the return codes
 *   for two bad situations.
 */
#define MAXRXOUTSTANDING (300)
#define RXERRORIMGONE (100)
#define RXERRORNOCMD (30)

/*
 *   This is the association list you build up (statically or
 *   dynamically) that should be terminated with an entry with
 *   NULL for the name . . .
 */
struct rexxCommandList 
{
   char *name ;
   void (*userdata)(struct RexxMsg *, char *) ;
};

long upRexxPort (char *s, struct rexxCommandList *rcl, char *exten, void(*uf)(struct RexxMsg *, struct rexxCommandList *, char *));
void dnRexxPort (void);
void dispRexxPort (void);
struct RexxMsg *sendRexxCmd (char *s, void (*f)(struct RexxMsg *), STRPTR p1, STRPTR p2, STRPTR p3);
struct RexxMsg *asyncRexxCmd (char *s);
struct RexxMsg *syncRexxCmd (char *s, struct RexxMsg *msg);
void replyRexxCmd (struct RexxMsg *msg, long primary, long secondary, char *string);
struct RexxMsg *sendSimpleCmd (char *s, char *host, void (*f)(struct RexxMsg *), STRPTR p1, STRPTR p2, STRPTR p3);
