Dr Andrew Scott G7VAV

My photo
 
April 2024
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12


mman.h
001: /* Definitions for BSD-style memory management.
002:    Copyright (C) 1994-2000, 2003, 2004, 2005 Free Software Foundation, Inc.
003:    This file is part of the GNU C Library.
004: 
005:    The GNU C Library is free software; you can redistribute it and/or
006:    modify it under the terms of the GNU Lesser General Public
007:    License as published by the Free Software Foundation; either
008:    version 2.1 of the License, or (at your option) any later version.
009: 
010:    The GNU C Library is distributed in the hope that it will be useful,
011:    but WITHOUT ANY WARRANTY; without even the implied warranty of
012:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013:    Lesser General Public License for more details.
014: 
015:    You should have received a copy of the GNU Lesser General Public
016:    License along with the GNU C Library; if not, write to the Free
017:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
018:    02111-1307 USA.  */
019: 
020: #ifndef _SYS_MMAN_H
021: #define _SYS_MMAN_H     1
022: 
023: #include <features.h>
024: #include <bits/types.h>
025: #define __need_size_t
026: #include <stddef.h>
027: 
028: #ifndef __off_t_defined
029: # ifndef __USE_FILE_OFFSET64
030: typedef __off_t off_t;
031: # else
032: typedef __off64_t off_t;
033: # endif
034: # define __off_t_defined
035: #endif
036: 
037: #ifndef __mode_t_defined
038: typedef __mode_t mode_t;
039: # define __mode_t_defined
040: #endif
041: 
042: #include <bits/mman.h>
043: 
044: /* Return value of `mmap' in case of an error.  */
045: #define MAP_FAILED      ((void *) -1)
046: 
047: __BEGIN_DECLS
048: /* Map addresses starting near ADDR and extending for LEN bytes.  from
049:    OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
050:    is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
051:    set in FLAGS, the mapping will be at ADDR exactly (which must be
052:    page-aligned); otherwise the system chooses a convenient nearby address.
053:    The return value is the actual mapping address chosen or MAP_FAILED
054:    for errors (in which case `errno' is set).  A successful `mmap' call
055:    deallocates any previous mapping for the affected region.  */
056: 
057: #ifndef __USE_FILE_OFFSET64
058: extern void *mmap (void *__addr, size_t __len, int __prot,
059:                    int __flags, int __fd, __off_t __offset) __THROW;
060: #else
061: # ifdef __REDIRECT_NTH
062: extern void * __REDIRECT_NTH (mmap,
063:                               (void *__addr, size_t __len, int __prot,
064:                                int __flags, int __fd, __off64_t __offset),
065:                               mmap64);
066: # else
067: #  define mmap mmap64
068: # endif
069: #endif
070: #ifdef __USE_LARGEFILE64
071: extern void *mmap64 (void *__addr, size_t __len, int __prot,
072:                      int __flags, int __fd, __off64_t __offset) __THROW;
073: #endif
074: 
075: /* Deallocate any mapping for the region starting at ADDR and extending LEN
076:    bytes.  Returns 0 if successful, -1 for errors (and sets errno).  */
077: extern int munmap (void *__addr, size_t __len) __THROW;
078: 
079: /* Change the memory protection of the region starting at ADDR and
080:    extending LEN bytes to PROT.  Returns 0 if successful, -1 for errors
081:    (and sets errno).  */
082: extern int mprotect (void *__addr, size_t __len, int __prot) __THROW;
083: 
084: /* Synchronize the region starting at ADDR and extending LEN bytes with the
085:    file it maps.  Filesystem operations on a file being mapped are
086:    unpredictable before this is done.  Flags are from the MS_* set.
087: 
088:    This function is a cancellation point and therefore not marked with
089:    __THROW.  */
090: extern int msync (void *__addr, size_t __len, int __flags);
091: 
092: #ifdef __USE_BSD
093: /* Advise the system about particular usage patterns the program follows
094:    for the region starting at ADDR and extending LEN bytes.  */
095: extern int madvise (void *__addr, size_t __len, int __advice) __THROW;
096: #endif
097: #ifdef __USE_XOPEN2K
098: /* This is the POSIX name for this function.  */
099: extern int posix_madvise (void *__addr, size_t __len, int __advice) __THROW;
100: #endif
101: 
102: /* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
103:    be memory resident.  */
104: extern int mlock (__const void *__addr, size_t __len) __THROW;
105: 
106: /* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN).  */
107: extern int munlock (__const void *__addr, size_t __len) __THROW;
108: 
109: /* Cause all currently mapped pages of the process to be memory resident
110:    until unlocked by a call to the `munlockall', until the process exits,
111:    or until the process calls `execve'.  */
112: extern int mlockall (int __flags) __THROW;
113: 
114: /* All currently mapped pages of the process' address space become
115:    unlocked.  */
116: extern int munlockall (void) __THROW;
117: 
118: #ifdef __USE_MISC
119: /* mincore returns the memory residency status of the pages in the
120:    current process's address space specified by [start, start + len).
121:    The status is returned in a vector of bytes.  The least significant
122:    bit of each byte is 1 if the referenced page is in memory, otherwise
123:    it is zero.  */
124: extern int mincore (void *__start, size_t __len, unsigned char *__vec)
125:      __THROW;
126: #endif
127: 
128: #ifdef __USE_GNU
129: /* Remap pages mapped by the range [ADDR,ADDR+OLD_LEN) to new length
130:    NEW_LEN.  If MREMAP_MAYMOVE is set in FLAGS the returned address
131:    may differ from ADDR.  If MREMAP_FIXED is set in FLAGS the function
132:    takes another paramter which is a fixed address at which the block
133:    resides after a successful call.  */
134: extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
135:                      int __flags, ...) __THROW;
136: 
137: /* Remap arbitrary pages of a shared backing store within an existing
138:    VMA.  */
139: extern int remap_file_pages (void *__start, size_t __size, int __prot,
140:                              size_t __pgoff, int __flags) __THROW;
141: #endif
142: 
143: 
144: /* Open shared memory segment.  */
145: extern int shm_open (__const char *__name, int __oflag, mode_t __mode);
146: 
147: /* Remove shared memory segment.  */
148: extern int shm_unlink (__const char *__name);
149: 
150: __END_DECLS
151: 
152: #endif  /* sys/mman.h */
153: 


for client 13.58.112.1
© Andrew Scott 2006 - 2024,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/