Lines Matching refs:desc
532 static bool ioctl_decode(unsigned req, ioctl_desc *desc) {
533 CHECK(desc);
534 desc->req = req;
535 desc->name = "<DECODED_IOCTL>";
536 desc->size = IOC_SIZE(req);
538 if (desc->size > 0xFFFF) return false;
542 desc->type = ioctl_desc::NONE;
545 desc->type = ioctl_desc::READWRITE;
548 desc->type = ioctl_desc::WRITE;
551 desc->type = ioctl_desc::READ;
557 if ((desc->type == IOC_NONE) != (desc->size == 0)) return false;
565 const ioctl_desc *desc = ioctl_table_lookup(req);
566 if (desc) return desc;
569 desc = ioctl_table_lookup(req & ~(IOC_SIZEMASK << IOC_SIZESHIFT));
572 if (desc && desc->size == 0 &&
573 (desc->type == ioctl_desc::READWRITE || desc->type == ioctl_desc::WRITE ||
574 desc->type == ioctl_desc::READ))
575 return desc;
579 static void ioctl_common_pre(void *ctx, const ioctl_desc *desc, int d,
581 if (desc->type == ioctl_desc::READ || desc->type == ioctl_desc::READWRITE) {
582 unsigned size = desc->size ? desc->size : IOC_SIZE(request);
585 if (desc->type != ioctl_desc::CUSTOM)
594 static void ioctl_common_post(void *ctx, const ioctl_desc *desc, int res, int d,
596 if (desc->type == ioctl_desc::WRITE || desc->type == ioctl_desc::READWRITE) {
598 unsigned size = desc->size ? desc->size : IOC_SIZE(request);
601 if (desc->type != ioctl_desc::CUSTOM)