]> sourceware.org Git - glibc.git/commitdiff
Test feature macros before defining non-POSIX things. Add MAP_FAILED.
authorUlrich Drepper <drepper@redhat.com>
Sun, 10 Aug 1997 17:56:16 +0000 (17:56 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 10 Aug 1997 17:56:16 +0000 (17:56 +0000)
sysdeps/unix/bsd/osf/sys/mman.h
sysdeps/unix/bsd/sun/sunos4/sys/mman.h
sysdeps/unix/bsd/ultrix4/sys/mman.h
sysdeps/unix/sysv/irix4/sys/mman.h

index 72846195d2e06677e0d12809e5effd772a496f39..816f271e30f1955320816c21fd42d56f3480d6c7 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for BSD-style memory management.  OSF/1 version.
-   Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    without PROT_READ.  The only guarantees are that no writing will be
    allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
 
-#define        PROT_NONE       0x00    /* No access.  */
-#define        PROT_READ       0x01    /* Pages can be read.  */
-#define        PROT_WRITE      0x02    /* Pages can be written.  */
-#define        PROT_EXEC       0x04    /* Pages can be executed.  */
+#define        PROT_NONE        0x00   /* No access.  */
+#define        PROT_READ        0x01   /* Pages can be read.  */
+#define        PROT_WRITE       0x02   /* Pages can be written.  */
+#define        PROT_EXEC        0x04   /* Pages can be executed.  */
 
 
 /* Flags contain mapping type, sharing type and options.  */
 
 /* Mapping type (must choose one and only one of these).  */
-#define        MAP_FILE        0x00    /* Mapped from a file or device.  */
-#define        MAP_ANON        0x10    /* Allocated from anonymous virtual memory.  */
-#define        MAP_ANONYMOUS   MAP_ANON
-#define        MAP_TYPE        0xf0    /* Mask for type field.  */
+#ifdef __USE_BSD
+# define MAP_FILE       0x00   /* Mapped from a file or device.  */
+# define MAP_ANON       0x10   /* Allocated from anonymous virtual memory.  */
+# define MAP_ANONYMOUS  MAP_ANON
+# define MAP_TYPE       0xf0   /* Mask for type field.  */
+#endif
 
 /* Sharing types (must choose one and only one of these).  */
-#define        MAP_SHARED      0x01    /* Share changes.  */
-#define        MAP_PRIVATE     0x02    /* Changes private; copy pages on write.  */
+#define        MAP_SHARED       0x01   /* Share changes.  */
+#define        MAP_PRIVATE      0x02   /* Changes private; copy pages on write.  */
 
 /* Other flags.  */
-#define        MAP_FIXED       0x0100  /* Map address must be exactly as requested. */
-#define        MAP_VARIABLE    0       /* Absence of MAP_FIXED.  */
-#define        MAP_HASSEMPHORE 0x0200  /* Region may contain semaphores.  */
-#define        MAP_INHERIT     0x0400  /* Region is retained after exec.  */
-#define        MAP_UNALIGNED   0x0800  /* File offset need not be page-aligned.  */
+#define        MAP_FIXED        0x0100 /* Map address must be exactly as requested. */
+#ifdef __USE_BSD
+# define MAP_VARIABLE   0      /* Absence of MAP_FIXED.  */
+# define MAP_HASSEMPHORE 0x0200        /* Region may contain semaphores.  */
+# define MAP_INHERIT    0x0400 /* Region is retained after exec.  */
+# define MAP_UNALIGNED  0x0800 /* File offset need not be page-aligned.  */
+#endif
 
 /* Advice to `madvise'.  */
-#define        MADV_NORMAL     0       /* No further special treatment.  */
-#define        MADV_RANDOM     1       /* Expect random page references.  */
-#define        MADV_SEQUENTIAL 2       /* Expect sequential page references.  */
-#define        MADV_WILLNEED   3       /* Will need these pages.  */
-#define        MADV_DONTNEED   4       /* Don't need these pages.  */
-#define        MADV_SPACEAVAIL 5       /* Ensure that resources are available.  */
+#ifdef __USE_BSD
+# define MADV_NORMAL    0      /* No further special treatment.  */
+# define MADV_RANDOM    1      /* Expect random page references.  */
+# define MADV_SEQUENTIAL 2     /* Expect sequential page references.  */
+# define MADV_WILLNEED  3      /* Will need these pages.  */
+# define MADV_DONTNEED  4      /* Don't need these pages.  */
+# define MADV_SPACEAVAIL 5     /* Ensure that resources are available.  */
+#endif
 
 /* Flags to `msync'.  */
 #define MS_ASYNC       1               /* Asynchronous cache flush.  */
 #define MS_SYNC                3               /* Synchronous cache flush.  */
 #define MS_INVALIDATE  4               /* Invalidate cached pages.  */
 
+/* Return value of `mmap' in case of an error.  */
+#define MAP_FAILED     ((__caddr_t) -1)
 
-#include <sys/cdefs.h>
 
 __BEGIN_DECLS
 /* Map addresses starting near ADDR and extending for LEN bytes.  from
@@ -79,34 +86,36 @@ __BEGIN_DECLS
    is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
    set in FLAGS, the mapping will be at ADDR exactly (which must be
    page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or (caddr_t) -1
+   The return value is the actual mapping address chosen or MAP_FAILED
    for errors (in which case `errno' is set).  A successful `mmap' call
    deallocates any previous mapping for the affected region.  */
 
-__caddr_t __mmap __P ((__caddr_t __addr, size_t __len,
-                      int __prot, int __flags, int __fd, off_t __offset));
-__caddr_t mmap __P ((__caddr_t __addr, size_t __len,
-                    int __prot, int __flags, int __fd, off_t __offset));
+extern __caddr_t __mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                             int __flags, int __fd, off_t __offset));
+extern __caddr_t mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                           int __flags, int __fd, off_t __offset));
 
 /* Deallocate any mapping for the region starting at ADDR and extending LEN
    bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-int __munmap __P ((__caddr_t __addr, size_t __len));
-int munmap __P ((__caddr_t __addr, size_t __len));
+extern int __munmap __P ((__caddr_t __addr, size_t __len));
+extern int munmap __P ((__caddr_t __addr, size_t __len));
 
 /* Change the memory protection of the region starting at ADDR and
    extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
    (and sets errno).  */
