1 /* Automatically generated header! Do not edit! */
    2 
    3 #ifndef _PPCINLINE_MULTIUSER_H
    4 #define _PPCINLINE_MULTIUSER_H
    5 
    6 #ifndef __PPCINLINE_MACROS_H
    7 #include <ppcinline/macros.h>
    8 #endif /* !__PPCINLINE_MACROS_H */
    9 
   10 #ifndef MULTIUSER_BASE_NAME
   11 #define MULTIUSER_BASE_NAME muBase
   12 #endif /* !MULTIUSER_BASE_NAME */
   13 
   14 #define muAddMonitor(monitor) \
   15 	LP1(0xa8, BOOL, muAddMonitor, struct muMonitor *, monitor, a0, \
   16 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   17 
   18 #define muAllocGroupInfo() \
   19 	LP0(0x96, struct muGroupInfo *, muAllocGroupInfo, \
   20 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   21 
   22 #define muAllocUserInfo() \
   23 	LP0(0x36, struct muUserInfo *, muAllocUserInfo, \
   24 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   25 
   26 #define muCheckPasswd(taglist) \
   27 	LP1(0x66, BOOL, muCheckPasswd, struct TagItem *, taglist, a0, \
   28 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   29 
   30 #define muFreeExtOwner(info) \
   31 	LP1NR(0x84, muFreeExtOwner, struct muExtOwner *, info, a0, \
   32 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   33 
   34 #define muFreeGroupInfo(info) \
   35 	LP1NR(0x9c, muFreeGroupInfo, struct muGroupInfo *, info, a0, \
   36 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   37 
   38 #define muFreeUserInfo(info) \
   39 	LP1NR(0x3c, muFreeUserInfo, struct muUserInfo *, info, a0, \
   40 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   41 
   42 #define muFreeze(task) \
   43 	LP1(0xba, BOOL, muFreeze, struct Task *, task, d0, \
   44 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   45 
   46 #define muGetConfigDirLock() \
   47 	LP0(0x78, BPTR, muGetConfigDirLock, \
   48 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   49 
   50 #define muGetDefProtection(task) \
   51 	LP1(0x54, ULONG, muGetDefProtection, struct Task *, task, d0, \
   52 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   53 
   54 #define muGetGroupInfo(info, keytype) \
   55 	LP2(0xa2, struct muGroupInfo *, muGetGroupInfo, struct muGroupInfo *, info, a0, ULONG, keytype, d0, \
   56 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   57 
   58 #define muGetPasswdDirLock() \
   59 	LP0(0x72, BPTR, muGetPasswdDirLock, \
   60 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   61 
   62 #define muGetRelationshipA(user, owner, taglist) \
   63 	LP3(0x8a, ULONG, muGetRelationshipA, struct muExtOwner *, user, d0, ULONG, owner, d1, struct TagItem *, taglist, a0, \
   64 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   65 
   66 #define muGetTaskExtOwner(task) \
   67 	LP1(0x7e, struct muExtOwner *, muGetTaskExtOwner, struct Task *, task, d0, \
   68 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   69 
   70 #define muGetTaskOwner(task) \
   71 	LP1(0x2a, ULONG, muGetTaskOwner, struct Task *, task, d0, \
   72 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   73 
   74 #define muGetUserInfo(info, keytype) \
   75 	LP2(0x42, struct muUserInfo *, muGetUserInfo, struct muUserInfo *, info, a0, ULONG, keytype, d0, \
   76 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   77 
   78 #define muKill(task) \
   79 	LP1(0xb4, BOOL, muKill, struct Task *, task, d0, \
   80 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   81 
   82 #define muLimitDOSSetProtection(flag) \
   83 	LP1(0x60, BOOL, muLimitDOSSetProtection, BOOL, flag, d0, \
   84 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   85 
   86 #define muLoginA(taglist) \
   87 	LP1(0x24, ULONG, muLoginA, struct TagItem *, taglist, a0, \
   88 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   89 
   90 #define muLogoutA(taglist) \
   91 	LP1(0x1e, ULONG, muLogoutA, struct TagItem *, taglist, a0, \
   92 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   93 
   94 #define muPasswd(oldpwd, newpwd) \
   95 	LP2(0x30, BOOL, muPasswd, STRPTR, oldpwd, a0, STRPTR, newpwd, a1, \
   96 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   97 
   98 #define muRemMonitor(monitor) \
   99 	LP1NR(0xae, muRemMonitor, struct muMonitor *, monitor, a0, \
  100 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
  101 
  102 #define muSetDefProtectionA(taglist) \
  103 	LP1(0x4e, BOOL, muSetDefProtectionA, struct TagItem *, taglist, a0, \
  104 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
  105 
  106 #define muSetProtection(name, mask) \
  107 	LP2(0x5a, BOOL, muSetProtection, STRPTR, name, d1, LONG, mask, d2, \
  108 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
  109 
  110 #define muUnfreeze(task) \
  111 	LP1(0xc0, BOOL, muUnfreeze, struct Task *, task, d0, \
  112 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
  113 
  114 #define muUserInfo2ExtOwner(info) \
  115 	LP1(0x90, struct muExtOwner *, muUserInfo2ExtOwner, struct muUserInfo *, info, a0, \
  116 	, MULTIUSER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
  117 
  118 #if defined(USE_INLINE_STDARG) && !defined(__STRICT_ANSI__)
  119 
  120 #include <stdarg.h>
  121 
  122 #define muCheckPasswdTags(...) \
  123 	({ULONG _tags[] = { __VA_ARGS__ }; muCheckPasswd((struct TagItem *)_tags);})
  124 
  125 #define muGetRelationship(a0, a1, ...) \
  126 	({ULONG _tags[] = { __VA_ARGS__ }; muGetRelationshipA((a0), (a1), (struct TagItem *)_tags);})
  127 
  128 #define muLogin(...) \
  129 	({ULONG _tags[] = { __VA_ARGS__ }; muLoginA((struct TagItem *)_tags);})
  130 
  131 #define muLogout(...) \
  132 	({ULONG _tags[] = { __VA_ARGS__ }; muLogoutA((struct TagItem *)_tags);})
  133 
  134 #define muSetDefProtection(...) \
  135 	({ULONG _tags[] = { __VA_ARGS__ }; muSetDefProtectionA((struct TagItem *)_tags);})
  136 
  137 #endif
  138 
  139 #endif /* !_PPCINLINE_MULTIUSER_H */