Home | History | Annotate | Download | only in solaris
      1 /* Scalar test for new shmsys syscall subcodes available on Solaris 11. */
      2 
      3 #include "scalar.h"
      4 
      5 #include <sys/shm.h>
      6 #include <sys/shm_impl.h>
      7 
      8 __attribute__((noinline))
      9 static void sys_shmsys(void)
     10 {
     11    GO(SYS_shmsys, "(SHMCTL,IPC_XSTAT64) 4s 1m");
     12    SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_XSTAT64, x0 + 1); FAIL;
     13 }
     14 
     15 __attribute__((noinline))
     16 static void sys_shmsys2(void)
     17 {
     18    GO(SYS_shmsys, "(SHMADV,SHM_ADV_GET) 4s 1m");
     19    SY(SYS_shmsys, x0 + SHMADV, x0, x0 + SHM_ADV_GET, x0 + 1); FAIL;
     20 }
     21 
     22 __attribute__((noinline))
     23 static void sys_shmsys3(void)
     24 {
     25    GO(SYS_shmsys, "(SHMADV,SHM_ADV_SET) 4s 1m");
     26    SY(SYS_shmsys, x0 + SHMADV, x0, x0 + SHM_ADV_SET, x0 + 1); FAIL;
     27 }
     28 
     29 __attribute__((noinline))
     30 static void sys_shmsys4(void)
     31 {
     32    GO(SYS_shmsys, "(SHMGET_OSM) 5s 0m");
     33    SY(SYS_shmsys, x0 + SHMGET_OSM, x0, x0, x0, x0); FAIL;
     34 }
     35 
     36 int main(void)
     37 {
     38    /* Uninitialised, but we know px[0] is 0x0. */
     39    long *px = malloc(sizeof(long));
     40    x0 = px[0];
     41 
     42    /* SYS_shmsys                 52 */
     43    sys_shmsys();
     44    sys_shmsys2();
     45    sys_shmsys3();
     46    sys_shmsys4();
     47 
     48    return 0;
     49 }
     50 
     51