Home | History | Annotate | Download | only in strace

Lines Matching defs:ioc

57 dm_decode_device(const unsigned int code, const struct dm_ioctl *ioc)
65 if (ioc->dev) {
67 print_dev_t(ioc->dev);
69 if (ioc->name[0]) {
71 print_quoted_string(ioc->name, DM_NAME_LEN,
74 if (ioc->uuid[0]) {
76 print_quoted_string(ioc->uuid, DM_UUID_LEN,
85 const struct dm_ioctl *ioc)
91 ioc->target_count);
94 if (ioc->flags & DM_SUSPEND_FLAG)
101 ioc->event_nr);
117 ioc->target_count);
119 ioc->open_count);
121 ioc->event_nr);
130 dm_decode_flags(const struct dm_ioctl *ioc)
133 printflags(dm_flags, ioc->flags, "DM_???");
138 const struct dm_ioctl *const ioc)
143 uint32_t offset = ioc->data_start;
147 if (ioc->target_count)
153 for (i = 0; i < ioc->target_count; i++) {
161 if (offset_end <= offset || offset_end > ioc->data_size)
185 printstr_ex(tcp, addr + offset_end, ioc->data_size - offset_end,
192 offset = ioc->data_start + s.next;
214 const struct dm_ioctl *const ioc)
216 if (ioc->data_start == ioc->data_size)
230 uint32_t offset = ioc->data_start;
234 if (offset_end <= offset || offset_end > ioc->data_size)
240 space = (ioc->data_size - offset_end) / sizeof(dev_buf);
261 const struct dm_ioctl *const ioc)
266 uint32_t offset = ioc->data_start;
270 if (ioc->data_start == ioc->data_size)
286 if (offset_end <= offset || offset_end > ioc->data_size)
301 printstr_ex(tcp, addr + offset_end, ioc->data_size - offset_end,
320 const struct dm_ioctl *const ioc)
325 uint32_t offset = ioc->data_start;
329 if (ioc->data_start == ioc->data_size)
345 if (offset_end <= offset || offset_end > ioc->data_size)
357 printstr_ex(tcp, addr + offset_end, ioc->data_size - offset_end,
377 const struct dm_ioctl *const ioc)
379 if (ioc->data_start == ioc->data_size)
391 uint32_t offset = ioc->data_start;
394 if (offset_end > offset && offset_end <= ioc->data_size) {
401 printstr_ex(tcp, addr + offset_end, ioc->data_size - offset_end,
412 const struct dm_ioctl *const ioc)
421 uint32_t offset = ioc->data_start;
423 if (offset <= ioc->data_size) {
425 printstr_ex(tcp, addr + offset, ioc->data_size - offset,
454 struct dm_ioctl *ioc = NULL;
459 ioc = malloc(sizeof(*ioc));
460 if (!ioc)
463 ioc = alloca(sizeof(*ioc));
466 if ((umoven(tcp, arg, offsetof(struct dm_ioctl, data), ioc) < 0) ||
467 (ioc->data_size < offsetof(struct dm_ioctl, data_size))) {
469 free(ioc);
473 set_tcb_priv_data(tcp, ioc, free);
484 (ioc->version[0] != entering_ioc->version[0]) ||
485 (ioc->version[1] != entering_ioc->version[1]) ||
486 (ioc->version[2] != entering_ioc->version[2]) ||
487 (ioc->data_size != entering_ioc->data_size) ||
488 (ioc->data_start != entering_ioc->data_start) ||
489 (ioc->flags != entering_ioc->flags))
501 ioc->version[0], ioc->version[1], ioc->version[2]);
506 if (ioc->version[0] != DM_VERSION_MAJOR) {
511 tprintf(", data_size=%u", ioc->data_size);
513 if (ioc->data_size < offsetof(struct dm_ioctl, data)) {
519 tprintf(", data_start=%u", ioc->data_start);
521 dm_decode_device(code, ioc);
522 dm_decode_values(tcp, code, ioc);
523 dm_decode_flags(ioc);
530 dm_decode_dm_target_spec(tcp, arg, ioc);
535 dm_decode_dm_target_spec(tcp, arg, ioc);
540 dm_decode_dm_target_deps(tcp, arg, ioc);
545 dm_decode_dm_name_list(tcp, arg, ioc);
550 dm_decode_dm_target_versions(tcp, arg, ioc);
554 dm_decode_dm_target_msg(tcp, arg, ioc);
555 else if (!syserror(tcp) && ioc->flags & DM_DATA_OUT_FLAG)
556 dm_decode_string(tcp, arg, ioc);
562 dm_decode_string(tcp, arg, ioc);