Fix for horror _AIX

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@29 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Björn Groenvall
1995-07-10 22:12:42 +00:00
parent 88cbacc802
commit 8c2d8964c2

View File

@@ -119,7 +119,8 @@ k_afsklog(char *realm)
#define SINGLE_ENTRY_POINT 1 #define SINGLE_ENTRY_POINT 1
#define MULTIPLE_ENTRY_POINT 2 #define MULTIPLE_ENTRY_POINT 2
#define SINGLE_ENTRY_POINT2 3 #define SINGLE_ENTRY_POINT2 3
#define UNKNOWN_ENTRY_POINT 4 #define AIX_ENTRY_POINTS 4
#define UNKNOWN_ENTRY_POINT 5
static int afs_entry_point = UNKNOWN_ENTRY_POINT; static int afs_entry_point = UNKNOWN_ENTRY_POINT;
int int
@@ -146,6 +147,10 @@ k_pioctl(char *a_path,
a_path, o_opcode, a_paramsP, a_followSymlinks); a_path, o_opcode, a_paramsP, a_followSymlinks);
#endif #endif
#ifdef _AIX
return lpioctl(a_path, o_opcode, a_paramsP, a_followSymlinks);
#endif
errno = ENOSYS; errno = ENOSYS;
kill(getpid(), SIGSYS); /* You loose! */ kill(getpid(), SIGSYS); /* You loose! */
return -1; return -1;
@@ -177,6 +182,10 @@ k_setpag(void)
return syscall(AFS_SYSCALL2, AFSCALL_SETPAG); return syscall(AFS_SYSCALL2, AFSCALL_SETPAG);
#endif #endif
#ifdef _AIX
return lsetpag();
#endif
errno = ENOSYS; errno = ENOSYS;
kill(getpid(), SIGSYS); /* You loose! */ kill(getpid(), SIGSYS); /* You loose! */
return -1; return -1;
@@ -254,6 +263,18 @@ k_hasafs(void)
} }
#endif /* AFS_SYSCALL */ #endif /* AFS_SYSCALL */
#ifdef _AIX
if (setjmp(catch_SIGSYS) == 0)
{
lpioctl(0, 0, 0, 0);
if (errno == EINVAL)
{
afs_entry_point = AIX_ENTRY_POINTS;
goto done;
}
}
#endif
done: done:
(void) signal(SIGSYS, saved_func); (void) signal(SIGSYS, saved_func);
errno = saved_errno; errno = saved_errno;