From e9c779cc892e4ce98883e8e1f4ba160fbc91e813 Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Wed, 16 Sep 2009 16:04:02 -0700 Subject: [PATCH] Port the Samba 4 shm_setup to QNX. --- source4/torture/util_smb.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) mode change 100644 => 100755 source4/torture/util_smb.c diff --git a/source4/torture/util_smb.c b/source4/torture/util_smb.c old mode 100644 new mode 100755 index 1c50694..536e296 --- a/source4/torture/util_smb.c +++ b/source4/torture/util_smb.c @@ -257,6 +257,7 @@ void *shm_setup(int size) int shmid; void *ret; +#ifndef __QNXNTO__ shmid = shmget(IPC_PRIVATE, size, SHM_R | SHM_W); if (shmid == -1) { printf("can't get shared memory\n"); @@ -275,6 +276,23 @@ void *shm_setup(int size) See Stevens "advanced programming in unix env" for details */ shmctl(shmid, IPC_RMID, 0); +#else + shmid = shm_open("private", O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); + if (shmid == -1) { + printf("can't get shared memory\n"); + exit(1); + } + shm_unlink("private"); + if (ftruncate(shmid, size) == -1) { + printf("can't set shared memory size\n"); + exit(1); + } + ret = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, shmid, 0); + if (ret == MAP_FAILED) { + printf("can't map shared memory\n"); + exit(1); + } +#endif return ret; } -- 1.6.4.2