1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* ***** BEGIN LICENSE BLOCK *****
3
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
* http://www.mozilla.org/MPL/
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
15
* The Original Code is the Netscape Portable Runtime (NSPR).
17
* The Initial Developer of the Original Code is
18
* Netscape Communications Corporation.
19
* Portions created by the Initial Developer are Copyright (C) 1998-2000
20
* the Initial Developer. All Rights Reserved.
24
* Alternatively, the contents of this file may be used under the terms of
25
* either the GNU General Public License Version 2 or later (the "GPL"), or
26
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
* in which case the provisions of the GPL or the LGPL are applicable instead
28
* of those above. If you wish to allow use of your version of this file only
29
* under the terms of either the GPL or the LGPL, and not to allow others to
30
* use your version of this file under the terms of the MPL, indicate your
31
* decision by deleting the provisions above and replace them with the notice
32
* and other provisions required by the GPL or the LGPL. If you do not delete
33
* the provisions above, a recipient may use your version of this file under
34
* the terms of any one of the MPL, the GPL or the LGPL.
36
* ***** END LICENSE BLOCK ***** */
39
** prshm.c -- NSPR Named Shared Memory
46
extern PRLogModuleInfo *_pr_shm_lm;
49
#if defined PR_HAVE_SYSV_NAMED_SHARED_MEMORY
50
/* SysV implementation is in pr/src/md/unix/uxshm.c */
51
#elif defined PR_HAVE_POSIX_NAMED_SHARED_MEMORY
52
/* Posix implementation is in pr/src/md/unix/uxshm.c */
53
#elif defined PR_HAVE_WIN32_NAMED_SHARED_MEMORY
54
/* Win32 implementation is in pr/src/md/windows/w32shm.c */
57
** there is no named_shared_memory
59
extern PRSharedMemory* _MD_OpenSharedMemory( const char *name, PRSize size, PRIntn flags, PRIntn mode )
61
PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
65
extern void * _MD_AttachSharedMemory( PRSharedMemory *shm, PRIntn flags )
67
PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
71
extern PRStatus _MD_DetachSharedMemory( PRSharedMemory *shm, void *addr )
73
PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
77
extern PRStatus _MD_CloseSharedMemory( PRSharedMemory *shm )
79
PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
83
extern PRStatus _MD_DeleteSharedMemory( const char *name )
85
PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
88
#endif /* HAVE_SYSV_NAMED_SHARED_MEMORY */
91
** FUNCTION: PR_OpenSharedMemory()
94
PR_IMPLEMENT( PRSharedMemory * )
102
if (!_pr_initialized) _PR_ImplicitInitialization();
103
return( _PR_MD_OPEN_SHARED_MEMORY( name, size, flags, mode ));
104
} /* end PR_OpenSharedMemory() */
107
** FUNCTION: PR_AttachSharedMemory()
110
PR_IMPLEMENT( void * )
111
PR_AttachSharedMemory(
116
return( _PR_MD_ATTACH_SHARED_MEMORY( shm, flags ));
117
} /* end PR_AttachSharedMemory() */
120
** FUNCTION: PR_DetachSharedMemory()
123
PR_IMPLEMENT( PRStatus )
124
PR_DetachSharedMemory(
129
return( _PR_MD_DETACH_SHARED_MEMORY( shm, addr ));
130
} /* end PR_DetachSharedMemory() */
133
** FUNCTION: PR_CloseSharedMemory()
136
PR_IMPLEMENT( PRStatus )
137
PR_CloseSharedMemory(
141
return( _PR_MD_CLOSE_SHARED_MEMORY( shm ));
142
} /* end PR_CloseSharedMemory() */
145
** FUNCTION: PR_DeleteSharedMemory()
148
PR_EXTERN( PRStatus )
149
PR_DeleteSharedMemory(
153
if (!_pr_initialized) _PR_ImplicitInitialization();
154
return(_PR_MD_DELETE_SHARED_MEMORY( name ));
155
} /* end PR_DestroySharedMemory() */