Initial import of t_shmat. master
authorstathis <stathis@opensolaris.(none)>
Sat, 27 Mar 2010 16:00:55 +0000 (18:00 +0200)
committerstathis <stathis@opensolaris.(none)>
Sat, 27 Mar 2010 16:00:55 +0000 (18:00 +0200)
sys/shm.h/Makefile
sys/shm.h/t_shmat.c [new file with mode: 0644]
sys/shm.h/tfile
sys/shm.h/tfile.xml

index d8a8b39..9606144 100644 (file)
@@ -1,4 +1,5 @@
-all:   t_shm
+all:   t_shm   \
+       t_shmat \
 
 CC99=gcc -std=c99
 CCFLAGS=-Wall -W -Wformat-nonliteral -Wcast-align -Wpointer-arith \
@@ -10,9 +11,15 @@ CCFLAGS=-Wall -W -Wformat-nonliteral -Wcast-align -Wpointer-arith \
 t_shm: t_shm.c
        $(CC99) $(CCFLAGS) $(LIB) t_shm.c -o t_shm
 
+t_shmat: t_shmat.c
+       $(CC99) $(CCFLAGS) $(LIB) t_shmat.c -o t_shmat
+
 clean:
        git clean -f
 
 run:
        @printf "t_shm: "
        @-./t_shm
+
+       @printf "t_shmat: "
+       @-./t_shmat
diff --git a/sys/shm.h/t_shmat.c b/sys/shm.h/t_shmat.c
new file mode 100644 (file)
index 0000000..0dbb742
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2010, Stathis Kamperis
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/shm.h>
+#include <sys/stat.h>
+
+#define        SHMSIZE 1024
+
+int
+main(void)
+{
+       /* Get an XSI shared memory segment */
+       int fd;
+       fd = shmget(IPC_PRIVATE, SHMSIZE, IPC_CREAT | IPC_EXCL | 0700);
+       assert(fd != -1);
+
+       /* Attach the shared memory segment to our address space */
+       void *addr;
+       addr = shmat(fd, NULL, 0);
+       assert(addr != (void *)-1);
+
+       /* Write some stuff */
+       memset(addr, 0xFF, SHMSIZE);
+
+       /* We are done -- cleanup */
+       struct shmid_ds shmid_ds;
+       assert(shmctl(fd, IPC_RMID, &shmid_ds) != -1);
+
+       printf("passed\n");
+
+       return(EXIT_SUCCESS);
+}
index d0f6e84..2e40478 100644 (file)
@@ -1 +1,2 @@
 t_shm
+t_shmat
index 05ac337..8b1f88f 100644 (file)
                </calls>
        </test>
 
+
+       <test>
+               <desc></desc>
+               <binary>t_shmat</binary>
+               <timeout>10</timeout>
+               <iterations>1</iterations>
+               <optional>false</optional>
+               <calls>
+                       <function>memset</function>
+                       <function>shmat</function>
+                       <function>shmctl</function>
+                       <function>shmget</function>
+               </calls>
+       </test>
+
 </list-of-tests>