fixup! ioctl: decode ioctl type
This commit is contained in:
parent
b4e5977fee
commit
d7beb8d758
13
ioctl.c
13
ioctl.c
@ -72,17 +72,24 @@ ioctl_next_match(const struct_ioctlent *iop)
|
||||
static const char *
|
||||
ioctl_type_str(uint8_t ioc_type)
|
||||
{
|
||||
static char buf[] = { '\'', ' ', '\'', '\0' };
|
||||
static char buf[] = { '\'', '\\', '\'', '\'', '\0' };
|
||||
|
||||
const char *ret = xlookup(ioc_types, ioc_type);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (ioc_type >= ' ' && ioc_type < 0x7F) {
|
||||
buf[1] = ioc_type;
|
||||
if (ioc_type == '\\' || ioc_type == '\'') {
|
||||
buf[1] = '\\';
|
||||
buf[2] = ioc_type;
|
||||
return buf;
|
||||
}
|
||||
|
||||
if (ioc_type >= ' ' && ioc_type < 0x7F) {
|
||||
buf[1] = '\'';
|
||||
buf[2] = ioc_type;
|
||||
return buf + 1;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -102,6 +102,25 @@ main(void)
|
||||
printf("ioctl(-1, _IOC(_IOC_READ, 0xde, 0xad, 0x8), %p)"
|
||||
" = -1 EBADF (%m)\n", &data);
|
||||
|
||||
(void) ioctl(-1, _IO(0x7f, 0xad), &data);
|
||||
printf("ioctl(-1, _IOC(_IOC_NONE, APEX_IOCTL_BASE, 0xad, 0), %p)"
|
||||
" = -1 EBADF (%m)\n", &data);
|
||||
|
||||
(void) ioctl(-1, _IOWR(0x7e, 0xad, char[0xf00d]), &data);
|
||||
printf("ioctl(-1"
|
||||
", _IOC(_IOC_READ|_IOC_WRITE, '~', 0xad, %#x), %p)"
|
||||
" = -1 EBADF (%m)\n", 0xf00d & _IOC_SIZEMASK, &data);
|
||||
|
||||
(void) ioctl(-1, _IOW('\'', 0xad, char[0xbad]), &data);
|
||||
printf("ioctl(-1"
|
||||
", _IOC(_IOC_WRITE, '\\'', 0xad, 0xbad), %p)"
|
||||
" = -1 EBADF (%m)\n", &data);
|
||||
|
||||
(void) ioctl(-1, _IOR('\\', 0xad, char), &data);
|
||||
printf("ioctl(-1"
|
||||
", _IOC(_IOC_READ, '\\\\', 0xad, 0x1), %p)"
|
||||
" = -1 EBADF (%m)\n", &data);
|
||||
|
||||
puts("+++ exited with 0 +++");
|
||||
return 0;
|
||||
}
|
||||
|
@ -2,30 +2,48 @@
|
||||
/* Those constants that correspond ASCII alphanumeric characters are commented
|
||||
* out, as there are too much conflicts and it makes more sense to just print
|
||||
* a character */
|
||||
|
||||
/* Each of these two ioctl types have exactly one ioctl command as of now */
|
||||
/* HYPFS_IOCTL_MAGIC 0x10 */
|
||||
/* SCLP_CTL_IOCTL_MAGIC 0x10 */
|
||||
RDMA_IOCTL_MAGIC 0x1B
|
||||
SNAPSHOT_IOC_MAGIC '3'
|
||||
VFIO_TYPE ';'
|
||||
PTP_CLK_MAGIC '='
|
||||
SYNC_IOC_MAGIC '>'
|
||||
/* AGPIOC_BASE 'A' */
|
||||
/* APC_IOC 'A' */
|
||||
/* CCISS_IOC_MAGIC 'B' */
|
||||
/* CAP_IOCTL_BASE 'C' */
|
||||
/* CS_IO_MAGIC 'C' */
|
||||
/* DASD_IOCTL_LETTER 'D' */
|
||||
/* FFB_IOCTL 'F' */
|
||||
/* GIGASET_IOCTL 'G' */ /* 0x47 */
|
||||
/* GRU_IOCTL_NUM 'G' */
|
||||
/* ION_IOC_MAGIC 'I' */
|
||||
/* AMDKFD_IOCTL_BASE 'K' */
|
||||
/* MPT3_MAGIC_NUMBER 'L' */
|
||||
/* NVM_IOCTL 'L' */
|
||||
/* MB862XX_BASE 'M' */
|
||||
/* MDI_IOCTL 'M' */
|
||||
/* MTRR_IOCTL_BASE 'M' */
|
||||
/* ND_IOCTL 'N' */
|
||||
/* UBI_VOL_IOC_MAGIC 'O' */
|
||||
/* RFKILL_IOC_MAGIC 'R' */
|
||||
/* FW_MGMT_IOCTL_BASE 'S' */
|
||||
/* SEV_IOC_TYPE 'S' */
|
||||
/* UINPUT_IOCTL_BASE 'U' */
|
||||
/* SW_SYNC_IOC_MAGIC 'W' */
|
||||
/* WATCHDOG_IOCTL_BASE 'W' */
|
||||
/* WMI_IOC 'W' */
|
||||
/* PACKET_IOCTL_MAGIC 'X' */
|
||||
/* HP_IOC_MAGIC 'Z' */
|
||||
/* USBTMC_IOC_NR '[' */ /* 91 */
|
||||
/* ADF_CTL_IOC_MAGIC 'a' */
|
||||
/* DMA_BUF_BASE 'b' */
|
||||
/* CHSC_IOCTL_MAGIC 'c' */
|
||||
/* CLP_IOCTL_MAGIC 'c' */
|
||||
/* CM_IOC_MAGIC 'c' */
|
||||
/* RIO_CM_IOC_MAGIC 'c' */
|
||||
/* DRM_IOCTL_BASE 'd' */
|
||||
/* CIO 'd' */
|
||||
@ -36,20 +54,25 @@ PTP_CLK_MAGIC '='
|
||||
/* HSI_CHAR_MAGIC 'k' */
|
||||
/* KYRO_IOC_MAGIC 'k' */
|
||||
/* SPI_IOC_MAGIC 'k' */
|
||||
/* MMTIMER_IOCTL_BASE 'm' */
|
||||
/* RIO_MPORT_DRV_MAGIC 'm' */
|
||||
/* MEGAIOC_MAGIC 'm' */
|
||||
/* MGSL_MAGIC_IOC 'm' */
|
||||
/* MMTIMER_IOCTL_BASE 'm' */
|
||||
/* MPT_MAGIC_NUMBER 'm' */
|
||||
/* RIO_MPORT_DRV_MAGIC 'm' */
|
||||
/* NILFS_IOCTL_IDENT 'n' */
|
||||
/* UBI_CTRL_IOC_MAGIC 'o' */
|
||||
/* UBI_IOC_MAGIC 'o' */
|
||||
/* PH_IOC_MAGIC 'p' */
|
||||
/* PKEY_IOCTL_MAGIC 'p' */
|
||||
/* PP_IOCTL 'p' */
|
||||
/* D7S_IOC 'p' */
|
||||
/* PI433_IOC_MAGIC 'r' */
|
||||
/* RSXX_IOC_MAGIC 'r' */
|
||||
/* ACPI_THERMAL_MAGIC 's' */
|
||||
/* ZCRYPT_IOCTL_MAGIC 'z' */
|
||||
APEX_IOCTL_BASE 0x7F
|
||||
DECNET_IOCTL_BASE 0x89
|
||||
SOCK_IOC_TYPE 0x89
|
||||
/* DECNET_IOCTL_BASE 0x89 */
|
||||
MON_IOC_MAGIC 0x92
|
||||
AUTOFS_IOCTL 0x93
|
||||
BTRFS_IOCTL_MAGIC 0x94
|
||||
@ -60,16 +83,21 @@ GENWQE_IOC_CODE 0xA5
|
||||
UFFDIO 0xAA
|
||||
KVMIO 0xAE
|
||||
VHOST_VIRTIO 0xAF
|
||||
/* FSL_HV_IOCTL_TYPE 0xAF */
|
||||
__BT_BMC_IOCTL_MAGIC 0xB1
|
||||
__ASPEED_LPC_CTRL_IOCTL_MAGIC 0xB2
|
||||
MMC_BLOCK_MAJOR 0xB3 /* 179 */
|
||||
DFL_FPGA_MAGIC 0xB6
|
||||
NSIO 0xB7
|
||||
CODEMERCS_MAGIC_NUMBER 0xC0
|
||||
VCHIQ_IOC_MAGIC 0xC4
|
||||
CXL_MAGIC 0xCA
|
||||
OCXL_MAGIC 0xCA
|
||||
/* OCXL_MAGIC 0xCA */
|
||||
VMC_BASE 0xCC
|
||||
CIFS_IOCTL_MAGIC 0xCF
|
||||
MWAVE_MINOR 0xDB /* 219 */
|
||||
GASKET_IOCTL_BASE 0xDC
|
||||
CROS_EC_DEV_IOC 0xEC
|
||||
OTG_IOCTL_MAGIC 0xF0 /* FSL_OTG_MAJOR - 240 */
|
||||
F2FS_IOCTL_MAGIC 0xF5
|
||||
DM_IOCTL 0xFD
|
||||
|
Loading…
x
Reference in New Issue
Block a user