-int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
-int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
 
 /* Synchronize the region starting at ADDR and extending LEN bytes with the
    file it maps.  Filesystem operations on a file being mapped are
    unpredictable before this is done.  */
-int msync __P ((__caddr_t __addr, size_t __len, int __flags));
+extern int msync __P ((__caddr_t __addr, size_t __len, int __flags));
 
+#ifdef __USE_BSD
 /* Advise the system about particular usage patterns the program follows
    for the region starting at ADDR and extending LEN bytes.  */
-int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+extern int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+#endif
 
 __END_DECLS
 
index 65771a2aac2507a211390d62e3ba6de3c57a905c..d2a8998d9ace98134483e9f89abf24848dfb2f95 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for BSD-style memory management.  SunOS 4 version.
-   Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 /* Sharing types (must choose one and only one of these).  */
 #define        MAP_SHARED      0x01    /* Share changes.  */
 #define        MAP_PRIVATE     0x02    /* Changes private; copy pages on write.  */
-#define        MAP_TYPE        0x0f    /* Mask for sharing type.  */
+#ifdef __USE_BSD
+# define MAP_TYPE      0x0f    /* Mask for sharing type.  */
+#endif
 
 /* Other flags.  */
 #define        MAP_FIXED       0x10    /* Map address must be exactly as requested. */
 /* The following three flags are not actually implemented in SunOS 4.1.  */
-#define        MAP_RENAME      0x20    /* Rename private pages to file.  */
-#define        MAP_NORESERVE   0x40    /* Don't reserve needed swap area.  */
-#define        MAP_INHERIT     0x80    /* Region is retained after exec.  */
+#ifdef __USE_BSD
+# define MAP_RENAME    0x20    /* Rename private pages to file.  */
+# define MAP_NORESERVE 0x40    /* Don't reserve needed swap area.  */
+# define MAP_INHERIT   0x80    /* Region is retained after exec.  */
+#endif
 
 /* This is an internal flag that is always set in `mmap' system calls.  In
    older versions of SunOS 4 `mmap' did not return the actual mapping
 #define        _MAP_NEW        0x80000000
 
 /* Advice to `madvise'.  */
