From 7585deb0878bca96eee9a3e00fb5726c7725831c Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 16 Dec 1999 01:25:23 +0000 Subject: I have done the QNX4 port with the current source tree. The number of backend/Makefiles to be patched could significantly be reduced since they have been adopted to the QNX4 needs. Andreas Kardos --- src/backend/port/qnx/tstshm.c | 80 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/backend/port/qnx/tstshm.c (limited to 'src/backend/port/qnx/tstshm.c') diff --git a/src/backend/port/qnx/tstshm.c b/src/backend/port/qnx/tstshm.c new file mode 100644 index 00000000000..4cd2110edde --- /dev/null +++ b/src/backend/port/qnx/tstshm.c @@ -0,0 +1,80 @@ +/*------------------------------------------------------------------------- + * + * tstshm.c + * Test of System V Shared Memory Emulation + * + * Copyright (c) 1999, repas AEG Automation GmbH + * + * + * IDENTIFICATION + * $Header: /cvsroot/pgsql/src/backend/port/qnx/Attic/tstshm.c,v 1.1 1999/12/16 01:25:06 momjian Exp $ + * + *------------------------------------------------------------------------- + */ + +#include +#include +#include +#include + + +int main( int argc, char **argv ) +{ + int c, errflg = 0; + char s[80]; + key_t key = 0x1000; + size_t size = 256; + int shmid = -1; + caddr_t addr = NULL; + + optarg = NULL; + while( !errflg && ( c = getopt( argc, argv, "k:s:" ) ) != -1 ) { + switch( c ) { + case 'k': key = atoi( optarg ); break; + case 's': size = atoi( optarg ); break; + default: errflg++; + } + } + if( errflg ) { + printf( "usage: tstshm [-k key] [-s size]\n" ); + exit( 1 ); + } + + do { + printf( "shm(g)et, shm(a)t, shm(d)t, shm(c)tl, (w)rite, (r)ead, e(x)it: " ); + scanf( "%s", s ); + switch( s[0] ) { + case 'g': + shmid = shmget( key, size, IPC_CREAT | SHM_R | SHM_W ); + if( shmid == -1 ) perror( "shmget" ); + break; + + case 'a': + addr = shmat( shmid, NULL, 0 ); + if( addr == ( void * )-1 ) perror( "shmat" ); + break; + + case 'd': + if( shmdt( addr ) == -1 ) perror( "shmdt" ); + else addr = NULL; + break; + + case 'c': + if( shmctl( shmid, IPC_RMID, NULL ) == -1 ) perror( "shmctl" ); + else shmid = -1; + break; + + case 'w': + printf( "String to write: " ); + scanf( "%s", addr ); + break; + + case 'r': + puts( addr ); + break; + } + } + while( s[0] != 'x' ); + + return 0; +} -- cgit v1.2.3