aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-09-29 16:45:44 +0000
committerUlrich Drepper <drepper@redhat.com>2000-09-29 16:45:44 +0000
commit3107c0c5ae2c0dc2854471cb028e8a37a5e59e51 (patch)
treef21aa4585bc849d943a0211b34b6aed61d00376f /sysdeps
parent062a2a18f425f8b6c667b7239afeed2dd80d5e45 (diff)
downloadglibc-3107c0c5ae2c0dc2854471cb028e8a37a5e59e51.zip
glibc-3107c0c5ae2c0dc2854471cb028e8a37a5e59e51.tar.gz
glibc-3107c0c5ae2c0dc2854471cb028e8a37a5e59e51.tar.bz2
Update.
2000-09-29 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/sysdep.S (__ia64_syscall): Cleanup. * sysdeps/unix/sysv/linux/ia64/sysdep.h (CALL_MCOUNT): Implement. 2000-06-10 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/setjmp.S: Fix it so it actually works: call to __sigjmp_save must be done unconditionally to ensure jmp_buf is initialized properly. 2000-09-27 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Synch with Linux 2.4.0-test9-pre7. 2000-09-29 Jakub Jelinek <jakub@redhat.com> * nscd/nscd-client.h (NSCD_VERSION): Bump to 3. Use int32_t where appropriate. * nscd/nscd_gethst_r.c (nscd_gethst_r): Use uint32_t instead of size_t where appropriate. * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise. * nscd/hstcache.c (cache_addhst): Likewise. * nscd/grpcache.c (cache_addgr): Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/i386/bits/fcntl.h22
-rw-r--r--sysdeps/unix/sysv/linux/ia64/setjmp.S5
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep.S17
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep.h24
4 files changed, 49 insertions, 19 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
index ba15580..407ae76 100644
--- a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
@@ -88,6 +88,12 @@
# define F_GETSIG 11 /* Get number of signal to be sent. */
#endif
+#ifdef __USE_GNU
+# define F_SETLEASE 1024 /* Set a lease. */
+# define F_GETLEASE 1025 /* Enquire what lease is active. */
+# define F_NOTIFY 1026 /* Request notfications on a directory. */
+#endif
+
/* For F_[GET|SET]FL. */
#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
@@ -109,6 +115,22 @@
# define LOCK_UN 8 /* remove lock */
#endif
+#ifdef __USE_GNU
+# define LOCK_MAND 32 /* This is a mandatory flock: */
+# define LOCK_READ 64 /* ... which allows concurrent read operations. */
+# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
+# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
+#endif
+
+/* Types of directory notifications that may be requested with F_NOTIFY. */
+#define DN_ACCESS 0x00000001 /* File accessed. */
+#define DN_MODIFY 0x00000002 /* File modified. */
+#define DN_CREATE 0x00000004 /* File created. */
+#define DN_DELETE 0x00000008 /* File removed. */
+#define DN_RENAME 0x00000010 /* File renamed. */
+#define DN_ATTRIB 0x00000020 /* File changed attibutes. */
+#define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
+
struct flock
{
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
diff --git a/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S
index e5bf667..05f47bc 100644
--- a/sysdeps/unix/sysv/linux/ia64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/ia64/setjmp.S
@@ -152,15 +152,14 @@ __sigsetjmp:
st8.spill.nta [r2]=r6,16 // r6
st8.spill.nta [r3]=r7,16 // r7
- cmp.ne p8,p0=0,in1
;;
mov r23=ar.bsp
mov r25=ar.unat
mov out0=in0
- mov out1=in1
st8.nta [r2]=loc1,16 // b0
st8.nta [r3]=r17,16 // b1
+ mov out1=in1
;;
st8.nta [r2]=r18,16 // b2
st8.nta [r3]=r19,16 // b3
@@ -176,7 +175,7 @@ __sigsetjmp:
;;
st8.nta [r2]=r25 // ar.unat
st8.nta [r3]=in0 // &__jmp_buf
-(p8) br.call.dpnt.few rp=__sigjmp_save
+ br.call.dpnt.few rp=__sigjmp_save
.ret0: // force a new bundle ::q
mov r8=0
mov rp=loc1
diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.S b/sysdeps/unix/sysv/linux/ia64/sysdep.S
index dcf9803..e327e1f 100644
--- a/sysdeps/unix/sysv/linux/ia64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/ia64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Hewlett-Packard Co.
+/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
The GNU C Library is free software; you can redistribute it and/or
@@ -74,11 +74,10 @@ __syscall_error:
.endp __syscall_error
- .global __ia64_syscall
- .proc __ia64_syscall
-__ia64_syscall:
- break __BREAK_SYSCALL
- cmp.eq p6,p0=-1,r10
-(p6) br.cond.spnt.few __syscall_error
- ret
- .endp __ia64_syscall
+ENTRY(__ia64_syscall)
+ mov r15=r37 /* syscall number */
+ break __BREAK_SYSCALL
+ cmp.eq p6,p0=-1,r10 /* r10 = -1 on error */
+(p6) br.cond.spnt.few __syscall_error
+ ret
+PSEUDO_END(__ia64_syscall)
diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.h b/sysdeps/unix/sysv/linux/ia64/sysdep.h
index bb4ab29..5f7f3fe 100644
--- a/sysdeps/unix/sysv/linux/ia64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/ia64/sysdep.h
@@ -34,6 +34,23 @@
#ifdef __ASSEMBLER__
+#undef CALL_MCOUNT
+#ifdef PROF
+# define CALL_MCOUNT \
+ .data; \
+1: data8 0; \
+ .previous; \
+ alloc out0 = ar.pfs, 8, 0, 4, 0; \
+ mov out1 = gp; \
+ mov out2 = rp; \
+ ;; \
+ addl out3 = @ltoff(1b), gp; \
+ br.call.sptk.many rp = _mcount \
+ ;;
+#else
+# define CALL_MCOUNT /* Do nothing. */
+#endif
+
/* Linux uses a negative return value to indicate syscall errors, unlike
most Unices, which use the condition codes' carry flag.
@@ -48,13 +65,6 @@
table when we define it here. */
#define SYSCALL_ERROR_LABEL __syscall_error
-#ifdef PROF
-#error "define CALL_MCOUNT"
-#else
-#define CALL_MCOUNT
-#endif
-
-
#undef PSEUDO
#define PSEUDO(name, syscall_name, args) \
ENTRY(name) \