-#define        MADV_NORMAL     0       /* No further special treatment.  */
-#define        MADV_RANDOM     1       /* Expect random page references.  */
-#define        MADV_SEQUENTIAL 2       /* Expect sequential page references.  */
-#define        MADV_WILLNEED   3       /* Will need these pages.  */
-#define        MADV_DONTNEED   4       /* Don't need these pages.  */
+#ifdef __USE_BSD
+# define MADV_NORMAL   0       /* No further special treatment.  */
+# define MADV_RANDOM   1       /* Expect random page references.  */
+# define MADV_SEQUENTIAL       2       /* Expect sequential page references.  */
+# define MADV_WILLNEED 3       /* Will need these pages.  */
+# define MADV_DONTNEED 4       /* Don't need these pages.  */
+#endif
 
 /* Flags to `msync'.  */
 #define        MS_ASYNC        0x1             /* Return immediately, don't fsync.  */
 #define        MS_INVALIDATE   0x2             /* Invalidate caches.  */
 
+/* Return value of `mmap' in case of an error.  */
+#define MAP_FAILED     ((__caddr_t) -1)
 
-#include <sys/cdefs.h>
 
 __BEGIN_DECLS
 /* Map addresses starting near ADDR and extending for LEN bytes.  from
@@ -76,34 +83,36 @@ __BEGIN_DECLS
    is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
    set in FLAGS, the mapping will be at ADDR exactly (which must be
    page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or (caddr_t) -1
+   The return value is the actual mapping address chosen or MAP_FAILED
    for errors (in which case `errno' is set).  A successful `mmap' call
    deallocates any previous mapping for the affected region.  */
 
-__caddr_t __mmap __P ((__caddr_t __addr, size_t __len,
-                      int __prot, int __flags, int __fd, __off_t __offset));
-__caddr_t mmap __P ((__caddr_t __addr, size_t __len,
-                    int __prot, int __flags, int __fd, __off_t __offset));
+extern __caddr_t __mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                             int __flags, int __fd, __off_t __offset));
+extern __caddr_t mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                           int __flags, int __fd, __off_t __offset));
 
 /* Deallocate any mapping for the region starting at ADDR and extending LEN
    bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-int __munmap __P ((__caddr_t __addr, size_t __len));
-int munmap __P ((__caddr_t __addr, size_t __len));
+extern int __munmap __P ((__caddr_t __addr, size_t __len));
+extern int munmap __P ((__caddr_t __addr, size_t __len));
 
 /* Change the memory protection of the region starting at ADDR and
    extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
    (and sets errno).  */
-int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
-int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
 
 /* Synchronize the region starting at ADDR and extending LEN bytes with the
    file it maps.  Filesystem operations on a file being mapped are
    unpredictable before this is done.  */
-int msync __P ((__caddr_t __addr, size_t __len, int __flags));
+extern int msync __P ((__caddr_t __addr, size_t __len, int __flags));
 
+#ifdef __USE_BSD
 /* Advise the system about particular usage patterns the program follows
    for the region starting at ADDR and extending LEN bytes.  */
-int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+extern int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+#endif
 
 __END_DECLS
 
index 989bf2175468ccedc7c2748a36abbf880733bf30..4262fce438a85c569293876478809e5baf2785e9 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for BSD-style memory management.  Ultrix 4 version.
-   Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 /* Sharing types (must choose one and only one of these).  */
 #define        MAP_SHARED      0x01    /* Share changes.  */
 #define        MAP_PRIVATE     0x02    /* Changes private; copy pages on write.  */
-#define        MAP_TYPE        0x0f    /* Mask for sharing type.  */
+#ifdef __USE_BSD
+# define MAP_TYPE      0x0f    /* Mask for sharing type.  */
+#endif
 
 /* Other flags.  */
 #define        MAP_FIXED       0x10    /* Map address must be exactly as requested. */
 
 /* Advice to `madvise'.  */
-#define        MADV_NORMAL     0       /* No further special treatment.  */
-#define        MADV_RANDOM     1       /* Expect random page references.  */
-#define        MADV_SEQUENTIAL 2       /* Expect sequential page references.  */
-#define        MADV_WILLNEED   3       /* Will need these pages.  */
-#define        MADV_DONTNEED   4       /* Don't need these pages.  */
+#ifdef __USE_BSD
+# define MADV_NORMAL   0       /* No further special treatment.  */
+# define MADV_RANDOM   1       /* Expect random page references.  */
+# define MADV_SEQUENTIAL       2       /* Expect sequential page references.  */
+# define MADV_WILLNEED 3       /* Will need these pages.  */
+# define MADV_DONTNEED 4       /* Don't need these pages.  */
+#endif
 
