Admin Panel

/*
 * :ts=8
 *
 * 'Roadshow' -- Amiga TCP/IP stack; "usergroup.library" API
 * Copyright � 2001-2016 by Olaf Barthel.
 * All Rights Reserved.
 *
 * Amiga specific TCP/IP 'C' header files;
 * Freely Distributable
 *
 * WARNING: The "usergroup.library" API must be considered obsolete and
 *          should not be used in new software. It is provided solely
 *          for backwards compatibility and legacy application software.
 */

#ifndef USERGROUP_INTERFACE_DEF_H
#define USERGROUP_INTERFACE_DEF_H

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_EXEC_H
#include <exec/exec.h>
#endif
#ifndef EXEC_INTERFACES_H
#include <exec/interfaces.h>
#endif

#ifndef LIBRARIES_USERGROUP_H
#include <libraries/usergroup.h>
#endif
#ifndef _PWD_H
#include <pwd.h>
#endif
#ifndef _GRP_H
#include <grp.h>
#endif

struct UserGroupIFace
{
	struct InterfaceData Data;

	ULONG APICALL (*Obtain)(struct UserGroupIFace *Self);
	ULONG APICALL (*Release)(struct UserGroupIFace *Self);
	void APICALL (*Expunge)(struct UserGroupIFace *Self);
	struct Interface * APICALL (*Clone)(struct UserGroupIFace *Self);
	LONG APICALL (*ug_SetupContextTagList)(struct UserGroupIFace *Self, STRPTR name, struct TagItem * tags);
	LONG APICALL (*ug_SetupContextTags)(struct UserGroupIFace *Self, STRPTR name, ...);
	LONG APICALL (*ug_GetErr)(struct UserGroupIFace *Self);
	STRPTR APICALL (*ug_StrError)(struct UserGroupIFace *Self, LONG err);
	LONG APICALL (*getuid)(struct UserGroupIFace *Self);
	LONG APICALL (*geteuid)(struct UserGroupIFace *Self);
	LONG APICALL (*setreuid)(struct UserGroupIFace *Self, LONG real, LONG effective);
	LONG APICALL (*setuid)(struct UserGroupIFace *Self, LONG uid);
	LONG APICALL (*getgid)(struct UserGroupIFace *Self);
	LONG APICALL (*getegid)(struct UserGroupIFace *Self);
	LONG APICALL (*setregid)(struct UserGroupIFace *Self, LONG real, LONG effective);
	LONG APICALL (*setgid)(struct UserGroupIFace *Self, LONG gid);
	LONG APICALL (*getgroups)(struct UserGroupIFace *Self, LONG gidsetlen, LONG * gidset);
	LONG APICALL (*setgroups)(struct UserGroupIFace *Self, LONG gidsetlen, LONG * gidset);
	LONG APICALL (*initgroups)(struct UserGroupIFace *Self, STRPTR name, LONG basegid);
	struct passwd * APICALL (*getpwnam)(struct UserGroupIFace *Self, STRPTR login);
	struct passwd * APICALL (*getpwuid)(struct UserGroupIFace *Self, LONG uid);
	VOID APICALL (*setpwent)(struct UserGroupIFace *Self);
	struct passwd * APICALL (*getpwent)(struct UserGroupIFace *Self);
	VOID APICALL (*endpwent)(struct UserGroupIFace *Self);
	struct group * APICALL (*getgrnam)(struct UserGroupIFace *Self, STRPTR name);
	struct group * APICALL (*getgrgid)(struct UserGroupIFace *Self, LONG gid);
	VOID APICALL (*setgrent)(struct UserGroupIFace *Self);
	struct group * APICALL (*getgrent)(struct UserGroupIFace *Self);
	VOID APICALL (*endgrent)(struct UserGroupIFace *Self);
	UBYTE * APICALL (*crypt)(struct UserGroupIFace *Self, UBYTE * key, UBYTE * set);
	UBYTE * APICALL (*ug_GetSalt)(struct UserGroupIFace *Self, struct passwd * user, UBYTE * buf, ULONG size);
	STRPTR APICALL (*getpass)(struct UserGroupIFace *Self, STRPTR prompt);
	ULONG APICALL (*umask)(struct UserGroupIFace *Self, UWORD mask);
	ULONG APICALL (*getumask)(struct UserGroupIFace *Self);
	LONG APICALL (*setsid)(struct UserGroupIFace *Self);
	LONG APICALL (*getpgrp)(struct UserGroupIFace *Self);
	STRPTR APICALL (*getlogin)(struct UserGroupIFace *Self);
	LONG APICALL (*setlogin)(struct UserGroupIFace *Self, STRPTR name);
	VOID APICALL (*setutent)(struct UserGroupIFace *Self);
	struct utmp * APICALL (*getutent)(struct UserGroupIFace *Self);
	VOID APICALL (*endutent)(struct UserGroupIFace *Self);
	struct lastlog * APICALL (*getlastlog)(struct UserGroupIFace *Self, LONG uid);
	LONG APICALL (*setlastlog)(struct UserGroupIFace *Self, LONG uid, STRPTR name, STRPTR host);
	struct UserGroupCredentials * APICALL (*getcredentials)(struct UserGroupIFace *Self, struct Task * task);
};

#endif /* USERGROUP_INTERFACE_DEF_H */