[PATCH] posix: move sys/mman.h to newlib and test it in psxhdrs

Gedare Bloom gedare at rtems.org
Mon Aug 1 20:12:59 UTC 2016


This requires toolchain bump with the sister patch "rtems: add
sys/mman.h" on newlib.

On Mon, Aug 1, 2016 at 4:11 PM, Gedare Bloom <gedare at rtems.org> wrote:
> ---
>  cpukit/Makefile.am                                 |   1 -
>  cpukit/posix/include/sys/mman.h                    | 189 ---------------------
>  cpukit/posix/src/mprotect.c                        |   2 +-
>  cpukit/preinstall.am                               |   4 -
>  testsuites/psxtests/psxhdrs/Makefile.am            |  13 ++
>  testsuites/psxtests/psxhdrs/sys/mman/mlock.c       |  28 +++
>  testsuites/psxtests/psxhdrs/sys/mman/mlockall.c    |  27 +++
>  testsuites/psxtests/psxhdrs/sys/mman/mmap.c        |  30 ++++
>  testsuites/psxtests/psxhdrs/sys/mman/mprotect.c    |  29 ++++
>  testsuites/psxtests/psxhdrs/sys/mman/msync.c       |  29 ++++
>  testsuites/psxtests/psxhdrs/sys/mman/munlock.c     |  28 +++
>  testsuites/psxtests/psxhdrs/sys/mman/munlockall.c  |  25 +++
>  testsuites/psxtests/psxhdrs/sys/mman/munmap.c      |  28 +++
>  .../psxtests/psxhdrs/sys/mman/posix_madvise.c      |  29 ++++
>  testsuites/psxtests/psxhdrs/sys/mman/shm_open.c    |  29 ++++
>  testsuites/psxtests/psxhdrs/sys/mman/shm_unlink.c  |  27 +++
>  16 files changed, 323 insertions(+), 195 deletions(-)
>  delete mode 100644 cpukit/posix/include/sys/mman.h
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/mlock.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/mlockall.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/mmap.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/mprotect.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/msync.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/munlock.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/munlockall.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/munmap.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/posix_madvise.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/shm_open.c
>  create mode 100644 testsuites/psxtests/psxhdrs/sys/mman/shm_unlink.c
>
> diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
> index ac97530..9d90f82 100644
> --- a/cpukit/Makefile.am
> +++ b/cpukit/Makefile.am
> @@ -54,7 +54,6 @@ include_sys_HEADERS =
>  include_HEADERS += include/crypt.h
>  include_HEADERS += include/memory.h
>
> -include_sys_HEADERS += posix/include/sys/mman.h
>  include_sys_HEADERS += libcsupport/include/sys/ioccom.h
>  include_sys_HEADERS += libcsupport/include/sys/event.h
>  include_sys_HEADERS += libcsupport/include/sys/filio.h
> diff --git a/cpukit/posix/include/sys/mman.h b/cpukit/posix/include/sys/mman.h
> deleted file mode 100644
> index ddf34cc..0000000
> --- a/cpukit/posix/include/sys/mman.h
> +++ /dev/null
> @@ -1,189 +0,0 @@
> -/*     $NetBSD: mman.h,v 1.36 2005/09/13 01:42:51 christos Exp $       */
> -
> -/*-
> - * Copyright (c) 1982, 1986, 1993
> - *     The Regents of the University of California.  All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - *    notice, this list of conditions and the following disclaimer in the
> - *    documentation and/or other materials provided with the distribution.
> - * 3. Neither the name of the University nor the names of its contributors
> - *    may be used to endorse or promote products derived from this software
> - *    without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> - * SUCH DAMAGE.
> - *
> - *     @(#)mman.h      8.2 (Berkeley) 1/9/95
> - */
> -
> -#ifndef _SYS_MMAN_H_
> -#define _SYS_MMAN_H_
> -
> -#ifdef __rtems__
> -
> -#include <inttypes.h>
> -#include <stddef.h>
> -#include <sys/types.h>
> -
> -#else /* __rtems__ */
> -#include <sys/featuretest.h>
> -
> -#include <machine/ansi.h>
> -
> -#ifdef _BSD_SIZE_T_
> -typedef        _BSD_SIZE_T_    size_t;
> -#undef _BSD_SIZE_T_
> -#endif
> -
> -#include <sys/ansi.h>
> -
> -#ifndef        mode_t
> -typedef        __mode_t        mode_t;
> -#define        mode_t          __mode_t
> -#endif
> -
> -#ifndef        off_t
> -typedef        __off_t         off_t;          /* file offset */
> -#define        off_t           __off_t
> -#endif
> -#endif /* __rtems__ */
> -
> -
> -/*
> - * Protections are chosen from these bits, or-ed together
> - */
> -#define        PROT_NONE       0x00    /* no permissions */
> -#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 sharing type and options.
> - * Sharing types; choose one.
> - */
> -#define        MAP_SHARED      0x0001  /* share changes */
> -#define        MAP_PRIVATE     0x0002  /* changes are private */
> -
> -#ifdef _KERNEL
> -/*
> - * Deprecated flag; these are treated as MAP_PRIVATE internally by
> - * the kernel.
> - */
> -#define        MAP_COPY        0x0004  /* "copy" region at mmap time */
> -#endif
> -
> -/*
> - * Other flags
> - */
> -#define        MAP_FIXED        0x0010 /* map addr must be exactly as requested */
> -#define        MAP_RENAME       0x0020 /* Sun: rename private pages to file */
> -#define        MAP_NORESERVE    0x0040 /* Sun: don't reserve needed swap area */
> -#define        MAP_INHERIT      0x0080 /* region is retained after exec */
> -#define        MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
> -#define        MAP_TRYFIXED     0x0400 /* attempt hint address, even within break */
> -#define        MAP_WIRED        0x0800 /* mlock() mapping when it is established */
> -
> -/*
> - * Mapping type
> - */
> -#define        MAP_FILE        0x0000  /* map from file (default) */
> -#define        MAP_ANON        0x1000  /* allocated from memory, swap space */
> -
> -/*
> - * Alignment (expressed in log2).  Must be >= log2(PAGE_SIZE) and
> - * < # bits in a pointer (26 (acorn26), 32 or 64).
> - */
> -#define        MAP_ALIGNED(n)          ((n) << MAP_ALIGNMENT_SHIFT)
> -#define        MAP_ALIGNMENT_SHIFT     24
> -#define        MAP_ALIGNMENT_MASK      MAP_ALIGNED(0xff)
> -#define        MAP_ALIGNMENT_64KB      MAP_ALIGNED(16) /* 2^16 */
> -#define        MAP_ALIGNMENT_16MB      MAP_ALIGNED(24) /* 2^24 */
> -#define        MAP_ALIGNMENT_4GB       MAP_ALIGNED(32) /* 2^32 */
> -#define        MAP_ALIGNMENT_1TB       MAP_ALIGNED(40) /* 2^40 */
> -#define        MAP_ALIGNMENT_256TB     MAP_ALIGNED(48) /* 2^48 */
> -#define        MAP_ALIGNMENT_64PB      MAP_ALIGNED(56) /* 2^56 */
> -
> -/*
> - * Error indicator returned by mmap(2)
> - */
> -#define        MAP_FAILED      ((void *) -1)   /* mmap() failed */
> -
> -/*
> - * Flags to msync
> - */
> -#define        MS_ASYNC        0x01    /* perform asynchronous writes */
> -#define        MS_INVALIDATE   0x02    /* invalidate cached data */
> -#define        MS_SYNC         0x04    /* perform synchronous writes */
> -
> -/*
> - * Flags to mlockall
> - */
> -#define        MCL_CURRENT     0x01    /* lock all pages currently mapped */
> -#define        MCL_FUTURE      0x02    /* lock all pages mapped in the future */
> -
> -#if defined(_NETBSD_SOURCE)
> -/*
> - * 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       /* dont need these pages */
> -#define        MADV_SPACEAVAIL 5       /* insure that resources are reserved */
> -#define        MADV_FREE       6       /* pages are empty, free them */
> -/*
> - * Flags to minherit
> - */
> -#define        MAP_INHERIT_SHARE       0       /* share with child */
> -#define        MAP_INHERIT_COPY        1       /* copy into child */
> -#define        MAP_INHERIT_NONE        2       /* absent from child */
> -#define        MAP_INHERIT_DONATE_COPY 3       /* copy and delete -- not
> -                                          implemented in UVM */
> -#define        MAP_INHERIT_DEFAULT     MAP_INHERIT_COPY
> -#endif
> -
> -#ifndef _KERNEL
> -
> -#include <sys/cdefs.h>
> -
> -__BEGIN_DECLS
> -void   *mmap(void *, size_t, int, int, int, off_t);
> -int    munmap(void *, size_t);
> -int    mprotect(void *, size_t, int);
> -#ifndef __LIBC12_SOURCE__
> -#if defined(__rtems__)
> -int    msync(void *, size_t, int);
> -#else
> -int    msync(void *, size_t, int) __RENAME(__msync13);
> -#endif
> -#endif
> -int    mlock(const void *, size_t);
> -int    munlock(const void *, size_t);
> -int    mlockall(int);
> -int    munlockall(void);
> -#if defined(_NETBSD_SOURCE)
> -int    madvise(void *, size_t, int);
> -int    mincore(void *, size_t, char *);
> -int    minherit(void *, size_t, int);
> -#endif
> -__END_DECLS
> -
> -#endif /* !_KERNEL */
> -
> -#endif /* !_SYS_MMAN_H_ */
> diff --git a/cpukit/posix/src/mprotect.c b/cpukit/posix/src/mprotect.c
> index 7158383..13017ce 100644
> --- a/cpukit/posix/src/mprotect.c
> +++ b/cpukit/posix/src/mprotect.c
> @@ -31,7 +31,7 @@
>  #include <sys/mman.h>
>
>  int mprotect(
> -  void *addr,
> +  const void *addr,
>    size_t len,
>    int prot
>  )
> diff --git a/cpukit/preinstall.am b/cpukit/preinstall.am
> index 5ba1ee4..31f545e 100644
> --- a/cpukit/preinstall.am
> +++ b/cpukit/preinstall.am
> @@ -59,10 +59,6 @@ $(PROJECT_INCLUDE)/memory.h: include/memory.h $(PROJECT_INCLUDE)/$(dirstamp)
>         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/memory.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/memory.h
>
> -$(PROJECT_INCLUDE)/sys/mman.h: posix/include/sys/mman.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
> -       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/mman.h
> -PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/mman.h
> -
>  $(PROJECT_INCLUDE)/sys/ioccom.h: libcsupport/include/sys/ioccom.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
>         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/ioccom.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/ioccom.h
> diff --git a/testsuites/psxtests/psxhdrs/Makefile.am b/testsuites/psxtests/psxhdrs/Makefile.am
> index 82fb315..7bf1601 100644
> --- a/testsuites/psxtests/psxhdrs/Makefile.am
> +++ b/testsuites/psxtests/psxhdrs/Makefile.am
> @@ -138,6 +138,19 @@ lib_a_SOURCES += unistd/sync.c
>  lib_a_SOURCES += unistd/ualarm.c
>  lib_a_SOURCES += unistd/usleep.c
>
> +# methods in <sys/mman.h>
> +lib_a_SOURCES += sys/mman/mlockall.c
> +lib_a_SOURCES += sys/mman/mlock.c
> +lib_a_SOURCES += sys/mman/mmap.c
> +lib_a_SOURCES += sys/mman/mprotect.c
> +lib_a_SOURCES += sys/mman/msync.c
> +lib_a_SOURCES += sys/mman/munlockall.c
> +lib_a_SOURCES += sys/mman/munlock.c
> +lib_a_SOURCES += sys/mman/munmap.c
> +lib_a_SOURCES += sys/mman/posix_madvise.c
> +lib_a_SOURCES += sys/mman/shm_open.c
> +lib_a_SOURCES += sys/mman/shm_unlink.c
> +
>  if HAS_NETWORKING
>  # methods in <sys/socket.h>
>  lib_a_SOURCES += sys/socket/accept.c
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/mlock.c b/testsuites/psxtests/psxhdrs/sys/mman/mlock.c
> new file mode 100644
> index 0000000..1f7d7b5
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/mlock.c
> @@ -0,0 +1,28 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +
> +  return mlock( addr, len );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/mlockall.c b/testsuites/psxtests/psxhdrs/sys/mman/mlockall.c
> new file mode 100644
> index 0000000..023c0a4
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/mlockall.c
> @@ -0,0 +1,27 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  int flags = 0;
> +
> +  return mlockall( flags );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/mmap.c b/testsuites/psxtests/psxhdrs/sys/mman/mmap.c
> new file mode 100644
> index 0000000..7613200
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/mmap.c
> @@ -0,0 +1,30 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +void* test( void );
> +
> +void* test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +  int prot = 0, flags = 0, fildes = 0;
> +  off_t off = 0;
> +
> +  return mmap( addr, len, prot, flags, fildes, off );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/mprotect.c b/testsuites/psxtests/psxhdrs/sys/mman/mprotect.c
> new file mode 100644
> index 0000000..8b6f423
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/mprotect.c
> @@ -0,0 +1,29 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +  int prot = 0;
> +
> +  return mprotect( addr, len, prot );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/msync.c b/testsuites/psxtests/psxhdrs/sys/mman/msync.c
> new file mode 100644
> index 0000000..c22f145
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/msync.c
> @@ -0,0 +1,29 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +  int flags = 0;
> +
> +  return msync( addr, len, flags );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/munlock.c b/testsuites/psxtests/psxhdrs/sys/mman/munlock.c
> new file mode 100644
> index 0000000..df901e1
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/munlock.c
> @@ -0,0 +1,28 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +
> +  return munlock( addr, len );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/munlockall.c b/testsuites/psxtests/psxhdrs/sys/mman/munlockall.c
> new file mode 100644
> index 0000000..2f88ae5
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/munlockall.c
> @@ -0,0 +1,25 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  return munlockall();
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/munmap.c b/testsuites/psxtests/psxhdrs/sys/mman/munmap.c
> new file mode 100644
> index 0000000..253230a
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/munmap.c
> @@ -0,0 +1,28 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +
> +  return munmap( addr, len );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/posix_madvise.c b/testsuites/psxtests/psxhdrs/sys/mman/posix_madvise.c
> new file mode 100644
> index 0000000..59b7d1a
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/posix_madvise.c
> @@ -0,0 +1,29 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  void *addr = NULL;
> +  size_t len = 0;
> +  int advice = 0;
> +
> +  return posix_madvise( addr, len, advice );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/shm_open.c b/testsuites/psxtests/psxhdrs/sys/mman/shm_open.c
> new file mode 100644
> index 0000000..8db7610
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/shm_open.c
> @@ -0,0 +1,29 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  char *name = "test";
> +  int oflag = 0;
> +  mode_t mode = 0;
> +
> +  return shm_open( name, oflag, mode );
> +}
> diff --git a/testsuites/psxtests/psxhdrs/sys/mman/shm_unlink.c b/testsuites/psxtests/psxhdrs/sys/mman/shm_unlink.c
> new file mode 100644
> index 0000000..182f796
> --- /dev/null
> +++ b/testsuites/psxtests/psxhdrs/sys/mman/shm_unlink.c
> @@ -0,0 +1,27 @@
> +/*
> + *  Copyright (c) 2016 Gedare Bloom.
> + *
> + *  The license and distribution terms for this file may be
> + *  found in the file LICENSE in this distribution or at
> + *  http://www.rtems.org/license/LICENSE.
> + */
> +
> +/*  This test file is used to verify that the header files associated with
> + *  invoking this function are correct.
> + */
> +
> +
> +#ifdef HAVE_CONFIG_H
> +#include "config.h"
> +#endif
> +
> +#include <sys/mman.h>
> +
> +int test( void );
> +
> +int test( void )
> +{
> +  char *name = "test";
> +
> +  return shm_unlink( name );
> +}
> --
> 1.9.1
>


More information about the devel mailing list