return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
default:
return RVAL_DECODED;
};
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
#endif /* HAVE_LINUX_BTRFS_H */
#define RVAL_NONE 040 /* Print nothing */
#define RVAL_DECODED 0100 /* syscall decoding finished */
+/* ioctl sub-parser successfully parsed (and printed) the argument */
+#define RVAL_IOCTL_PARSED 0200
#define IOCTL_NUMBER_UNKNOWN 0
#define IOCTL_NUMBER_HANDLED 1
}
if (exiting(tcp) && syserror(tcp) && !ioc_changed)
- return 1;
+ return RVAL_IOCTL_PARSED;
/*
* device mapper code uses %d in some places and %u in another, but
skip:
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
int
struct_ff_effect ffe;
if (umove_or_printaddr(tcp, arg, &ffe))
- return 1;
+ return RVAL_IOCTL_PARSED;
tprints("{type=");
printxval(evdev_ff_types, ffe.type, "FF_???");
if (abbrev(tcp)) {
tprints("...}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
tprintf("trigger={button=%" PRIu16
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
tprints("}");
}
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
tprints("]");
}
- return 1;
+ return RVAL_IOCTL_PARSED;
}
# ifdef EVIOCGKEYCODE_V2
struct input_keymap_entry ike;
if (umove_or_printaddr(tcp, arg, &ike))
- return 1;
+ return RVAL_IOCTL_PARSED;
tprintf("{flags=%" PRIu8
", len=%" PRIu8 ", ",
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
# endif /* EVIOCGKEYCODE_V2 */
id.product,
id.version);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
char decoded_arg[size];
if (umove_or_printaddr(tcp, arg, &decoded_arg))
- return 1;
+ return RVAL_IOCTL_PARSED;
tprints("[");
tprints("]");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
# ifdef EVIOCGMTSLOTS
const size_t size = _IOC_SIZE(code) / sizeof(int);
if (!size) {
printaddr(arg);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
int buffer[size];
if (umove_or_printaddr(tcp, arg, &buffer))
- return 1;
+ return RVAL_IOCTL_PARSED;
tprints("{code=");
printxval(evdev_mtslots, buffer[0], "ABS_MT_???");
tprints("]}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
# endif /* EVIOCGMTSLOTS */
{
tprints(", ");
printpair_int(tcp, arg, "%u");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
# endif /* EVIOCGREP || EVIOCSREP */
case EV_PWR:
tprints(", ");
printnum_int(tcp, arg, "%d");
- return 1;
+ return RVAL_IOCTL_PARSED;
case EV_FF_STATUS:
return decode_bitset(tcp, arg, evdev_ff_status,
FF_STATUS_MAX, "FF_STATUS_???");
default:
tprints(", ");
printaddr(arg);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
}
case EVIOCGVERSION:
tprints(", ");
printnum_int(tcp, arg, "%#x");
- return 1;
+ return RVAL_IOCTL_PARSED;
case EVIOCGEFFECTS:
tprints(", ");
printnum_int(tcp, arg, "%u");
- return 1;
+ return RVAL_IOCTL_PARSED;
case EVIOCGID:
return getid_ioctl(tcp, arg);
# ifdef EVIOCGREP
printaddr(arg);
else
printstrn(tcp, arg, tcp->u_rval);
- return 1;
+ return RVAL_IOCTL_PARSED;
# ifdef EVIOCGPROP
case _IOC_NR(EVIOCGPROP(0)):
return decode_bitset(tcp, arg, evdev_prop,
return ff_effect_ioctl(tcp, arg);
case EVIOCRMFF:
tprintf(", %d", (int) arg);
- return 1;
+ return RVAL_IOCTL_PARSED;
case EVIOCGRAB:
# ifdef EVIOCREVOKE
case EVIOCREVOKE:
# endif
tprintf(", %" PRI_klu, arg);
- return 1;
+ return RVAL_IOCTL_PARSED;
# ifdef EVIOCSCLOCKID
case EVIOCSCLOCKID:
tprints(", ");
printnum_int(tcp, arg, "%u");
- return 1;
+ return RVAL_IOCTL_PARSED;
# endif
}
return RVAL_DECODED;
};
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
/**
* Decode arg parameter of the ioctl call.
*
- * @return There are two bits of the return value important for the purposes of
+ * @return There are two flags of the return value important for the purposes of
* processing by SYS_FUNC(ioctl):
- * - 1 - indicates that ioctl decoder code has printed arg parameter.
+ * - RVAL_IOCTL_PARSED - indicates that ioctl decoder code has printed
+ * arg parameter.
* - RVAL_DECODED - indicates that decoding is done.
* As a result, the following behaviour is expected:
* - on entering:
* - 0 - decoding should be continued on exiting;
* - RVAL_DECODED - decoding on exiting is not needed and generic
* handler should print arg value;
- * - 1 | RVAL_DECODED - decoding on exiting is not needed and decoder
- * has printed arg value.
+ * - RVAL_IOCTL_PARSED | RVAL_DECODED - decoding on exiting is not
+ * needed and decoder
+ * has printed arg value.
* - on exiting:
* - 0 - generic handler should print arg value.
- * - 1 - decoder has printed arg value.
+ * - RVAL_IOCTL_PARSED - decoder has printed arg value.
*
- * Note that it makes no sense to return just 1 (without RVAL_DECODED)
- * on entering, or 1 | RVAL_DECODED on exiting, but, of course, it is
- * not prohibited (for example, it may be useful in cases where the
- * return path is common on entering and on exiting the syscall).
+ * Note that it makes no sense to return just RVAL_IOCTL_PARSED
+ * on entering, or RVAL_IOCTL_PARSED | RVAL_DECODED on exiting, but,
+ * of course, it is not prohibited (for example, it may be useful
+ * in cases where the return path is common on entering and on exiting
+ * the syscall).
*
- * SYS_FUNC(ioctl) clears bit 0 and passes all other bits of
- * ioctl_decode return value unchanged.
+ * SYS_FUNC(ioctl) clears RVAL_IOCTL_PARSED flag and passes all other
+ * bits of ioctl_decode return value unchanged.
*/
static int
ioctl_decode(struct tcb *tcp)
ret = ioctl_decode(tcp) | RVAL_DECODED;
}
- if ((ret & RVAL_DECODED) && !(ret & 1))
+ if ((ret & RVAL_DECODED) && !(ret & RVAL_IOCTL_PARSED))
tprintf(", %#" PRI_klx, tcp->u_arg[2]);
- ret &= ~1;
+ ret &= ~RVAL_IOCTL_PARSED;
return ret;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
switch (code) {
case NS_GET_USERNS:
case NS_GET_PARENT:
- return 1 + RVAL_FD + RVAL_DECODED;
+ return RVAL_IOCTL_PARSED | RVAL_FD | RVAL_DECODED;
case NS_GET_NSTYPE:
if (entering(tcp))
return 0;
outstr = xlookup(setns_types, tcp->u_rval);
if (outstr) {
tcp->auxstr = outstr;
- return 1 + RVAL_STR;
+ return RVAL_IOCTL_PARSED | RVAL_STR;
}
}
- return 1;
+ return RVAL_IOCTL_PARSED;
case NS_GET_OWNER_UID:
if (entering(tcp))
return 0;
printuid("[", uid);
tprints("]");
}
- return 1;
+ return RVAL_IOCTL_PARSED;
default:
return RVAL_DECODED;
}
tprintf(", duration=%u}", info.duration);
}
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#endif /* HAVE_SCSI_SG_H */
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return decode_sg_io_v4(tcp, arg);
default:
tprintf("[%u]", iid);
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
}
id.h_cmd_per_lun,
id.d_queue_depth);
}
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#endif /* HAVE_SCSI_SG_H */
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
if (umoven_or_printaddr(tcp, arg + skip_iid, sizeof(sg_io) - skip_iid,
&sg_io.dxfer_direction)) {
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
PRINT_FIELD_XVAL("", sg_io, dxfer_direction, sg_io_dxfer_direction,
if (entering_sg_io->dxfer_direction == SG_DXFER_FROM_DEV)
PRINT_FIELD_PTR(", ", *entering_sg_io, dxferp);
PRINT_FIELD_PTR(", ", *entering_sg_io, sbp);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
if (sg_io.interface_id != entering_sg_io->interface_id) {
PRINT_FIELD_U(" => ", sg_io, interface_id);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
if (sg_io.dxfer_direction == SG_DXFER_FROM_DEV ||
PRINT_FIELD_U(", ", sg_io, duration);
PRINT_FIELD_FLAGS(", ", sg_io, info, sg_io_info, "SG_INFO_???");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#else /* !HAVE_SCSI_SG_H */
decode_request(struct tcb *const tcp, const kernel_ulong_t arg)
{
tprints("{interface_id='S', ...}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
static int
if (umoven_or_printaddr(tcp, arg + skip_iid, sizeof(sg_io) - skip_iid,
&sg_io.protocol)) {
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
PRINT_FIELD_XVAL("", sg_io, protocol, bsg_protocol, "BSG_PROTOCOL_???");
/* print i/o fields fetched on entering syscall */
PRINT_FIELD_X(", ", *entering_sg_io, response);
PRINT_FIELD_X(", ", *entering_sg_io, din_xferp);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
if (sg_io.guard != entering_sg_io->guard) {
PRINT_FIELD_U(" => ", sg_io, guard);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
PRINT_FIELD_U(", ", sg_io, response_len);
PRINT_FIELD_D(", ", sg_io, dout_resid);
PRINT_FIELD_X(", ", sg_io, generated_tag);
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#else /* !HAVE_LINUX_BSG_H */
decode_request(struct tcb *const tcp, const kernel_ulong_t arg)
{
tprints("{guard='Q', ...}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
static int
tprints("}");
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
if (entering(tcp)) {
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
MPERS_PRINTER_DECL(int, sock_ioctl,
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &uc))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
PRINT_FIELD_X("{", uc, dst);
PRINT_FIELD_X(", ", uc, src);
PRINT_FIELD_X(", ", uc, len);
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &ur))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
PRINT_FIELD_UFFDIO_RANGE("{", ur, range);
PRINT_FIELD_FLAGS(", ", ur, mode,
uffd_register_mode_flags,
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &uz))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
PRINT_FIELD_UFFDIO_RANGE("{", uz, range);
PRINT_FIELD_FLAGS(", ", uz, mode, uffd_zeropage_flags,
"UFFDIO_ZEROPAGE_???");
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
#endif /* HAVE_LINUX_USERFAULTFD_H */
return 0;
tprints(", ");
if (umove_or_printaddr(tcp, arg, &caps))
- return 1;
+ return RVAL_IOCTL_PARSED;
PRINT_FIELD_CSTRING("{", caps, driver);
PRINT_FIELD_CSTRING(", ", caps, card);
PRINT_FIELD_CSTRING(", ", caps, bus_info);
"V4L2_CAP_???");
#endif
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_buf_types.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &f))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{index=%u, type=", f.index);
printxval(v4l2_buf_types, f.type, "V4L2_BUF_TYPE_???");
return 0;
print_pixelformat(f.pixelformat);
}
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_fields.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &f))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{type=");
printxval(v4l2_buf_types, f.type, "V4L2_BUF_TYPE_???");
if (is_get)
return 0;
if (!print_v4l2_format_fmt(tcp, ", ", &f)) {
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
return 0;
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_memories.h"
tprints(", ");
if (umove_or_printaddr(tcp, arg, &reqbufs))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{type=");
printxval(v4l2_buf_types, reqbufs.type, "V4L2_BUF_TYPE_???");
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_buf_flags.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &b))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{type=");
printxval(v4l2_buf_types, b.type, "V4L2_BUF_TYPE_???");
if (code != VIDIOC_DQBUF)
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
tprints("}");
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
static int
printxval(v4l2_buf_types, type, "V4L2_BUF_TYPE_???");
tprints("]");
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_streaming_capabilities.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &s))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{type=");
printxval(v4l2_buf_types, s.type, "V4L2_BUF_TYPE_???");
switch (s.type) {
break;
default:
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
} else {
if (syserror(tcp) || umove(tcp, arg, &s) < 0) {
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
tprints(is_get ? ", " : " => ");
}
}
if (exiting(tcp))
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &s))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{index=%u", s.index);
return 0;
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_input_types.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &i))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{index=%u", i.index);
return 0;
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_control_ids.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &c))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{id=");
printxval(v4l2_control_ids, c.id, "V4L2_CID_???");
if (!is_get)
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_tuner_types.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &c))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{index=%u", c.index);
if (is_get)
return 0;
} else {
if (syserror(tcp) || umove(tcp, arg, &c) < 0) {
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
tprints(is_get ? ", " : " => ");
}
if (exiting(tcp))
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#include "xlat/v4l2_control_types.h"
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &c))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{id=");
} else {
if (syserror(tcp) || umove(tcp, arg, &c) < 0) {
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
if (get_tcb_priv_ulong(tcp))
tprints(" => ");
printflags(v4l2_control_flags, c.flags, "V4L2_CTRL_FLAG_???");
tprints("}");
}
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &c))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{type=");
printxval(v4l2_buf_types, c.type, "V4L2_BUF_TYPE_???");
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
static int
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &c))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{type=");
printxval(v4l2_buf_types, c.type, "V4L2_BUF_TYPE_???");
if (is_get)
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
#ifdef VIDIOC_S_EXT_CTRLS
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &c))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprints("{ctrl_class=");
printxval(v4l2_control_classes, c.ctrl_class,
"V4L2_CTRL_CLASS_???");
tprintf(", count=%u", c.count);
if (!c.count) {
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
if (is_get)
return 0;
} else {
if (umove(tcp, arg, &c) < 0) {
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
tprints(is_get ? ", " : " => ");
}
if (exiting(tcp) || fail) {
tprints("}");
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}
/* entering */
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &s))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{index=%u, pixel_format=", s.index);
print_pixelformat(s.pixel_format);
return 0;
}
}
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#endif /* VIDIOC_ENUM_FRAMESIZES */
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &f))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{index=%u, pixel_format=", f.index);
print_pixelformat(f.pixel_format);
tprintf(", width=%u, height=%u", f.width, f.height);
tprints("}");
- return 1;
+ return RVAL_IOCTL_PARSED;
}
#endif /* VIDIOC_ENUM_FRAMEINTERVALS */
if (entering(tcp)) {
tprints(", ");
if (umove_or_printaddr(tcp, arg, &b))
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
tprintf("{count=%u, memory=", b.count);
printxval(v4l2_memories, b.memory, "V4L2_MEMORY_???");
tprints(", format={type=");
}
if (syserror(tcp) || umove(tcp, arg, &b))
- return 1;
+ return RVAL_IOCTL_PARSED;
sprintf(outstr, fmt, b.index, b.count);
tcp->auxstr = outstr;
- return 1 | RVAL_STR;
+ return RVAL_IOCTL_PARSED | RVAL_STR;
}
#endif /* VIDIOC_CREATE_BUFS */
return RVAL_DECODED;
}
- return RVAL_DECODED | 1;
+ return RVAL_DECODED | RVAL_IOCTL_PARSED;
}