Lines Matching defs:ds
25 static int test_ipc_set(struct shmid_ds *ds)
27 TEST(shmctl(shm_id, IPC_SET, ds));
35 shm_id, ds->shm_perm.mode);
39 static void check_mode(struct shmid_ds *ds, short exp_mode)
41 if (ds->shm_perm.mode == exp_mode) {
47 ds->shm_perm.mode, exp_mode);
52 struct shmid_ds ds;
56 SAFE_SHMCTL(shm_id, IPC_STAT, &ds);
58 old_mode = ds.shm_perm.mode;
59 old_ctime = ds.shm_ctime;
61 check_mode(&ds, 0666);
65 ds.shm_perm.mode &= ~0066;
67 if (test_ipc_set(&ds))
70 memset(&ds, 0, sizeof(ds));
71 SAFE_SHMCTL(shm_id, IPC_STAT, &ds);
72 check_mode(&ds, old_mode & ~0066);
74 if (ds.shm_ctime <= old_ctime || ds.shm_ctime > old_ctime + 10) {
76 (long)old_ctime, (long)ds.shm_ctime);
79 (long)(ds.shm_ctime - old_ctime));
82 ds.shm_perm.mode = old_mode;
83 if (test_ipc_set(&ds))
86 memset(&ds, 0, sizeof(ds));
87 SAFE_SHMCTL(shm_id, IPC_STAT, &ds);
88 check_mode(&ds, old_mode & MODE_MASK);