#define		SOMA_PORT_NAME		"Eterna"

/*
  The SOMA Module Structure Is A Structure That Will Be Required
  By The Initiate Command. This Will Have To Be Valid For The
  Module To Be Added To The Module List (The Public List of Modules
  In The Syste
*/


/*    MAJOR Section Now The COMMANDS    */

#define		INT_FRONTEND	0x000			//Reserved For FRONTEND.soma DO NOT USE
#define		INT_REGISTER	0x001			//To Register A Module And Add It To Public List
#define		ASK_MODLIST	0x040			//Get The Public List of Modules
#define		ASK_MEMORY	0x041			//Get Some Shared Public Memory
#define		DO_STARTMOD	0x080			//Start Another Module
#define		DO_KILLMOD	0x081			//End Another Module
#define		DO_GUI		0x084			//Start Modules GUI
#define		TERMINATE	0x0FF			//To Terminate SOMA


struct SOMA_Message
{
	struct Message		mes_Message;		// The Actual Intuition Message
		UWORD		mes_Identifier;		// The UNQUIE ID of The Calling Module
		UWORD		mes_Command;		// The Actual COMMAND
		APTR		mes_Data;		// For Other Stuff
	struct	List	*	mes_List;		// A General List For SOMETHING?
		ULONG		mes_Return;		// A Success / Fail For The Command
		UBYTE		mes_Reserved[400];	// Make It Up As We Go Along.

};

struct SOMA_Module 
{
	struct	Node		mod_Node;		// A Standard Node For Name,Type and Priority
							// NODE's Name Must ALWAYS be SOMA
		UWORD		mod_Version;		// A Version Number!
		UWORD		mod_Revision;		// A Revision Number!
		APTR		mod_IDString;		// A Description of The Module Nature
		UWORD		mod_Identifier;		// A UNQUIE Indentifier That The Module Is Given
		UWORD		mod_OpenCount;		// The Number of Modules of This Type Open
		APTR		mod_JMPCode;		// A Function Pointer To The Startup Task
	struct 	Image	*	mod_Icon;		// A Pointer To an IMAGE Structure
	struct	MsgPort	*	mod_MPort;
		UBYTE		mod_Reserved[400];
};
