about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux
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/unix/sysv/linux
parent062a2a18f425f8b6c667b7239afeed2dd80d5e45 (diff)
downloadglibc-3107c0c5ae2c0dc2854471cb028e8a37a5e59e51.tar.gz
glibc-3107c0c5ae2c0dc2854471cb028e8a37a5e59e51.tar.xz
glibc-3107c0c5ae2c0dc2854471cb028e8a37a5e59e51.zip
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/unix/sysv/linux')
-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 ba15580277..407ae7621a 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 e5bf667d45..05f47bc46e 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 dcf9803044..e327e1fa30 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 bb4ab29eba..5f7f3fe3eb 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)					\