+/* Return value of `mmap' in case of an error.  */
+#define MAP_FAILED     ((__caddr_t) -1)
 
-#include <sys/cdefs.h>
 
 __BEGIN_DECLS
 /* Map addresses starting near ADDR and extending for LEN bytes.  from
@@ -62,36 +67,38 @@ __BEGIN_DECLS
    is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
    set in FLAGS, the mapping will be at ADDR exactly (which must be
    page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or (caddr_t) -1
+   The return value is the actual mapping address chosen or MAP_FAILED
    for errors (in which case `errno' is set).  A successful `mmap' call
    deallocates any previous mapping for the affected region.  */
 
-__caddr_t __mmap __P ((__caddr_t __addr, size_t __len,
-                      int __prot, int __flags, int __fd, off_t __offset));
-__caddr_t mmap __P ((__caddr_t __addr, size_t __len,
-                    int __prot, int __flags, int __fd, off_t __offset));
+extern __caddr_t __mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                             int __flags, int __fd, off_t __offset));
+extern __caddr_t mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                           int __flags, int __fd, off_t __offset));
 
 /* Deallocate any mapping for the region starting at ADDR and extending LEN
    bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-int __munmap __P ((__caddr_t __addr, size_t __len));
-int munmap __P ((__caddr_t __addr, size_t __len));
+extern int __munmap __P ((__caddr_t __addr, size_t __len));
+extern int munmap __P ((__caddr_t __addr, size_t __len));
 
 /* Change the memory protection of the region starting at ADDR and
    extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
    (and sets errno).  */
-int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
-int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
 
 /* Ultrix 4 does not implement `msync' or `madvise'.  */
 
 /* Synchronize the region starting at ADDR and extending LEN bytes with the
    file it maps.  Filesystem operations on a file being mapped are
    unpredictable before this is done.  */
-int msync __P ((caddr_t __addr, size_t __len));
+extern int msync __P ((caddr_t __addr, size_t __len));
 
+#ifdef __USE_BSD
 /* Advise the system about particular usage patterns the program follows
    for the region starting at ADDR and extending LEN bytes.  */
-int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+extern int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+#endif
 
 __END_DECLS
 
index f42a9f67aaf95e8177094c7f89e1827cd4abb0d1..c3a923832a4b48df0aed652657a4ee09a0f87abe 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for BSD-style memory management.  Irix 4 version.
-   Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,8 +23,6 @@
 #include <features.h>
 
 #include <bits/types.h>
-#define __need_size_t
-#include <stddef.h>
 
 
 /* Protections are chosen from these bits, OR'd together.  The
    without PROT_READ.  The only guarantees are that no writing will be
    allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
 
-#define        PROT_NONE       0x00    /* No access.  */
-#define        PROT_READ       0x04    /* Pages can be read.  */
-#define        PROT_WRITE      0x02    /* Pages can be written.  */
-#define        PROT_EXEC       0x01    /* Pages can be executed.  */
-#define        PROT_EXECUTE    PROT_EXEC
+#define        PROT_NONE        0x00   /* No access.  */
+#define        PROT_READ        0x04   /* Pages can be read.  */
+#define        PROT_WRITE       0x02   /* Pages can be written.  */
+#define        PROT_EXEC        0x01   /* Pages can be executed.  */
+#ifdef __USE_MISC
+# define PROT_EXECUTE   PROT_EXEC
+#endif
 
 
 /* Sharing types (must choose one and only one of these).  */
-#define        MAP_SHARED      0x01    /* Share changes.  */
-#define        MAP_PRIVATE     0x02    /* Changes private; copy pages on write.  */
-#define        MAP_TYPE        0x0f    /* Mask for sharing type.  */
+#define        MAP_SHARED       0x01   /* Share changes.  */
+#define        MAP_PRIVATE      0x02   /* Changes private; copy pages on write.  */
+#ifdef __USE_BSD
+# define MAP_TYPE       0x0f   /* Mask for sharing type.  */
+#endif
 
 /* Other flags.  */
