/************************************************************
* MultiUser - MultiUser Task/File Support System				*
* ---------------------------------------------------------	*
* Library Header															*
* ---------------------------------------------------------	*
* © Copyright 1993-1994 Geert Uytterhoeven						*
* All Rights Reserved.													*
************************************************************/


#include <exec/resident.h>
#include <exec/semaphores.h>
#include <proto/exec.h>

#include "multiuser.library_rev.h"
#include "Config.h"
#include "Locale.h"
#include "LibHeader.h"
#include "StdLibFunc.h"
#include "Log.h"
#include "Task.h"
#include "Passwd.h"
#include "UserInfo.h"
#include "Protection.h"
#include "Misc.h"
#include "GroupInfo.h"
#include "Monitor.h"


	/*
	 *		Prohibit accidential execution
	 */

LONG StartUp(void)
{
	return(-1);
}


	/*
	 *		Version/Revision Identifiers
	 */

char MultiUserName[] = "multiuser.library";
char MultiUserIDString[] = VSTRING;
UWORD MultiUserVersion = VERSION;
UWORD MultiUserRevision = REVISION;


	/*
	 *		Vectors for MakeLibrary()
	 */

static APTR Vectors[] = {
	muOpen, 						/* Standard Library Function */
	muClose,							/* Standard Library Function */
	muExpunge,						/* Standard Library Function */
	muExtFunc,						/* Standard Library Function */
	muLogoutA,						/* Public Library Function */
	muLoginA,						/* Public Library Function */
	muGetTaskOwner, 			/* Public Library Function */
	muPasswd,						/* Public Library Function */
	muAllocUserInfo,				/* Public Library Function */
	muFreeUserInfo, 			/* Public Library Function */
	muGetUserInfo,					/* Public Library Function */
	muOBSOLETE,						/* Obsolete Library Function */
	muSetDefProtectionA,			/* Public Library Function */
	muGetDefProtection,			/* Public Library Function */
	muSetProtection,				/* Public Library Function */
	muLimitDOSSetProtection,	/* Public Library Function */
	muCheckPasswd,					/* Public Library Function */
	muFSRendezVous, 			/* Private Library Function */
	muGetPasswdDirLock,			/* Public Library Function */
	muGetConfigDirLock,			/* Public Library Function */
	muGetTaskExtOwner,			/* Public Library Function */
	muFreeExtOwner, 			/* Public Library Function */
	muGetRelationshipA,			/* Public Library Function */
	muUserInfo2ExtOwner,			/* Public Library Function */
	muAllocGroupInfo,				/* Public Library Function */
	muFreeGroupInfo,				/* Public Library Function */
	muGetGroupInfo, 			/* Public Library Function */
	muAddMonitor,					/* Public Library Function */
	muRemMonitor,					/* Public Library Function */
	muKill, 						/* Public Library Function */
	muFreeze,						/* Public Library Function */
	muUnfreeze,						/* Public Library Function */
	(APTR)-1
};


	/*
	 *		Data for MakeLibrary()
	 */

static ULONG MakeLibStuff[] = {
	sizeof(struct muBase),
	(ULONG)Vectors,
	0,
	(ULONG)muInit
};


	/*
	 *		Resident structure for library initialisation
	 */

static struct Resident Resident = {
	RTC_MATCHWORD,								/* word to match on (ILLEGAL) */
	&Resident,									/* pointer to the above */
	&Resident+sizeof(struct Resident),
													/* address to continue scan */
	RTF_AUTOINIT,								/* various tag flags */
	VERSION,										/* release version number */
	NT_LIBRARY,									/* type of module (NT_XXXXXX) */
	0,												/* initialization priority */
	MultiUserName,								/* pointer to node name */
	MultiUserIDString,						/* pointer to identification string */
	MakeLibStuff								/* pointer to init code */
};
