mariadb/innobase/os/os0shm.c
unknown de135a120a ut0ut.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mem0pool.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0file.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0shm.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0sync.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0thread.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
page0page.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
que0que.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0ins.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0mysql.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0sel.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0upd.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0vers.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
srv0srv.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
srv0start.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0arr.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0rw.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0sync.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
trx0rec.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
trx0trx.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
srv0srv.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0rw.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0sync.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
ut0dbg.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
lock0lock.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
log0log.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
log0recv.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
ibuf0ibuf.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0buf.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0buf.ic	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
hash0hash.ic	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mach0data.ic	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mem0mem.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mem0pool.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mtr0mtr.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0file.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0sync.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0sync.ic	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0thread.h	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
univ.i  	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0mysql.ic	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
com0shm.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
data0data.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
data0type.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
dict0crea.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
dict0dict.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
fil0fil.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
fsp0fsp.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
fut0lst.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
btr0sea.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0buf.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0flu.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
btr0btr.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes
btr0cur.c	Fixes for 64-bit Linux, bug fixes, compiler warning fixes


innobase/btr/btr0btr.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/btr/btr0cur.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/btr/btr0sea.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/buf/buf0buf.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/buf/buf0flu.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/com/com0shm.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/data/data0data.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/data/data0type.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/dict/dict0crea.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/dict/dict0dict.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/fil/fil0fil.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/fsp/fsp0fsp.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/fut/fut0lst.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/ibuf/ibuf0ibuf.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/buf0buf.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/buf0buf.ic:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/hash0hash.ic:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mach0data.ic:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mem0mem.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mem0pool.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mtr0mtr.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0file.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0sync.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0sync.ic:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0thread.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/row0mysql.ic:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/univ.i:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/srv0srv.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/sync0rw.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/sync0sync.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/ut0dbg.h:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/lock/lock0lock.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/log/log0log.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/log/log0recv.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/mem/mem0pool.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0file.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0shm.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0sync.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0thread.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/page/page0page.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/que/que0que.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0ins.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0mysql.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0sel.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0upd.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0vers.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/srv/srv0srv.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/srv/srv0start.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/sync/sync0arr.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/sync/sync0rw.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/sync/sync0sync.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/trx/trx0rec.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/trx/trx0trx.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/ut/ut0ut.c:
  Fixes for 64-bit Linux, bug fixes, compiler warning fixes
2001-03-02 17:33:11 +02:00

152 lines
3.1 KiB
C

/******************************************************
The interface to the operating system
shared memory primitives
(c) 1995 Innobase Oy
Created 9/23/1995 Heikki Tuuri
*******************************************************/
#include "os0shm.h"
#ifdef UNIV_NONINL
#include "os0shm.ic"
#endif
#ifdef __WIN__
#include "windows.h"
typedef HANDLE os_shm_t;
#endif
/********************************************************************
Creates an area of shared memory. It can be named so that
different processes may access it in the same computer.
If an area with the same name already exists, returns
a handle to that area (where the size of the area is
not changed even if this call requests a different size).
To use the area, it first has to be mapped to the process
address space by os_shm_map. */
os_shm_t
os_shm_create(
/*==========*/
/* out, own: handle to the shared
memory area, NULL if error */
ulint size, /* in: area size < 4 GB */
char* name) /* in: name of the area as a null-terminated
string */
{
#ifdef __WIN__
os_shm_t shm;
ut_a(name);
ut_a(size > 0);
ut_a(size < 0xFFFFFFFF);
/* In Windows NT shared memory is created as a memory mapped
file */
shm = CreateFileMapping((HANDLE)0xFFFFFFFF, /* use operating system
swap file as the backing
file */
NULL, /* default security
descriptor */
PAGE_READWRITE, /* allow reading and
writing */
0, /* size must be less
than 4 GB */
(DWORD)size,
name);
return(shm);
#else
UT_NOT_USED(size);
UT_NOT_USED(name);
return(NULL);
#endif
}
/***************************************************************************
Frees a shared memory area. The area can be freed only after it
has been unmapped in all the processes where it was mapped. */
ibool
os_shm_free(
/*========*/
/* out: TRUE if success */
os_shm_t shm) /* in, own: handle to a shared memory area */
{
#ifdef __WIN__
BOOL ret;
ut_a(shm);
ret = CloseHandle(shm);
if (ret) {
return(TRUE);
} else {
return(FALSE);
}
#else
UT_NOT_USED(shm);
return(FALSE);
#endif
}
/***************************************************************************
Maps a shared memory area in the address space of a process. */
void*
os_shm_map(
/*=======*/
/* out: address of the area, NULL if error */
os_shm_t shm) /* in: handle to a shared memory area */
{
#ifdef __WIN__
void* mem;
ut_a(shm);
mem = MapViewOfFile(shm,
FILE_MAP_ALL_ACCESS, /* read and write access
allowed */
0, /* map from start of */
0, /* area */
0); /* map the whole area */
return(mem);
#else
UT_NOT_USED(shm);
return(NULL);
#endif
}
/***************************************************************************
Unmaps a shared memory area from the address space of a process. */
ibool
os_shm_unmap(
/*=========*/
/* out: TRUE if succeed */
void* addr) /* in: address of the area */
{
#ifdef __WIN__
BOOL ret;
ut_a(addr);
ret = UnmapViewOfFile(addr);
if (ret) {
return(TRUE);
} else {
return(FALSE);
}
#else
UT_NOT_USED(addr);
return(FALSE);
#endif
}