DEFINITION MODULE MultiUserL{"multiuser.library",39};
(* Frank J. Beckmann	22.10.1993 *)


FROM SYSTEM IMPORT
 ADDRESS;

FROM DosD IMPORT
 FileLockPtr;
FROM ExecD IMPORT
 LibraryPtr, TaskPtr;
FROM UtilityD IMPORT
 TagItemPtr;

IMPORT
 d: MultiUserD,
 R;


VAR
 multiuserVersion: INTEGER;
 multiuserBase: LibraryPtr;

CONST
 multiuserMinVersion=39;
 multiUserName="multiuser.library";


PROCEDURE LogoutA(taglist{R.A0}: TagItemPtr): LONGCARD; CODE -30;
PROCEDURE LoginA(taglist{R.A0}: TagItemPtr): LONGCARD; CODE -36;
PROCEDURE GetTaskOwner(task{R.D0}: TaskPtr): LONGCARD; CODE -42;
PROCEDURE Passwd(oldpwd{R.A0}: ADDRESS; newpwd{R.A1}: ADDRESS): BOOLEAN; CODE -48;
PROCEDURE AllocUserInfo(): d.UserInfoPtr; CODE -54;
PROCEDURE FreeUserInfo(info{R.A0}: d.UserInfoPtr); CODE -60;
PROCEDURE GetUserInfo(info{R.A0}: d.UserInfoPtr; keytype{R.D0}: LONGCARD): BOOLEAN;
          CODE -66;
PROCEDURE SetDefProtectionA(taglist{R.A0}: TagItemPtr): BOOLEAN; CODE -78;
PROCEDURE GetDefProtection(task{R.D0}: TaskPtr): d.ProtectionFlagSet; CODE -84;
PROCEDURE SetProtection(name{R.D1}: ADDRESS; mask: d.ProtectionFlagSet): BOOLEAN;
          CODE -90;
PROCEDURE LimitDOSSetProtection(flag{R.D1}: BOOLEAN): BOOLEAN; CODE -96;
PROCEDURE CheckPasswd(taglist{R.A0}: TagItemPtr): BOOLEAN; CODE -102;
PROCEDURE GetPasswdDirLock(): FileLockPtr; CODE -114;
PROCEDURE GetConfigDirLock(): FileLockPtr; CODE -120;
PROCEDURE GetTaskExtOwner(task{R.D0}: TaskPtr): d.ExtOwnerPtr; CODE -126;
PROCEDURE FreeExtOwner(info{R.A0}: d.ExtOwnerPtr); CODE -132;
PROCEDURE GetRelationshipA(user{R.D0}: d.ExtOwnerPtr; owner{R.D1}: LONGCARD;
          taglist{R.A0}: TagItemPtr): d.RelationSet; CODE -138;
PROCEDURE UserInfo2ExtOwner(info{R.A0}: d.UserInfoPtr): d.ExtOwnerPtr; CODE -144;
PROCEDURE AllocGroupInfo(): d.GroupInfoPtr; CODE -150;
PROCEDURE FreeGroupInfo(info{R.A0}: d.GroupInfoPtr); CODE -156;
PROCEDURE GetGroupInfo(info{R.A0}: d.GroupInfoPtr; keytype: LONGCARD): BOOLEAN;
          CODE -162;
PROCEDURE AddMonitor(monitor{R.A0}: d.MonitorPtr): BOOLEAN; CODE -168;
PROCEDURE RemMonitor(monitor{R.A0}: d.MonitorPtr); CODE -174;

END MultiUserL.
