90 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
/* sys/shm.h
 | 
						|
 | 
						|
   Copyright 2001 Red Hat Inc. 
 | 
						|
   Written by Robert Collins <rbtcollins@hotmail.com>
 | 
						|
 | 
						|
This file is part of Cygwin.
 | 
						|
 | 
						|
This software is a copyrighted work licensed under the terms of the
 | 
						|
Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 | 
						|
details. */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C"
 | 
						|
{
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef _SYS_SHM_H
 | 
						|
#define _SYS_SHM_H
 | 
						|
 | 
						|
#include "cygwin_ipc.h"
 | 
						|
 | 
						|
#define SHM_RDONLY 1
 | 
						|
/* 64 Kb was hardcoded for x86. MS states this may change, but we need it in the header
 | 
						|
 * file.
 | 
						|
 */
 | 
						|
#define SHMLBA     65536
 | 
						|
#define SHM_RND	   1
 | 
						|
 | 
						|
typedef long int shmatt_t;
 | 
						|
 | 
						|
#if defined(__INSIDE_CYGWIN__) && defined(__cplusplus)
 | 
						|
 | 
						|
class _shmattach {
 | 
						|
public:
 | 
						|
  void *data;
 | 
						|
  int shmflg;
 | 
						|
  class _shmattach *next;
 | 
						|
};
 | 
						|
 | 
						|
class shmid_ds {
 | 
						|
public:
 | 
						|
  struct   ipc_perm shm_perm;
 | 
						|
  size_t   shm_segsz;
 | 
						|
  pid_t    shm_lpid;
 | 
						|
  pid_t    shm_cpid;
 | 
						|
  shmatt_t shm_nattch;
 | 
						|
  time_t   shm_atime;
 | 
						|
  time_t   shm_dtime;
 | 
						|
  time_t   shm_ctime;
 | 
						|
  void *mapptr;
 | 
						|
};
 | 
						|
 | 
						|
class shmnode {
 | 
						|
public:
 | 
						|
  class shmid_ds * shmds;
 | 
						|
  int shm_id;
 | 
						|
  class shmnode *next;
 | 
						|
  key_t key;
 | 
						|
  HANDLE filemap;
 | 
						|
  HANDLE attachmap;
 | 
						|
  class _shmattach *attachhead;
 | 
						|
};
 | 
						|
 | 
						|
#else
 | 
						|
/* this is what we return when queried. It has no bitwise correspondence
 | 
						|
 * the internal structures 
 | 
						|
 */
 | 
						|
struct shmid_ds {
 | 
						|
  struct   ipc_perm shm_perm;
 | 
						|
  size_t   shm_segsz;
 | 
						|
  pid_t    shm_lpid;
 | 
						|
  pid_t    shm_cpid;
 | 
						|
  shmatt_t shm_nattch;
 | 
						|
  time_t   shm_atime;
 | 
						|
  time_t   shm_dtime;
 | 
						|
  time_t   shm_ctime;
 | 
						|
};
 | 
						|
#endif /* __INSIDE_CYGWIN__ */
 | 
						|
 | 
						|
void *shmat(int, const void *, int);
 | 
						|
int   shmctl(int, int, struct shmid_ds *);
 | 
						|
int   shmdt(const void *);
 | 
						|
int   shmget(key_t, size_t, int);
 | 
						|
 | 
						|
#endif /* _SYS_SHM_H */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |