qemu/linux-user/syscall_types.h
Andreas Schwab 0a761ce303 linux-user: implement more loop ioctls
LOOP_CONFIGURE is now used by losetup, and it cannot cope with ENOSYS.

Signed-off-by: Andreas Schwab <schwab@suse.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <mvmtug4mbfx.fsf_-_@suse.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2021-11-29 14:54:17 +01:00

639 lines
20 KiB
C

STRUCT_SPECIAL(termios)
STRUCT(winsize,
TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT)
STRUCT(serial_multiport_struct,
TYPE_INT, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR,
TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT,
MK_ARRAY(TYPE_INT, 32))
STRUCT(serial_icounter_struct,
TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, MK_ARRAY(TYPE_INT, 16))
STRUCT(sockaddr,
TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
STRUCT(rtentry,
TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
TYPE_ULONG, TYPE_ULONG, TYPE_SHORT)
STRUCT(ifmap,
TYPE_ULONG, TYPE_ULONG, TYPE_SHORT, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR,
/* Spare 3 bytes */
TYPE_CHAR, TYPE_CHAR, TYPE_CHAR)
/* The *_ifreq_list arrays deal with the fact that struct ifreq has unions */
STRUCT(sockaddr_ifreq,
MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr))
STRUCT(short_ifreq,
MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_SHORT)
STRUCT(int_ifreq,
MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT)
STRUCT(ifmap_ifreq,
MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_ifmap))
STRUCT(char_ifreq,
MK_ARRAY(TYPE_CHAR, IFNAMSIZ),
MK_ARRAY(TYPE_CHAR, IFNAMSIZ))
STRUCT(ptr_ifreq,
MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID)
STRUCT(ifconf,
TYPE_INT, TYPE_PTRVOID)
STRUCT(arpreq,
MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr),
MK_ARRAY(TYPE_CHAR, 16))
STRUCT(arpreq_old,
MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr))
STRUCT(cdrom_read_audio,
TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_PTRVOID,
TYPE_NULL)
STRUCT(hd_geometry,
TYPE_CHAR, TYPE_CHAR, TYPE_SHORT, TYPE_ULONG)
STRUCT(dirent,
TYPE_LONG, TYPE_LONG, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 256))
STRUCT(kbentry,
TYPE_CHAR, TYPE_CHAR, TYPE_SHORT)
STRUCT(kbsentry,
TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 512))
STRUCT(audio_buf_info,
TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT)
STRUCT(count_info,
TYPE_INT, TYPE_INT, TYPE_INT)
STRUCT(buffmem_desc,
TYPE_PTRVOID, TYPE_INT)
STRUCT(mixer_info,
MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10))
STRUCT(snd_timer_id,
TYPE_INT, /* dev_class */
TYPE_INT, /* dev_sclass */
TYPE_INT, /* card */
TYPE_INT, /* device */
TYPE_INT) /* subdevice */
STRUCT(snd_timer_ginfo,
MK_STRUCT(STRUCT_snd_timer_id), /* tid */
TYPE_INT, /* flags */
TYPE_INT, /* card */
MK_ARRAY(TYPE_CHAR, 64), /* id */
MK_ARRAY(TYPE_CHAR, 80), /* name */
TYPE_ULONG, /* reserved0 */
TYPE_ULONG, /* resolution */
TYPE_ULONG, /* resolution_min */
TYPE_ULONG, /* resolution_max */
TYPE_INT, /* clients */
MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
STRUCT(snd_timer_gparams,
MK_STRUCT(STRUCT_snd_timer_id), /* tid */
TYPE_ULONG, /* period_num */
TYPE_ULONG, /* period_den */
MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
STRUCT(snd_timer_gstatus,
MK_STRUCT(STRUCT_snd_timer_id), /* tid */
TYPE_ULONG, /* resolution */
TYPE_ULONG, /* resolution_num */
TYPE_ULONG, /* resolution_den */
MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
STRUCT(snd_timer_select,
MK_STRUCT(STRUCT_snd_timer_id), /* id */
MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
STRUCT(snd_timer_info,
TYPE_INT, /* flags */
TYPE_INT, /* card */
MK_ARRAY(TYPE_CHAR, 64), /* id */
MK_ARRAY(TYPE_CHAR, 80), /* name */
TYPE_ULONG, /* reserved0 */
TYPE_ULONG, /* resolution */
MK_ARRAY(TYPE_CHAR, 64)) /* reserved */
STRUCT(snd_timer_params,
TYPE_INT, /* flags */
TYPE_INT, /* ticks */
TYPE_INT, /* queue_size */
TYPE_INT, /* reserved0 */
TYPE_INT, /* filter */
MK_ARRAY(TYPE_CHAR, 60)) /* reserved */
#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
STRUCT(timeval,
TYPE_LONG, /* tv_sec */
TYPE_INT) /* tv_usec */
STRUCT(_kernel_sock_timeval,
TYPE_LONG, /* tv_sec */
TYPE_INT) /* tv_usec */
#else
STRUCT(timeval,
TYPE_LONG, /* tv_sec */
TYPE_LONG) /* tv_usec */
STRUCT(_kernel_sock_timeval,
TYPE_LONGLONG, /* tv_sec */
TYPE_LONGLONG) /* tv_usec */
#endif
STRUCT(timespec,
TYPE_LONG, /* tv_sec */
TYPE_LONG) /* tv_nsec */
STRUCT(_kernel_timespec,
TYPE_LONGLONG, /* tv_sec */
TYPE_LONGLONG) /* tv_nsec */
STRUCT(snd_timer_status,
MK_STRUCT(STRUCT_timespec), /* tstamp */
TYPE_INT, /* resolution */
TYPE_INT, /* lost */
TYPE_INT, /* overrun */
TYPE_INT, /* queue */
MK_ARRAY(TYPE_CHAR, 64)) /* reserved */
/* loop device ioctls */
STRUCT(loop_info,
TYPE_INT, /* lo_number */
TYPE_OLDDEVT, /* lo_device */
TYPE_ULONG, /* lo_inode */
TYPE_OLDDEVT, /* lo_rdevice */
TYPE_INT, /* lo_offset */
TYPE_INT, /* lo_encrypt_type */
TYPE_INT, /* lo_encrypt_key_size */
TYPE_INT, /* lo_flags */
MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
MK_ARRAY(TYPE_ULONG, 2), /* lo_init */
MK_ARRAY(TYPE_CHAR, 4)) /* reserved */
STRUCT(loop_info64,
TYPE_ULONGLONG, /* lo_device */
TYPE_ULONGLONG, /* lo_inode */
TYPE_ULONGLONG, /* lo_rdevice */
TYPE_ULONGLONG, /* lo_offset */
TYPE_ULONGLONG, /* lo_sizelimit */
TYPE_INT, /* lo_number */
TYPE_INT, /* lo_encrypt_type */
TYPE_INT, /* lo_encrypt_key_size */
TYPE_INT, /* lo_flags */
MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
MK_ARRAY(TYPE_CHAR, 64), /* lo_crypt_name */
MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
MK_ARRAY(TYPE_ULONGLONG, 2)) /* lo_init */
STRUCT(loop_config,
TYPE_INT, /* fd */
TYPE_INT, /* block_size */
MK_STRUCT(STRUCT_loop_info64), /* info */
MK_ARRAY(TYPE_ULONGLONG, 8)) /* __reserved */
/* mag tape ioctls */
STRUCT(mtop, TYPE_SHORT, TYPE_INT)
STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
TYPE_INT, TYPE_INT)
STRUCT(mtpos, TYPE_LONG)
STRUCT(fb_fix_screeninfo,
MK_ARRAY(TYPE_CHAR, 16), /* id */
TYPE_ULONG, /* smem_start */
TYPE_INT, /* smem_len */
TYPE_INT, /* type */
TYPE_INT, /* type_aux */
TYPE_INT, /* visual */
TYPE_SHORT, /* xpanstep */
TYPE_SHORT, /* ypanstep */
TYPE_SHORT, /* ywrapstep */
TYPE_INT, /* line_length */
TYPE_ULONG, /* mmio_start */
TYPE_INT, /* mmio_len */
TYPE_INT, /* accel */
MK_ARRAY(TYPE_CHAR, 3)) /* reserved */
STRUCT(fb_var_screeninfo,
TYPE_INT, /* xres */
TYPE_INT, /* yres */
TYPE_INT, /* xres_virtual */
TYPE_INT, /* yres_virtual */
TYPE_INT, /* xoffset */
TYPE_INT, /* yoffset */
TYPE_INT, /* bits_per_pixel */
TYPE_INT, /* grayscale */
MK_ARRAY(TYPE_INT, 3), /* red */
MK_ARRAY(TYPE_INT, 3), /* green */
MK_ARRAY(TYPE_INT, 3), /* blue */
MK_ARRAY(TYPE_INT, 3), /* transp */
TYPE_INT, /* nonstd */
TYPE_INT, /* activate */
TYPE_INT, /* height */
TYPE_INT, /* width */
TYPE_INT, /* accel_flags */
TYPE_INT, /* pixclock */
TYPE_INT, /* left_margin */
TYPE_INT, /* right_margin */
TYPE_INT, /* upper_margin */
TYPE_INT, /* lower_margin */
TYPE_INT, /* hsync_len */
TYPE_INT, /* vsync_len */
TYPE_INT, /* sync */
TYPE_INT, /* vmode */
TYPE_INT, /* rotate */
MK_ARRAY(TYPE_INT, 5)) /* reserved */
STRUCT(fb_cmap,
TYPE_INT, /* start */
TYPE_INT, /* len */
TYPE_PTRVOID, /* red */
TYPE_PTRVOID, /* green */
TYPE_PTRVOID, /* blue */
TYPE_PTRVOID) /* transp */
STRUCT(fb_con2fbmap,
TYPE_INT, /* console */
TYPE_INT) /* framebuffer */
STRUCT(vt_stat,
TYPE_SHORT, /* v_active */
TYPE_SHORT, /* v_signal */
TYPE_SHORT) /* v_state */
STRUCT(vt_mode,
TYPE_CHAR, /* mode */
TYPE_CHAR, /* waitv */
TYPE_SHORT, /* relsig */
TYPE_SHORT, /* acqsig */
TYPE_SHORT) /* frsig */
STRUCT(dm_ioctl,
MK_ARRAY(TYPE_INT, 3), /* version */
TYPE_INT, /* data_size */
TYPE_INT, /* data_start */
TYPE_INT, /* target_count*/
TYPE_INT, /* open_count */
TYPE_INT, /* flags */
TYPE_INT, /* event_nr */
TYPE_INT, /* padding */
TYPE_ULONGLONG, /* dev */
MK_ARRAY(TYPE_CHAR, 128), /* name */
MK_ARRAY(TYPE_CHAR, 129), /* uuid */
MK_ARRAY(TYPE_CHAR, 7)) /* data */
STRUCT(dm_target_spec,
TYPE_ULONGLONG, /* sector_start */
TYPE_ULONGLONG, /* length */
TYPE_INT, /* status */
TYPE_INT, /* next */
MK_ARRAY(TYPE_CHAR, 16)) /* target_type */
STRUCT(dm_target_deps,
TYPE_INT, /* count */
TYPE_INT) /* padding */
STRUCT(dm_name_list,
TYPE_ULONGLONG, /* dev */
TYPE_INT) /* next */
STRUCT(dm_target_versions,
TYPE_INT, /* next */
MK_ARRAY(TYPE_INT, 3)) /* version*/
STRUCT(dm_target_msg,
TYPE_ULONGLONG) /* sector */
STRUCT(drm_version,
TYPE_INT, /* version_major */
TYPE_INT, /* version_minor */
TYPE_INT, /* version_patchlevel */
TYPE_ULONG, /* name_len */
TYPE_PTRVOID, /* name */
TYPE_ULONG, /* date_len */
TYPE_PTRVOID, /* date */
TYPE_ULONG, /* desc_len */
TYPE_PTRVOID) /* desc */
STRUCT(drm_i915_getparam,
TYPE_INT, /* param */
TYPE_PTRVOID) /* value */
STRUCT(file_clone_range,
TYPE_LONGLONG, /* src_fd */
TYPE_ULONGLONG, /* src_offset */
TYPE_ULONGLONG, /* src_length */
TYPE_ULONGLONG) /* dest_offset */
STRUCT(fiemap_extent,
TYPE_ULONGLONG, /* fe_logical */
TYPE_ULONGLONG, /* fe_physical */
TYPE_ULONGLONG, /* fe_length */
MK_ARRAY(TYPE_ULONGLONG, 2), /* fe_reserved64[2] */
TYPE_INT, /* fe_flags */
MK_ARRAY(TYPE_INT, 3)) /* fe_reserved[3] */
STRUCT(fiemap,
TYPE_ULONGLONG, /* fm_start */
TYPE_ULONGLONG, /* fm_length */
TYPE_INT, /* fm_flags */
TYPE_INT, /* fm_mapped_extents */
TYPE_INT, /* fm_extent_count */
TYPE_INT) /* fm_reserved */
STRUCT(blkpg_partition,
TYPE_LONGLONG, /* start */
TYPE_LONGLONG, /* length */
TYPE_INT, /* pno */
MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
#if defined(BTRFS_IOC_SUBVOL_CREATE) || defined(BTRFS_IOC_SNAP_CREATE) || \
defined(BTRFS_IOC_SNAP_DESTROY) || defined(BTRFS_IOC_SCAN_DEV) || \
defined(BTRFS_IOC_FORGET_DEV) || defined(BTRFS_IOC_ADD_DEV) || \
defined(BTRFS_IOC_RM_DEV) || defined(BTRFS_IOC_DEV_INFO)
STRUCT(btrfs_ioctl_vol_args,
TYPE_LONGLONG, /* fd */
MK_ARRAY(TYPE_CHAR, BTRFS_PATH_NAME_MAX + 1)) /* name */
#endif
#ifdef BTRFS_IOC_GET_SUBVOL_INFO
STRUCT(btrfs_ioctl_timespec,
TYPE_ULONGLONG, /* sec */
TYPE_INT) /* nsec */
STRUCT(btrfs_ioctl_get_subvol_info_args,
TYPE_ULONGLONG, /* treeid */
MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1),
TYPE_ULONGLONG, /* parentid */
TYPE_ULONGLONG, /* dirid */
TYPE_ULONGLONG, /* generation */
TYPE_ULONGLONG, /* flags */
MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* parent_uuid */
MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* received_uuid */
TYPE_ULONGLONG, /* ctransid */
TYPE_ULONGLONG, /* otransid */
TYPE_ULONGLONG, /* stransid */
TYPE_ULONGLONG, /* rtransid */
MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* ctime */
MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* otime */
MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* stime */
MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* rtime */
MK_ARRAY(TYPE_ULONGLONG, 8)) /* reserved */
#endif
#ifdef BTRFS_IOC_INO_LOOKUP
STRUCT(btrfs_ioctl_ino_lookup_args,
TYPE_ULONGLONG, /* treeid */
TYPE_ULONGLONG, /* objectid */
MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_PATH_MAX)) /* name */
#endif
#ifdef BTRFS_IOC_INO_PATHS
STRUCT(btrfs_ioctl_ino_path_args,
TYPE_ULONGLONG, /* inum */
TYPE_ULONGLONG, /* size */
MK_ARRAY(TYPE_ULONGLONG, 4), /* reserved */
TYPE_ULONGLONG) /* fspath */
#endif
#if defined(BTRFS_IOC_LOGICAL_INO) || defined(BTRFS_IOC_LOGICAL_INO_V2)
STRUCT(btrfs_ioctl_logical_ino_args,
TYPE_ULONGLONG, /* logical */
TYPE_ULONGLONG, /* size */
MK_ARRAY(TYPE_ULONGLONG, 3), /* reserved */
TYPE_ULONGLONG, /* flags */
TYPE_ULONGLONG) /* inodes */
#endif
#ifdef BTRFS_IOC_INO_LOOKUP_USER
STRUCT(btrfs_ioctl_ino_lookup_user_args,
TYPE_ULONGLONG, /* dirid */
TYPE_ULONGLONG, /* treeid */
MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1), /* name */
MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
#endif
#if defined(BTRFS_IOC_SCRUB) || defined(BTRFS_IOC_SCRUB_PROGRESS)
STRUCT(btrfs_scrub_progress,
TYPE_ULONGLONG, /* data_extents_scrubbed */
TYPE_ULONGLONG, /* tree_extents_scrubbed */
TYPE_ULONGLONG, /* data_bytes_scrubbed */
TYPE_ULONGLONG, /* tree_bytes_scrubbed */
TYPE_ULONGLONG, /* read_errors */
TYPE_ULONGLONG, /* csum_errors */
TYPE_ULONGLONG, /* verify_errors */
TYPE_ULONGLONG, /* no_csum */
TYPE_ULONGLONG, /* csum_discards */
TYPE_ULONGLONG, /* super_errors */
TYPE_ULONGLONG, /* malloc_errors */
TYPE_ULONGLONG, /* uncorrectable_errors */
TYPE_ULONGLONG, /* corrected_er */
TYPE_ULONGLONG, /* last_physical */
TYPE_ULONGLONG) /* unverified_errors */
STRUCT(btrfs_ioctl_scrub_args,
TYPE_ULONGLONG, /* devid */
TYPE_ULONGLONG, /* start */
TYPE_ULONGLONG, /* end */
TYPE_ULONGLONG, /* flags */
MK_STRUCT(STRUCT_btrfs_scrub_progress), /* progress */
MK_ARRAY(TYPE_ULONGLONG,
(1024 - 32 -
sizeof(struct btrfs_scrub_progress)) / 8)) /* unused */
#endif
#ifdef BTRFS_IOC_DEV_INFO
STRUCT(btrfs_ioctl_dev_info_args,
TYPE_ULONGLONG, /* devid */
MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
TYPE_ULONGLONG, /* bytes_used */
TYPE_ULONGLONG, /* total_bytes */
MK_ARRAY(TYPE_ULONGLONG, 379), /* unused */
MK_ARRAY(TYPE_CHAR, BTRFS_DEVICE_PATH_NAME_MAX)) /* path */
#endif
#ifdef BTRFS_IOC_GET_SUBVOL_ROOTREF
STRUCT(rootref,
TYPE_ULONGLONG, /* treeid */
TYPE_ULONGLONG) /* dirid */
STRUCT(btrfs_ioctl_get_subvol_rootref_args,
TYPE_ULONGLONG, /* min_treeid */
MK_ARRAY(MK_STRUCT(STRUCT_rootref),
BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
TYPE_CHAR, /* num_items */
MK_ARRAY(TYPE_CHAR, 7)) /* align */
#endif
#ifdef BTRFS_IOC_GET_DEV_STATS
STRUCT(btrfs_ioctl_get_dev_stats,
TYPE_ULONGLONG, /* devid */
TYPE_ULONGLONG, /* nr_items */
TYPE_ULONGLONG, /* flags */
MK_ARRAY(TYPE_ULONGLONG, BTRFS_DEV_STAT_VALUES_MAX), /* values */
MK_ARRAY(TYPE_ULONGLONG,
128 - 2 - BTRFS_DEV_STAT_VALUES_MAX)) /* unused */
#endif
STRUCT(btrfs_ioctl_quota_ctl_args,
TYPE_ULONGLONG, /* cmd */
TYPE_ULONGLONG) /* status */
STRUCT(btrfs_ioctl_quota_rescan_args,
TYPE_ULONGLONG, /* flags */
TYPE_ULONGLONG, /* progress */
MK_ARRAY(TYPE_ULONGLONG, 6)) /* reserved */
STRUCT(btrfs_ioctl_qgroup_assign_args,
TYPE_ULONGLONG, /* assign */
TYPE_ULONGLONG, /* src */
TYPE_ULONGLONG) /* dst */
STRUCT(btrfs_ioctl_qgroup_create_args,
TYPE_ULONGLONG, /* create */
TYPE_ULONGLONG) /* qgroupid */
STRUCT(btrfs_qgroup_limit,
TYPE_ULONGLONG, /* flags */
TYPE_ULONGLONG, /* max_rfer */
TYPE_ULONGLONG, /* max_excl */
TYPE_ULONGLONG, /* rsv_rfer */
TYPE_ULONGLONG) /* rsv_excl */
STRUCT(btrfs_ioctl_qgroup_limit_args,
TYPE_ULONGLONG, /* qgroupid */
MK_STRUCT(STRUCT_btrfs_qgroup_limit)) /* lim */
STRUCT(btrfs_ioctl_feature_flags,
TYPE_ULONGLONG, /* compat_flags */
TYPE_ULONGLONG, /* compat_ro_flags */
TYPE_ULONGLONG) /* incompat_flags */
STRUCT(rtc_time,
TYPE_INT, /* tm_sec */
TYPE_INT, /* tm_min */
TYPE_INT, /* tm_hour */
TYPE_INT, /* tm_mday */
TYPE_INT, /* tm_mon */
TYPE_INT, /* tm_year */
TYPE_INT, /* tm_wday */
TYPE_INT, /* tm_yday */
TYPE_INT) /* tm_isdst */
STRUCT(rtc_wkalrm,
TYPE_CHAR, /* enabled */
TYPE_CHAR, /* pending */
MK_STRUCT(STRUCT_rtc_time)) /* time */
STRUCT(rtc_pll_info,
TYPE_INT, /* pll_ctrl */
TYPE_INT, /* pll_value */
TYPE_INT, /* pll_max */
TYPE_INT, /* pll_min */
TYPE_INT, /* pll_posmult */
TYPE_INT, /* pll_negmult */
TYPE_LONG) /* pll_clock */
STRUCT(blkpg_ioctl_arg,
TYPE_INT, /* op */
TYPE_INT, /* flags */
TYPE_INT, /* datalen */
TYPE_PTRVOID) /* data */
STRUCT(format_descr,
TYPE_INT, /* device */
TYPE_INT, /* head */
TYPE_INT) /* track */
STRUCT(floppy_max_errors,
TYPE_INT, /* abort */
TYPE_INT, /* read_track */
TYPE_INT, /* reset */
TYPE_INT, /* recal */
TYPE_INT) /* reporting */
#if defined(CONFIG_USBFS)
/* usb device ioctls */
STRUCT(usbdevfs_ctrltransfer,
TYPE_CHAR, /* bRequestType */
TYPE_CHAR, /* bRequest */
TYPE_SHORT, /* wValue */
TYPE_SHORT, /* wIndex */
TYPE_SHORT, /* wLength */
TYPE_INT, /* timeout */
TYPE_PTRVOID) /* data */
STRUCT(usbdevfs_bulktransfer,
TYPE_INT, /* ep */
TYPE_INT, /* len */
TYPE_INT, /* timeout */
TYPE_PTRVOID) /* data */
STRUCT(usbdevfs_setinterface,
TYPE_INT, /* interface */
TYPE_INT) /* altsetting */
STRUCT(usbdevfs_disconnectsignal,
TYPE_INT, /* signr */
TYPE_PTRVOID) /* context */
STRUCT(usbdevfs_getdriver,
TYPE_INT, /* interface */
MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
STRUCT(usbdevfs_connectinfo,
TYPE_INT, /* devnum */
TYPE_CHAR) /* slow */
STRUCT(usbdevfs_iso_packet_desc,
TYPE_INT, /* length */
TYPE_INT, /* actual_length */
TYPE_INT) /* status */
STRUCT(usbdevfs_urb,
TYPE_CHAR, /* type */
TYPE_CHAR, /* endpoint */
TYPE_INT, /* status */
TYPE_INT, /* flags */
TYPE_PTRVOID, /* buffer */
TYPE_INT, /* buffer_length */
TYPE_INT, /* actual_length */
TYPE_INT, /* start_frame */
TYPE_INT, /* union number_of_packets stream_id */
TYPE_INT, /* error_count */
TYPE_INT, /* signr */
TYPE_PTRVOID, /* usercontext */
MK_ARRAY(MK_STRUCT(STRUCT_usbdevfs_iso_packet_desc), 0)) /* desc */
STRUCT(usbdevfs_ioctl,
TYPE_INT, /* ifno */
TYPE_INT, /* ioctl_code */
TYPE_PTRVOID) /* data */
STRUCT(usbdevfs_hub_portinfo,
TYPE_CHAR, /* nports */
MK_ARRAY(TYPE_CHAR, 127)) /* port */
STRUCT(usbdevfs_disconnect_claim,
TYPE_INT, /* interface */
TYPE_INT, /* flags */
MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
#endif /* CONFIG_USBFS */