/********************************************************************
 ** PARALLEL PORT SUPPORT (PACKET DRIVER)
 **
 ** (c) Spak, Darrell Tam, c9107253@ee.newcastle.edu.au (1994)
 ** phone (Australia) 049-829-710
 **                    49-829-710
 ** (c) SST 1994
 **
 ** STUFF TO ADD "SERVICES" WHEN RUNNING
 **
 ** TABS to 4
 ********************************************************************/

#include "packets.h"
#include "globs_protos.h"

/********************************************************************/
	void RegisterCommand(struct RegisterMsg *regmsg)
/********************************************************************/
{

/** INTERPRET THE MESSAGE WE WERE PASSED */

	fpf(out, "Command=(%ld)\n", regmsg->command);
	switch(regmsg->command) {

		case RM_ADD_SERVER: {
		short p = regmsg->arg1;
			if(SERVICE_VALID(p) && !SERVICE_PORT(p))
				SERVICE_PORT(p) = (struct MsgPort *)regmsg->arg2;
		/** return who owns the port */
			regmsg->smsg.result = (long)SERVICE_PORT(p);
		}
		break;

		case RM_REMOVE_SERVER: {
		short p = regmsg->arg1;
			regmsg->smsg.result = (long)SERVICE_PORT(p);
			if(SERVICE_PORT_EXISTS(p))
				SERVICE_PORT(p) = NULL;
		}
		break;

		default:
			regmsg->smsg.result = NULL;
			fpf(out, "Unknown command\n");
	}
	ReplyMsg(regmsg);
}
