mirror of git://sourceware.org/git/glibc.git
Update.
2000-01-03 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on kernel without mmap2 syscall.
This commit is contained in:
parent
e3aaaa2732
commit
52354636d3
|
|
@ -1,3 +1,8 @@
|
||||||
|
2000-01-03 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on
|
||||||
|
kernel without mmap2 syscall.
|
||||||
|
|
||||||
2000-01-03 Philip Blundell <philb@gnu.org>
|
2000-01-03 Philip Blundell <philb@gnu.org>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MMAP2_SYSCALL,
|
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MMAP2_SYSCALL,
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,12 @@ L(do_syscall):
|
||||||
popl %ebx
|
popl %ebx
|
||||||
popl %ebp
|
popl %ebp
|
||||||
|
|
||||||
|
#ifndef __ASSUME_MMAP2_SYSCALL
|
||||||
|
2:
|
||||||
|
cmp $-ENOSYS, %eax
|
||||||
|
je 3f
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If 0 > %eax > -4096 there was an error. */
|
/* If 0 > %eax > -4096 there was an error. */
|
||||||
cmpl $-4096, %eax
|
cmpl $-4096, %eax
|
||||||
ja SYSCALL_ERROR_LABEL
|
ja SYSCALL_ERROR_LABEL
|
||||||
|
|
@ -70,12 +76,6 @@ L(do_syscall):
|
||||||
L(pseudo_end):
|
L(pseudo_end):
|
||||||
ret
|
ret
|
||||||
|
|
||||||
#ifndef __ASSUME_MMAP2_SYSCALL
|
|
||||||
2:
|
|
||||||
cmp $-ENOSYS, %eax
|
|
||||||
je 3f
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This means the offset value is too large. */
|
/* This means the offset value is too large. */
|
||||||
L(einval):
|
L(einval):
|
||||||
popl %edi
|
popl %edi
|
||||||
|
|
@ -88,12 +88,11 @@ L(einval):
|
||||||
|
|
||||||
#if !defined __ASSUME_MMAP2_SYSCALL || !defined __NR_mmap2
|
#if !defined __ASSUME_MMAP2_SYSCALL || !defined __NR_mmap2
|
||||||
|
|
||||||
# ifndef __NR_mmap2
|
3:
|
||||||
/* Save registers. */
|
/* Save registers. */
|
||||||
movl %ebx, %edx
|
movl %ebx, %edx
|
||||||
# endif
|
|
||||||
3:
|
cmpl $0, 28(%esp)
|
||||||
cmpl $0, 44(%esp)
|
|
||||||
jne L(einval)
|
jne L(einval)
|
||||||
|
|
||||||
movl $SYS_ify(mmap), %eax /* System call number in %eax. */
|
movl $SYS_ify(mmap), %eax /* System call number in %eax. */
|
||||||
|
|
@ -119,6 +118,7 @@ L(pseudo_end):
|
||||||
ret
|
ret
|
||||||
|
|
||||||
L(einval):
|
L(einval):
|
||||||
|
movl %edx, %ebx
|
||||||
movl $-EINVAL, %eax
|
movl $-EINVAL, %eax
|
||||||
jmp SYSCALL_ERROR_LABEL
|
jmp SYSCALL_ERROR_LABEL
|
||||||
# endif
|
# endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue