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:
@@ -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;
|
||||||
|
Reference in New Issue
Block a user