glibc (2.38)

(root)/
include/
sys/
shm.h
       1  /* Copyright (C) 1995-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _SYS_SHM_H
      19  #define _SYS_SHM_H	1
      20  
      21  #include <features.h>
      22  
      23  #define __need_size_t
      24  #include <stddef.h>
      25  
      26  /* Get common definition of System V style IPC.  */
      27  #include <sys/ipc.h>
      28  
      29  /* Get system dependent definition of `struct shmid_ds' and more.  */
      30  #include <bits/shm.h>
      31  
      32  /* Define types required by the standard.  */
      33  #include <bits/types/time_t.h>
      34  
      35  #ifdef __USE_XOPEN
      36  # ifndef __pid_t_defined
      37  typedef __pid_t pid_t;
      38  #  define __pid_t_defined
      39  # endif
      40  #endif	/* X/Open */
      41  
      42  
      43  __BEGIN_DECLS
      44  
      45  /* The following System V style IPC functions implement a shared memory
      46     facility.  The definition is found in XPG4.2.  */
      47  
      48  /* Shared memory control operation.  */
      49  #ifndef __USE_TIME_BITS64
      50  extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf) __THROW;
      51  #else
      52  # ifdef __REDIRECT_NTH
      53  extern int __REDIRECT_NTH (shmctl,
      54                             (int __shmid, int __cmd, struct shmid_ds *__buf),
      55                             __shmctl64);
      56  # else
      57  #  define shmctl __shmctl64
      58  # endif
      59  #endif
      60  
      61  /* Get shared memory segment.  */
      62  extern int shmget (key_t __key, size_t __size, int __shmflg) __THROW;
      63  
      64  /* Attach shared memory segment.  */
      65  extern void *shmat (int __shmid, const void *__shmaddr, int __shmflg)
      66       __THROW;
      67  
      68  /* Detach shared memory segment.  */
      69  extern int shmdt (const void *__shmaddr) __THROW;
      70  
      71  __END_DECLS
      72  
      73  #endif /* sys/shm.h */