summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-07 21:56:15 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-07 21:56:15 +0100
commit5d2556c4fa4629b1c3adf59f29c699f00d4122ea (patch)
tree38d8e377f3bd66280aaaab51a706a73bf7383aed
parente2049d17a0fe36e07cbd944504fa6c8fe68832bf (diff)
downloadglibc-5d2556c4fa4629b1c3adf59f29c699f00d4122ea.tar.gz
hurd: fix f?chflags prototypes, declare them and their flags
-rw-r--r--ChangeLog10
-rw-r--r--misc/chflags.c4
-rw-r--r--misc/fchflags.c4
-rw-r--r--sysdeps/mach/hurd/bits/stat.h30
-rw-r--r--sysdeps/mach/hurd/chflags.c2
-rw-r--r--sysdeps/mach/hurd/fchflags.c2
6 files changed, 45 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 331b1dc347..0474b0f035 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,16 @@
* sysdeps/pthread/aio_misc.c [!AIO_PRIO_DELTA_MAX]: Do not check
priority against unexistent AIO_PRIO_DELTA_MAX.
+ * misc/chflags.c (chflags): Set flags parameter type to unsigned long
+ instead of int.
+ * misc/fchflags.c (fchflags): Likewise.
+ * sysdeps/mach/hurd/chflags.c (chflags): Likewise.
+ * sysdeps/mach/hurd/fchflags.c (fchflags): Likewise.
+ * sysdeps/mach/hurd/bits/stat.h [__USE_MISC] (UF_SETTABLE, UF_NODUMP,
+ UF_IMMUTABLE, UF_APPEND, UF_OPAQUE, UF_NOUNLINK, SF_SETTABLE,
+ SF_ARCHIVED, SF_IMMUTABLE, SF_APPEND, SF_NOUNLINK, SF_SNAPSHOT):
+ Declare macros.
+ [__USE_MISC] (chflags, fchflags): Declare functions.
2015-02-06 Roland McGrath <roland@hack.frob.com>
diff --git a/misc/chflags.c b/misc/chflags.c
index 48a9ce0c67..241be86be7 100644
--- a/misc/chflags.c
+++ b/misc/chflags.c
@@ -21,12 +21,12 @@
/* Change the flags of FILE to FLAGS. */
-int chflags (const char *file, int flags) __THROW;
+int chflags (const char *file, unsigned long int flags) __THROW;
int
chflags (file, flags)
const char *file;
- int flags;
+ unsigned long int flags;
{
if (file == NULL)
{
diff --git a/misc/fchflags.c b/misc/fchflags.c
index 32234613d9..b9f267583b 100644
--- a/misc/fchflags.c
+++ b/misc/fchflags.c
@@ -21,12 +21,12 @@
/* Change the flags of the file referenced by FD to FLAGS. */
-int fchflags (int fd, int flags) __THROW;
+int fchflags (int fd, unsigned long int flags) __THROW;
int
fchflags (fd, flags)
int fd;
- int flags;
+ unsigned long int flags;
{
if (fd < 0)
{
diff --git a/sysdeps/mach/hurd/bits/stat.h b/sysdeps/mach/hurd/bits/stat.h
index 6f9245742e..4d4bae4391 100644
--- a/sysdeps/mach/hurd/bits/stat.h
+++ b/sysdeps/mach/hurd/bits/stat.h
@@ -222,9 +222,37 @@ struct stat64
S_IUSEUNK|S_IUNKNOWN|07777))
#endif
-/* Default file creation mask (umask). */
#ifdef __USE_MISC
+/* Default file creation mask (umask). */
# define CMASK 0022
+
+/* Definitions of flags stored in file flags word. */
+
+/* Super-user and owner changeable flags. */
+# define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */
+# define UF_NODUMP 0x00000001 /* do not dump file */
+# define UF_IMMUTABLE 0x00000002 /* file may not be changed */
+# define UF_APPEND 0x00000004 /* writes to file may only append */
+# define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */
+# define UF_NOUNLINK 0x00000010 /* file may not be removed or renamed */
+
+/* Super-user changeable flags. */
+# define SF_SETTABLE 0xffff0000 /* mask of superuser changeable flags */
+# define SF_ARCHIVED 0x00010000 /* file is archived */
+# define SF_IMMUTABLE 0x00020000 /* file may not be changed */
+# define SF_APPEND 0x00040000 /* writes to file may only append */
+# define SF_NOUNLINK 0x00100000 /* file may not be removed or renamed */
+# define SF_SNAPSHOT 0x00200000 /* snapshot inode */
+
+__BEGIN_DECLS
+
+/* Set file flags for FILE to FLAGS. */
+extern int chflags (__const char *__file, unsigned long int __flags) __THROW;
+
+/* Set file flags of the file referred to by FD to FLAGS. */
+extern int fchflags (int __fd, unsigned long int __flags) __THROW;
+
+__END_DECLS
#endif
#endif /* bits/stat.h */
diff --git a/sysdeps/mach/hurd/chflags.c b/sysdeps/mach/hurd/chflags.c
index 07a8b1fe0f..f088f9b437 100644
--- a/sysdeps/mach/hurd/chflags.c
+++ b/sysdeps/mach/hurd/chflags.c
@@ -24,7 +24,7 @@
/* XXX shouldn't this be __chflags? */
int
-chflags (const char *file, int flags)
+chflags (const char *file, unsigned long int flags)
{
error_t err;
file_t port = __file_name_lookup (file, 0, 0);
diff --git a/sysdeps/mach/hurd/fchflags.c b/sysdeps/mach/hurd/fchflags.c
index d665e6671c..841d9df56e 100644
--- a/sysdeps/mach/hurd/fchflags.c
+++ b/sysdeps/mach/hurd/fchflags.c
@@ -25,7 +25,7 @@
/* XXX should be __fchflags? */
int
-fchflags (int fd, int flags)
+fchflags (int fd, unsigned long int flags)
{
error_t err;