sys7.1-doc-wip/OS/PPC/UserGroup.h
2019-07-27 22:37:48 +08:00

138 lines
3.2 KiB
C

/*
File: UserGroup.h
Contains: xxx put contents here (or delete the whole line) xxx
Written by: xxx put name of writer here (or delete the whole line) xxx
Copyright: © 1989-1990 by Apple Computer, Inc., all rights reserved.
Change History (most recent first):
<3> 4/10/90 S To Support PPC Global Check Box.
<3> 4/10/90 S To Support PPC Global Check Box.
<2> 2/27/90 S To User Guest Record.
<1.0> 10/12/89 CVC Adding Access Control for the first time.
To Do:
*/
/*EASE$$$ READ ONLY COPY of file “UserGroup.h”
** 1.0 CVC 10/12/1989 Adding Access Control for the first time.
** END EASE MODIFICATION HISTORY */
#ifndef UserGroup_h
#define UserGroup_h
#define User 0
#define Group -1
#define nogroup 0
#define KeyUserID 1
#define MaxGroups 42
// flag constants
#define LoginEnabled 0x100
#define SuperUser 0x200
#define NoChangePwd 0x400
#define UInited 0x800
#define PhoneLogin 1
#define CallBack 2
#define GIconInited 1
#define GWindInited 2
#define Apple2 1
#define NoGuests 2
#define UGInited 4
#define IACGuestEnabled 16
#define IACGlobalEnabled 32
// B-tree User Authentication Record
struct UserAcRecord
{
char Password[8]; // user password
long UserID; // user ID
short UserFlags; // user flags: LoginEnabled, SuperUser, NoChangePwd, inited
Point IconLoc; // location of user icon
long Spare[4]; // extra space
short NumGroups; // number of groups the user belongs to
long Groups[MaxGroups]; // groups the user belongs to
};
typedef struct UserAcRecord UserAcRecord;
struct GroupIDRecord
{
long GroupID; // group ID
unsigned char Inited;
Point IconLoc;
Rect GroupWind;
short GroupView;
Point Scroll;
long Spare[2]; // extra space
};
typedef struct GroupIDRecord GroupIDRecord;
struct UGNameRecord
{
short UGFlag;
Str31 UGName;
long Spare[2];
};
typedef struct UGNameRecord UGNameRecord;
struct GroupMemberRecord
{
Boolean Inited;
Point IconLoc;
};
typedef struct GroupMemberRecord GroupMemberRecord;
struct ULInfoRecord
{
long UniqueID; // UG file's unique ID
short Version; // User List version
Str31 ServerName; // the server name
char ServerFlags; // Flags: Apple 2 mode, No Guest Users, inited
char AdPWLen; // length of Admin password
char AdminPW[8]; // the Admin password
long MaxID; // maximum ID used
Rect UGWind;
short View;
Point Scroll;
short Spare1;
long Spare2[13]; // extra space
};
typedef struct ULInfoRecord ULInfoRecord;
struct FolderInfoRecord
{
char ShortName[13]; // short name
int PDFT; // ProDOS File Type
int PDAT; // ProDOS Aux Type
int SubFolders; // number of folders in this folder
long CreatorID; // creator ID
long Access; // access control
long GroupID; // group ID
};
typedef struct FolderInfoRecord FolderInfoRecord;
struct PhoneRecord
{
short PhoneFlags; // 976 flags: Bit 0 login, Bit 1 call back
short RetryCount;
Str31 CallNum; // 976 Callback number
};
typedef struct PhoneRecord PhoneRecord;
union BTRecord
{
ULInfoRecord A;
UGNameRecord N;
GroupIDRecord G;
UserAcRecord U;
GroupMemberRecord M;
FolderInfoRecord F;
PhoneRecord T;
char B[256];
};
typedef union BTRecord BTRecord;
#endif