@@ -21,32 +21,30 @@ static struct s {
} u;
} s;
-static void init_s(void)
+static void init_s(struct dm_ioctl *s, size_t size, size_t offs)
{
- memset(&s, 0, sizeof s);
- s.ioc.version[0] = DM_VERSION_MAJOR;
- s.ioc.version[1] = 1;
- s.ioc.version[2] = 2;
- s.ioc.data_size = sizeof(s);
- s.ioc.data_start = offsetof(struct s, u);
- s.ioc.dev = 0x1234;
- strcpy(s.ioc.name, "nnn");
- strcpy(s.ioc.uuid, "uuu");
+ memset(s, 0, size);
+ s->version[0] = DM_VERSION_MAJOR;
+ s->version[1] = 1;
+ s->version[2] = 2;
+ s->data_size = size;
+ s->data_start = offs;
+ s->dev = 0x1234;
+ strcpy(s->name, "nnn");
+ strcpy(s->uuid, "uuu");
}
int
main(void)
{
- init_s();
- s.ioc.data_size = sizeof(s.ioc);
- s.ioc.data_start = 0;
+ init_s(&s.ioc, sizeof(s.ioc), 0);
ioctl(-1, DM_VERSION, &s);
printf("ioctl(-1, DM_VERSION, "
"{version=4.1.2, data_size=%zu, data_start=0, "
"dev=makedev(18, 52), name=\"nnn\", uuid=\"uuu\", flags=0}) = "
"-1 EBADF (%m)\n", sizeof(s.ioc));
- init_s();
+ init_s(&s.ioc, sizeof(s), offsetof(struct s, u));
s.ioc.target_count = 1;
s.u.ts.target_spec.sector_start = 0x10;
s.u.ts.target_spec.length = 0x20;
@@ -62,7 +60,7 @@ main(void)
"length=32, target_type=\"tgt\", string=\"tparams\"}}) = "
"-1 EBADF (%m)\n", s.ioc.data_size, s.ioc.data_start);
- init_s();
+ init_s(&s.ioc, sizeof(s), offsetof(struct s, u));
s.u.tm.target_msg.sector = 0x1234;
strcpy(s.u.string + offsetof(struct dm_target_msg, message),
"tmsg");
@@ -73,7 +71,7 @@ main(void)
"{sector=4660, message=\"tmsg\"}}) = -1 EBADF (%m)\n",
s.ioc.data_size, s.ioc.data_start);
- init_s();
+ init_s(&s.ioc, sizeof(s), offsetof(struct s, u));
strcpy(s.u.string, "10 20 30 40");
ioctl(-1, DM_DEV_SET_GEOMETRY, &s);
printf("ioctl(-1, DM_DEV_SET_GEOMETRY, "
@@ -82,7 +80,7 @@ main(void)
"string=\"10 20 30 40\"}) = -1 EBADF (%m)\n",
s.ioc.data_size, s.ioc.data_start);
- init_s();
+ init_s(&s.ioc, sizeof(s), offsetof(struct s, u));
strcpy(s.u.string, "new-name");
ioctl(-1, DM_DEV_RENAME, &s);
printf("ioctl(-1, DM_DEV_RENAME, "
@@ -91,7 +89,7 @@ main(void)
"flags=0, string=\"new-name\"}) = -1 EBADF (%m)\n",
s.ioc.data_size, s.ioc.data_start);
- init_s();
+ init_s(&s.ioc, sizeof(s), offsetof(struct s, u));
s.ioc.target_count = -1U;
ioctl(-1, DM_TABLE_LOAD, &s);
printf("ioctl(-1, DM_TABLE_LOAD, "