-#define        MAP_FIXED       0x10    /* Map address must be exactly as requested. */
-#define        MAP_RENAME      0x20    /* Rename private pages to file.  */
-#define        MAP_AUTOGROW    0x40    /* Grow file as pages are written.  */
-#define        MAP_LOCAL       0x80    /* Copy the mapped region on fork.  */
+#define        MAP_FIXED        0x10   /* Map address must be exactly as requested. */
+#ifdef __USE_MISC
+# define MAP_RENAME     0x20   /* Rename private pages to file.  */
+# define MAP_AUTOGROW   0x40   /* Grow file as pages are written.  */
+# define MAP_LOCAL      0x80   /* Copy the mapped region on fork.  */
+#endif
 
 /* Advice to `madvise'.  */
-#define        MADV_NORMAL     0       /* No further special treatment.  */
-#define        MADV_RANDOM     1       /* Expect random page references.  */
-#define        MADV_SEQUENTIAL 2       /* Expect sequential page references.  */
-#define        MADV_WILLNEED   3       /* Will need these pages.  */
-#define        MADV_DONTNEED   4       /* Don't need these pages.  */
+#ifdef __USE_BSD
+# define MADV_NORMAL    0      /* No further special treatment.  */
+# define MADV_RANDOM    1      /* Expect random page references.  */
+# define MADV_SEQUENTIAL 2     /* Expect sequential page references.  */
+# define MADV_WILLNEED  3      /* Will need these pages.  */
+# define MADV_DONTNEED  4      /* Don't need these pages.  */
+#endif
 
 /* Flags to `msync'.  */
-#define        MS_ASYNC        0x1             /* Return immediately, don't fsync.  */
-#define        MS_INVALIDATE   0x2             /* Invalidate caches.  */
+#define        MS_ASYNC         0x1            /* Return immediately, don't fsync.  */
+#define        MS_INVALIDATE    0x2            /* Invalidate caches.  */
 
+/* Return value of `mmap' in case of an error.  */
+#define MAP_FAILED     ((__caddr_t) -1)
 
-#include <sys/cdefs.h>
 
 __BEGIN_DECLS
 /* Map addresses starting near ADDR and extending for LEN bytes.  from
@@ -70,34 +77,36 @@ __BEGIN_DECLS
    is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
    set in FLAGS, the mapping will be at ADDR exactly (which must be
    page-aligned); otherwise the system chooses a convenient nearby address.
-   The return value is the actual mapping address chosen or (caddr_t) -1
+   The return value is the actual mapping address chosen or MAP_FAILED
    for errors (in which case `errno' is set).  A successful `mmap' call
    deallocates any previous mapping for the affected region.  */
 
-__caddr_t __mmap __P ((__caddr_t __addr, size_t __len,
-                      int __prot, int __flags, int __fd, __off_t __offset));
-__caddr_t mmap __P ((__caddr_t __addr, size_t __len,
-                    int __prot, int __flags, int __fd, __off_t __offset));
+extern __caddr_t __mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                             int __flags, int __fd, __off_t __offset));
+extern __caddr_t mmap __P ((__caddr_t __addr, size_t __len, int __prot,
+                           int __flags, int __fd, __off_t __offset));
 
 /* Deallocate any mapping for the region starting at ADDR and extending LEN
    bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
-int __munmap __P ((__caddr_t __addr, size_t __len));
-int munmap __P ((__caddr_t __addr, size_t __len));
+extern int __munmap __P ((__caddr_t __addr, size_t __len));
+extern int munmap __P ((__caddr_t __addr, size_t __len));
 
 /* Change the memory protection of the region starting at ADDR and
    extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
    (and sets errno).  */
-int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
-int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
+extern int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
 
 /* Synchronize the region starting at ADDR and extending LEN bytes with the
    file it maps.  Filesystem operations on a file being mapped are
    unpredictable before this is done.  */
-int msync __P ((caddr_t __addr, size_t __len, int __flags));
+extern int msync __P ((caddr_t __addr, size_t __len, int __flags));
 
+#ifdef __USE_BSD
 /* Advise the system about particular usage patterns the program follows
    for the region starting at ADDR and extending LEN bytes.  */
-int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+extern int madvise __P ((__caddr_t __addr, size_t __len, int __advice));
+#endif
 
 __END_DECLS
 
This page took 0.060643 seconds and 5 git commands to generate.