Current Dir: /usr/include/linux/
[DIR] android [ delete | rename ]
[DIR] byteorder [ delete | rename ]
[DIR] caif [ delete | rename ]
[DIR] can [ delete | rename ]
[DIR] cifs [ delete | rename ]
[DIR] dvb [ delete | rename ]
[DIR] genwqe [ delete | rename ]
[DIR] hdlc [ delete | rename ]
[DIR] hsi [ delete | rename ]
[DIR] iio [ delete | rename ]
[DIR] isdn [ delete | rename ]
[DIR] misc [ delete | rename ]
[DIR] mmc [ delete | rename ]
[DIR] netfilter [ delete | rename ]
[DIR] netfilter_arp [ delete | rename ]
[DIR] netfilter_bridge [ delete | rename ]
[DIR] netfilter_ipv4 [ delete | rename ]
[DIR] netfilter_ipv6 [ delete | rename ]
[DIR] nfsd [ delete | rename ]
[DIR] raid [ delete | rename ]
[DIR] sched [ delete | rename ]
[DIR] spi [ delete | rename ]
[DIR] sunrpc [ delete | rename ]
[DIR] surface_aggregator [ delete | rename ]
[DIR] tc_act [ delete | rename ]
[DIR] tc_ematch [ delete | rename ]
[DIR] usb [ delete | rename ]
[FILE] a.out.h [ edit | delete | rename ]
[FILE] acct.h [ edit | delete | rename ]
[FILE] acrn.h [ edit | delete | rename ]
[FILE] adb.h [ edit | delete | rename ]
[FILE] adfs_fs.h [ edit | delete | rename ]
[FILE] affs_hardblocks.h [ edit | delete | rename ]
[FILE] agpgart.h [ edit | delete | rename ]
[FILE] aio_abi.h [ edit | delete | rename ]
[FILE] am437x-vpfe.h [ edit | delete | rename ]
[FILE] apm_bios.h [ edit | delete | rename ]
[FILE] arcfb.h [ edit | delete | rename ]
[FILE] arm_sdei.h [ edit | delete | rename ]
[FILE] aspeed-lpc-ctrl.h [ edit | delete | rename ]
[FILE] aspeed-p2a-ctrl.h [ edit | delete | rename ]
[FILE] atalk.h [ edit | delete | rename ]
[FILE] atm.h [ edit | delete | rename ]
[FILE] atmapi.h [ edit | delete | rename ]
[FILE] atmarp.h [ edit | delete | rename ]
[FILE] atmbr2684.h [ edit | delete | rename ]
[FILE] atmclip.h [ edit | delete | rename ]
[FILE] atmdev.h [ edit | delete | rename ]
[FILE] atmioc.h [ edit | delete | rename ]
[FILE] atmlec.h [ edit | delete | rename ]
[FILE] atmmpc.h [ edit | delete | rename ]
[FILE] atmppp.h [ edit | delete | rename ]
[FILE] atmsap.h [ edit | delete | rename ]
[FILE] atmsvc.h [ edit | delete | rename ]
[FILE] atm_eni.h [ edit | delete | rename ]
[FILE] atm_he.h [ edit | delete | rename ]
[FILE] atm_idt77105.h [ edit | delete | rename ]
[FILE] atm_nicstar.h [ edit | delete | rename ]
[FILE] atm_tcp.h [ edit | delete | rename ]
[FILE] atm_zatm.h [ edit | delete | rename ]
[FILE] audit.h [ edit | delete | rename ]
[FILE] auto_dev-ioctl.h [ edit | delete | rename ]
[FILE] auto_fs.h [ edit | delete | rename ]
[FILE] auto_fs4.h [ edit | delete | rename ]
[FILE] auxvec.h [ edit | delete | rename ]
[FILE] ax25.h [ edit | delete | rename ]
[FILE] batadv_packet.h [ edit | delete | rename ]
[FILE] batman_adv.h [ edit | delete | rename ]
[FILE] baycom.h [ edit | delete | rename ]
[FILE] bcm933xx_hcs.h [ edit | delete | rename ]
[FILE] bfs_fs.h [ edit | delete | rename ]
[FILE] binfmts.h [ edit | delete | rename ]
[FILE] blkpg.h [ edit | delete | rename ]
[FILE] blktrace_api.h [ edit | delete | rename ]
[FILE] blkzoned.h [ edit | delete | rename ]
[FILE] bpf.h [ edit | delete | rename ]
[FILE] bpfilter.h [ edit | delete | rename ]
[FILE] bpf_common.h [ edit | delete | rename ]
[FILE] bpf_perf_event.h [ edit | delete | rename ]
[FILE] bpqether.h [ edit | delete | rename ]
[FILE] bsg.h [ edit | delete | rename ]
[FILE] bt-bmc.h [ edit | delete | rename ]
[FILE] btf.h [ edit | delete | rename ]
[FILE] btrfs.h [ edit | delete | rename ]
[FILE] btrfs_tree.h [ edit | delete | rename ]
[FILE] can.h [ edit | delete | rename ]
[FILE] capability.h [ edit | delete | rename ]
[FILE] capi.h [ edit | delete | rename ]
[FILE] cciss_defs.h [ edit | delete | rename ]
[FILE] cciss_ioctl.h [ edit | delete | rename ]
[FILE] ccs.h [ edit | delete | rename ]
[FILE] cdrom.h [ edit | delete | rename ]
[FILE] cec-funcs.h [ edit | delete | rename ]
[FILE] cec.h [ edit | delete | rename ]
[FILE] cfm_bridge.h [ edit | delete | rename ]
[FILE] cgroupstats.h [ edit | delete | rename ]
[FILE] chio.h [ edit | delete | rename ]
[FILE] close_range.h [ edit | delete | rename ]
[FILE] cm4000_cs.h [ edit | delete | rename ]
[FILE] cn_proc.h [ edit | delete | rename ]
[FILE] coda.h [ edit | delete | rename ]
[FILE] coff.h [ edit | delete | rename ]
[FILE] connector.h [ edit | delete | rename ]
[FILE] const.h [ edit | delete | rename ]
[FILE] coresight-stm.h [ edit | delete | rename ]
[FILE] cramfs_fs.h [ edit | delete | rename ]
[FILE] cryptouser.h [ edit | delete | rename ]
[FILE] cuda.h [ edit | delete | rename ]
[FILE] cxl_mem.h [ edit | delete | rename ]
[FILE] cycx_cfm.h [ edit | delete | rename ]
[FILE] dcbnl.h [ edit | delete | rename ]
[FILE] dccp.h [ edit | delete | rename ]
[FILE] devlink.h [ edit | delete | rename ]
[FILE] dlm.h [ edit | delete | rename ]
[FILE] dlmconstants.h [ edit | delete | rename ]
[FILE] dlm_device.h [ edit | delete | rename ]
[FILE] dlm_netlink.h [ edit | delete | rename ]
[FILE] dlm_plock.h [ edit | delete | rename ]
[FILE] dm-ioctl.h [ edit | delete | rename ]
[FILE] dm-log-userspace.h [ edit | delete | rename ]
[FILE] dma-buf.h [ edit | delete | rename ]
[FILE] dma-heap.h [ edit | delete | rename ]
[FILE] dn.h [ edit | delete | rename ]
[FILE] dns_resolver.h [ edit | delete | rename ]
[FILE] dqblk_xfs.h [ edit | delete | rename ]
[FILE] edd.h [ edit | delete | rename ]
[FILE] efs_fs_sb.h [ edit | delete | rename ]
[FILE] elf-em.h [ edit | delete | rename ]
[FILE] elf-fdpic.h [ edit | delete | rename ]
[FILE] elf.h [ edit | delete | rename ]
[FILE] errno.h [ edit | delete | rename ]
[FILE] errqueue.h [ edit | delete | rename ]
[FILE] erspan.h [ edit | delete | rename ]
[FILE] ethtool.h [ edit | delete | rename ]
[FILE] ethtool_netlink.h [ edit | delete | rename ]
[FILE] eventpoll.h [ edit | delete | rename ]
[FILE] f2fs.h [ edit | delete | rename ]
[FILE] fadvise.h [ edit | delete | rename ]
[FILE] falloc.h [ edit | delete | rename ]
[FILE] fanotify.h [ edit | delete | rename ]
[FILE] fb.h [ edit | delete | rename ]
[FILE] fcntl.h [ edit | delete | rename ]
[FILE] fd.h [ edit | delete | rename ]
[FILE] fdreg.h [ edit | delete | rename ]
[FILE] fib_rules.h [ edit | delete | rename ]
[FILE] fiemap.h [ edit | delete | rename ]
[FILE] filter.h [ edit | delete | rename ]
[FILE] firewire-cdev.h [ edit | delete | rename ]
[FILE] firewire-constants.h [ edit | delete | rename ]
[FILE] fou.h [ edit | delete | rename ]
[FILE] fpga-dfl.h [ edit | delete | rename ]
[FILE] fs.h [ edit | delete | rename ]
[FILE] fscrypt.h [ edit | delete | rename ]
[FILE] fsi.h [ edit | delete | rename ]
[FILE] fsl_hypervisor.h [ edit | delete | rename ]
[FILE] fsl_mc.h [ edit | delete | rename ]
[FILE] fsmap.h [ edit | delete | rename ]
[FILE] fsverity.h [ edit | delete | rename ]
[FILE] fuse.h [ edit | delete | rename ]
[FILE] futex.h [ edit | delete | rename ]
[FILE] gameport.h [ edit | delete | rename ]
[FILE] genetlink.h [ edit | delete | rename ]
[FILE] gen_stats.h [ edit | delete | rename ]
[FILE] gfs2_ondisk.h [ edit | delete | rename ]
[FILE] gpio.h [ edit | delete | rename ]
[FILE] gsmmux.h [ edit | delete | rename ]
[FILE] gtp.h [ edit | delete | rename ]
[FILE] hash_info.h [ edit | delete | rename ]
[FILE] hdlc.h [ edit | delete | rename ]
[FILE] hdlcdrv.h [ edit | delete | rename ]
[FILE] hdreg.h [ edit | delete | rename ]
[FILE] hid.h [ edit | delete | rename ]
[FILE] hiddev.h [ edit | delete | rename ]
[FILE] hidraw.h [ edit | delete | rename ]
[FILE] hpet.h [ edit | delete | rename ]
[FILE] hsr_netlink.h [ edit | delete | rename ]
[FILE] hw_breakpoint.h [ edit | delete | rename ]
[FILE] hyperv.h [ edit | delete | rename ]
[FILE] i2c-dev.h [ edit | delete | rename ]
[FILE] i2c.h [ edit | delete | rename ]
[FILE] i2o-dev.h [ edit | delete | rename ]
[FILE] i8k.h [ edit | delete | rename ]
[FILE] icmp.h [ edit | delete | rename ]
[FILE] icmpv6.h [ edit | delete | rename ]
[FILE] idxd.h [ edit | delete | rename ]
[FILE] if.h [ edit | delete | rename ]
[FILE] ife.h [ edit | delete | rename ]
[FILE] if_addr.h [ edit | delete | rename ]
[FILE] if_addrlabel.h [ edit | delete | rename ]
[FILE] if_alg.h [ edit | delete | rename ]
[FILE] if_arcnet.h [ edit | delete | rename ]
[FILE] if_arp.h [ edit | delete | rename ]
[FILE] if_bonding.h [ edit | delete | rename ]
[FILE] if_bridge.h [ edit | delete | rename ]
[FILE] if_cablemodem.h [ edit | delete | rename ]
[FILE] if_eql.h [ edit | delete | rename ]
[FILE] if_ether.h [ edit | delete | rename ]
[FILE] if_fc.h [ edit | delete | rename ]
[FILE] if_fddi.h [ edit | delete | rename ]
[FILE] if_hippi.h [ edit | delete | rename ]
[FILE] if_infiniband.h [ edit | delete | rename ]
[FILE] if_link.h [ edit | delete | rename ]
[FILE] if_ltalk.h [ edit | delete | rename ]
[FILE] if_macsec.h [ edit | delete | rename ]
[FILE] if_packet.h [ edit | delete | rename ]
[FILE] if_phonet.h [ edit | delete | rename ]
[FILE] if_plip.h [ edit | delete | rename ]
[FILE] if_ppp.h [ edit | delete | rename ]
[FILE] if_pppol2tp.h [ edit | delete | rename ]
[FILE] if_pppox.h [ edit | delete | rename ]
[FILE] if_slip.h [ edit | delete | rename ]
[FILE] if_team.h [ edit | delete | rename ]
[FILE] if_tun.h [ edit | delete | rename ]
[FILE] if_tunnel.h [ edit | delete | rename ]
[FILE] if_vlan.h [ edit | delete | rename ]
[FILE] if_x25.h [ edit | delete | rename ]
[FILE] if_xdp.h [ edit | delete | rename ]
[FILE] igmp.h [ edit | delete | rename ]
[FILE] ila.h [ edit | delete | rename ]
[FILE] in.h [ edit | delete | rename ]
[FILE] in6.h [ edit | delete | rename ]
[FILE] inet_diag.h [ edit | delete | rename ]
[FILE] inotify.h [ edit | delete | rename ]
[FILE] input-event-codes.h [ edit | delete | rename ]
[FILE] input.h [ edit | delete | rename ]
[FILE] in_route.h [ edit | delete | rename ]
[FILE] ioctl.h [ edit | delete | rename ]
[FILE] iommu.h [ edit | delete | rename ]
[FILE] ioprio.h [ edit | delete | rename ]
[FILE] io_uring.h [ edit | delete | rename ]
[FILE] ip.h [ edit | delete | rename ]
[FILE] ip6_tunnel.h [ edit | delete | rename ]
[FILE] ipc.h [ edit | delete | rename ]
[FILE] ipmi.h [ edit | delete | rename ]
[FILE] ipmi_bmc.h [ edit | delete | rename ]
[FILE] ipmi_msgdefs.h [ edit | delete | rename ]
[FILE] ipsec.h [ edit | delete | rename ]
[FILE] ipv6.h [ edit | delete | rename ]
[FILE] ipv6_route.h [ edit | delete | rename ]
[FILE] ipx.h [ edit | delete | rename ]
[FILE] ip_vs.h [ edit | delete | rename ]
[FILE] irqnr.h [ edit | delete | rename ]
[FILE] iso_fs.h [ edit | delete | rename ]
[FILE] isst_if.h [ edit | delete | rename ]
[FILE] ivtv.h [ edit | delete | rename ]
[FILE] ivtvfb.h [ edit | delete | rename ]
[FILE] jffs2.h [ edit | delete | rename ]
[FILE] joystick.h [ edit | delete | rename ]
[FILE] kcm.h [ edit | delete | rename ]
[FILE] kcmp.h [ edit | delete | rename ]
[FILE] kcov.h [ edit | delete | rename ]
[FILE] kd.h [ edit | delete | rename ]
[FILE] kdev_t.h [ edit | delete | rename ]
[FILE] kernel-page-flags.h [ edit | delete | rename ]
[FILE] kernel.h [ edit | delete | rename ]
[FILE] kernelcapi.h [ edit | delete | rename ]
[FILE] kexec.h [ edit | delete | rename ]
[FILE] keyboard.h [ edit | delete | rename ]
[FILE] keyctl.h [ edit | delete | rename ]
[FILE] kfd_ioctl.h [ edit | delete | rename ]
[FILE] kfd_sysfs.h [ edit | delete | rename ]
[FILE] kvm.h [ edit | delete | rename ]
[FILE] kvm_para.h [ edit | delete | rename ]
[FILE] l2tp.h [ edit | delete | rename ]
[FILE] landlock.h [ edit | delete | rename ]
[FILE] libc-compat.h [ edit | delete | rename ]
[FILE] limits.h [ edit | delete | rename ]
[FILE] lirc.h [ edit | delete | rename ]
[FILE] llc.h [ edit | delete | rename ]
[FILE] loop.h [ edit | delete | rename ]
[FILE] lp.h [ edit | delete | rename ]
[FILE] lwtunnel.h [ edit | delete | rename ]
[FILE] magic.h [ edit | delete | rename ]
[FILE] major.h [ edit | delete | rename ]
[FILE] map_to_7segment.h [ edit | delete | rename ]
[FILE] matroxfb.h [ edit | delete | rename ]
[FILE] max2175.h [ edit | delete | rename ]
[FILE] mdio.h [ edit | delete | rename ]
[FILE] media-bus-format.h [ edit | delete | rename ]
[FILE] media.h [ edit | delete | rename ]
[FILE] mei.h [ edit | delete | rename ]
[FILE] membarrier.h [ edit | delete | rename ]
[FILE] memfd.h [ edit | delete | rename ]
[FILE] mempolicy.h [ edit | delete | rename ]
[FILE] meye.h [ edit | delete | rename ]
[FILE] mii.h [ edit | delete | rename ]
[FILE] minix_fs.h [ edit | delete | rename ]
[FILE] mman.h [ edit | delete | rename ]
[FILE] mmtimer.h [ edit | delete | rename ]
[FILE] module.h [ edit | delete | rename ]
[FILE] mount.h [ edit | delete | rename ]
[FILE] mpls.h [ edit | delete | rename ]
[FILE] mpls_iptunnel.h [ edit | delete | rename ]
[FILE] mptcp.h [ edit | delete | rename ]
[FILE] mqueue.h [ edit | delete | rename ]
[FILE] mroute.h [ edit | delete | rename ]
[FILE] mroute6.h [ edit | delete | rename ]
[FILE] mrp_bridge.h [ edit | delete | rename ]
[FILE] msdos_fs.h [ edit | delete | rename ]
[FILE] msg.h [ edit | delete | rename ]
[FILE] mtio.h [ edit | delete | rename ]
[FILE] nbd-netlink.h [ edit | delete | rename ]
[FILE] nbd.h [ edit | delete | rename ]
[FILE] ncsi.h [ edit | delete | rename ]
[FILE] ndctl.h [ edit | delete | rename ]
[FILE] neighbour.h [ edit | delete | rename ]
[FILE] net.h [ edit | delete | rename ]
[FILE] netconf.h [ edit | delete | rename ]
[FILE] netdevice.h [ edit | delete | rename ]
[FILE] netfilter.h [ edit | delete | rename ]
[FILE] netfilter_arp.h [ edit | delete | rename ]
[FILE] netfilter_bridge.h [ edit | delete | rename ]
[FILE] netfilter_decnet.h [ edit | delete | rename ]
[FILE] netfilter_ipv4.h [ edit | delete | rename ]
[FILE] netfilter_ipv6.h [ edit | delete | rename ]
[FILE] netlink.h [ edit | delete | rename ]
[FILE] netlink_diag.h [ edit | delete | rename ]
[FILE] netrom.h [ edit | delete | rename ]
[FILE] net_dropmon.h [ edit | delete | rename ]
[FILE] net_namespace.h [ edit | delete | rename ]
[FILE] net_tstamp.h [ edit | delete | rename ]
[FILE] nexthop.h [ edit | delete | rename ]
[FILE] nfc.h [ edit | delete | rename ]
[FILE] nfs.h [ edit | delete | rename ]
[FILE] nfs2.h [ edit | delete | rename ]
[FILE] nfs3.h [ edit | delete | rename ]
[FILE] nfs4.h [ edit | delete | rename ]
[FILE] nfs4_mount.h [ edit | delete | rename ]
[FILE] nfsacl.h [ edit | delete | rename ]
[FILE] nfs_fs.h [ edit | delete | rename ]
[FILE] nfs_idmap.h [ edit | delete | rename ]
[FILE] nfs_mount.h [ edit | delete | rename ]
[FILE] nilfs2_api.h [ edit | delete | rename ]
[FILE] nilfs2_ondisk.h [ edit | delete | rename ]
[FILE] nitro_enclaves.h [ edit | delete | rename ]
[FILE] nl80211.h [ edit | delete | rename ]
[FILE] nsfs.h [ edit | delete | rename ]
[FILE] nubus.h [ edit | delete | rename ]
[FILE] nvme_ioctl.h [ edit | delete | rename ]
[FILE] nvram.h [ edit | delete | rename ]
[FILE] omap3isp.h [ edit | delete | rename ]
[FILE] omapfb.h [ edit | delete | rename ]
[FILE] oom.h [ edit | delete | rename ]
[FILE] openat2.h [ edit | delete | rename ]
[FILE] openvswitch.h [ edit | delete | rename ]
[FILE] packet_diag.h [ edit | delete | rename ]
[FILE] param.h [ edit | delete | rename ]
[FILE] parport.h [ edit | delete | rename ]
[FILE] patchkey.h [ edit | delete | rename ]
[FILE] pci.h [ edit | delete | rename ]
[FILE] pcitest.h [ edit | delete | rename ]
[FILE] pci_regs.h [ edit | delete | rename ]
[FILE] perf_event.h [ edit | delete | rename ]
[FILE] personality.h [ edit | delete | rename ]
[FILE] pfkeyv2.h [ edit | delete | rename ]
[FILE] pfrut.h [ edit | delete | rename ]
[FILE] pg.h [ edit | delete | rename ]
[FILE] phantom.h [ edit | delete | rename ]
[FILE] phonet.h [ edit | delete | rename ]
[FILE] pidfd.h [ edit | delete | rename ]
[FILE] pktcdvd.h [ edit | delete | rename ]
[FILE] pkt_cls.h [ edit | delete | rename ]
[FILE] pkt_sched.h [ edit | delete | rename ]
[FILE] pmu.h [ edit | delete | rename ]
[FILE] poll.h [ edit | delete | rename ]
[FILE] posix_acl.h [ edit | delete | rename ]
[FILE] posix_acl_xattr.h [ edit | delete | rename ]
[FILE] posix_types.h [ edit | delete | rename ]
[FILE] ppdev.h [ edit | delete | rename ]
[FILE] ppp-comp.h [ edit | delete | rename ]
[FILE] ppp-ioctl.h [ edit | delete | rename ]
[FILE] ppp_defs.h [ edit | delete | rename ]
[FILE] pps.h [ edit | delete | rename ]
[FILE] pr.h [ edit | delete | rename ]
[FILE] prctl.h [ edit | delete | rename ]
[FILE] psample.h [ edit | delete | rename ]
[FILE] psci.h [ edit | delete | rename ]
[FILE] psp-sev.h [ edit | delete | rename ]
[FILE] ptp_clock.h [ edit | delete | rename ]
[FILE] ptrace.h [ edit | delete | rename ]
[FILE] qemu_fw_cfg.h [ edit | delete | rename ]
[FILE] qnx4_fs.h [ edit | delete | rename ]
[FILE] qnxtypes.h [ edit | delete | rename ]
[FILE] qrtr.h [ edit | delete | rename ]
[FILE] quota.h [ edit | delete | rename ]
[FILE] radeonfb.h [ edit | delete | rename ]
[FILE] random.h [ edit | delete | rename ]
[FILE] rds.h [ edit | delete | rename ]
[FILE] reboot.h [ edit | delete | rename ]
[FILE] reiserfs_fs.h [ edit | delete | rename ]
[FILE] reiserfs_xattr.h [ edit | delete | rename ]
[FILE] remoteproc_cdev.h [ edit | delete | rename ]
[FILE] resource.h [ edit | delete | rename ]
[FILE] rfkill.h [ edit | delete | rename ]
[FILE] rio_cm_cdev.h [ edit | delete | rename ]
[FILE] rio_mport_cdev.h [ edit | delete | rename ]
[FILE] rkisp1-config.h [ edit | delete | rename ]
[FILE] romfs_fs.h [ edit | delete | rename ]
[FILE] rose.h [ edit | delete | rename ]
[FILE] route.h [ edit | delete | rename ]
[FILE] rpl.h [ edit | delete | rename ]
[FILE] rpl_iptunnel.h [ edit | delete | rename ]
[FILE] rpmsg.h [ edit | delete | rename ]
[FILE] rpmsg_types.h [ edit | delete | rename ]
[FILE] rseq.h [ edit | delete | rename ]
[FILE] rtc.h [ edit | delete | rename ]
[FILE] rtnetlink.h [ edit | delete | rename ]
[FILE] rxrpc.h [ edit | delete | rename ]
[FILE] scc.h [ edit | delete | rename ]
[FILE] sched.h [ edit | delete | rename ]
[FILE] scif_ioctl.h [ edit | delete | rename ]
[FILE] screen_info.h [ edit | delete | rename ]
[FILE] sctp.h [ edit | delete | rename ]
[FILE] seccomp.h [ edit | delete | rename ]
[FILE] securebits.h [ edit | delete | rename ]
[FILE] sed-opal.h [ edit | delete | rename ]
[FILE] seg6.h [ edit | delete | rename ]
[FILE] seg6_genl.h [ edit | delete | rename ]
[FILE] seg6_hmac.h [ edit | delete | rename ]
[FILE] seg6_iptunnel.h [ edit | delete | rename ]
[FILE] seg6_local.h [ edit | delete | rename ]
[FILE] selinux_netlink.h [ edit | delete | rename ]
[FILE] sem.h [ edit | delete | rename ]
[FILE] serial.h [ edit | delete | rename ]
[FILE] serial_core.h [ edit | delete | rename ]
[FILE] serial_reg.h [ edit | delete | rename ]
[FILE] serio.h [ edit | delete | rename ]
[FILE] sev-guest.h [ edit | delete | rename ]
[FILE] shm.h [ edit | delete | rename ]
[FILE] signal.h [ edit | delete | rename ]
[FILE] signalfd.h [ edit | delete | rename ]
[FILE] smc.h [ edit | delete | rename ]
[FILE] smc_diag.h [ edit | delete | rename ]
[FILE] smiapp.h [ edit | delete | rename ]
[FILE] snmp.h [ edit | delete | rename ]
[FILE] socket.h [ edit | delete | rename ]
[FILE] sockios.h [ edit | delete | rename ]
[FILE] sock_diag.h [ edit | delete | rename ]
[FILE] sonet.h [ edit | delete | rename ]
[FILE] sonypi.h [ edit | delete | rename ]
[FILE] sound.h [ edit | delete | rename ]
[FILE] soundcard.h [ edit | delete | rename ]
[FILE] stat.h [ edit | delete | rename ]
[FILE] stddef.h [ edit | delete | rename ]
[FILE] stm.h [ edit | delete | rename ]
[FILE] string.h [ edit | delete | rename ]
[FILE] suspend_ioctls.h [ edit | delete | rename ]
[FILE] swab.h [ edit | delete | rename ]
[FILE] switchtec_ioctl.h [ edit | delete | rename ]
[FILE] synclink.h [ edit | delete | rename ]
[FILE] sync_file.h [ edit | delete | rename ]
[FILE] sysctl.h [ edit | delete | rename ]
[FILE] sysinfo.h [ edit | delete | rename ]
[FILE] target_core_user.h [ edit | delete | rename ]
[FILE] taskstats.h [ edit | delete | rename ]
[FILE] tcp.h [ edit | delete | rename ]
[FILE] tcp_metrics.h [ edit | delete | rename ]
[FILE] tee.h [ edit | delete | rename ]
[FILE] termios.h [ edit | delete | rename ]
[FILE] thermal.h [ edit | delete | rename ]
[FILE] time.h [ edit | delete | rename ]
[FILE] timerfd.h [ edit | delete | rename ]
[FILE] times.h [ edit | delete | rename ]
[FILE] timex.h [ edit | delete | rename ]
[FILE] time_types.h [ edit | delete | rename ]
[FILE] tiocl.h [ edit | delete | rename ]
[FILE] tipc.h [ edit | delete | rename ]
[FILE] tipc_config.h [ edit | delete | rename ]
[FILE] tipc_netlink.h [ edit | delete | rename ]
[FILE] tipc_sockets_diag.h [ edit | delete | rename ]
[FILE] tls.h [ edit | delete | rename ]
[FILE] toshiba.h [ edit | delete | rename ]
[FILE] tty.h [ edit | delete | rename ]
[FILE] tty_flags.h [ edit | delete | rename ]
[FILE] types.h [ edit | delete | rename ]
[FILE] udf_fs_i.h [ edit | delete | rename ]
[FILE] udmabuf.h [ edit | delete | rename ]
[FILE] udp.h [ edit | delete | rename ]
[FILE] uhid.h [ edit | delete | rename ]
[FILE] uinput.h [ edit | delete | rename ]
[FILE] uio.h [ edit | delete | rename ]
[FILE] uleds.h [ edit | delete | rename ]
[FILE] ultrasound.h [ edit | delete | rename ]
[FILE] um_timetravel.h [ edit | delete | rename ]
[FILE] un.h [ edit | delete | rename ]
[FILE] unistd.h [ edit | delete | rename ]
[FILE] unix_diag.h [ edit | delete | rename ]
[FILE] usbdevice_fs.h [ edit | delete | rename ]
[FILE] usbip.h [ edit | delete | rename ]
[FILE] userfaultfd.h [ edit | delete | rename ]
[FILE] userio.h [ edit | delete | rename ]
[FILE] utime.h [ edit | delete | rename ]
[FILE] utsname.h [ edit | delete | rename ]
[FILE] uuid.h [ edit | delete | rename ]
[FILE] uvcvideo.h [ edit | delete | rename ]
[FILE] v4l2-common.h [ edit | delete | rename ]
[FILE] v4l2-controls.h [ edit | delete | rename ]
[FILE] v4l2-dv-timings.h [ edit | delete | rename ]
[FILE] v4l2-mediabus.h [ edit | delete | rename ]
[FILE] v4l2-subdev.h [ edit | delete | rename ]
[FILE] vboxguest.h [ edit | delete | rename ]
[FILE] vbox_err.h [ edit | delete | rename ]
[FILE] vbox_vmmdev_types.h [ edit | delete | rename ]
[FILE] vdpa.h [ edit | delete | rename ]
[FILE] version.h [ edit | delete | rename ]
[FILE] veth.h [ edit | delete | rename ]
[FILE] vfio.h [ edit | delete | rename ]
[FILE] vfio_ccw.h [ edit | delete | rename ]
[FILE] vfio_zdev.h [ edit | delete | rename ]
[FILE] vhost.h [ edit | delete | rename ]
[FILE] vhost_types.h [ edit | delete | rename ]
[FILE] videodev2.h [ edit | delete | rename ]
[FILE] virtio_9p.h [ edit | delete | rename ]
[FILE] virtio_balloon.h [ edit | delete | rename ]
[FILE] virtio_blk.h [ edit | delete | rename ]
[FILE] virtio_bt.h [ edit | delete | rename ]
[FILE] virtio_config.h [ edit | delete | rename ]
[FILE] virtio_console.h [ edit | delete | rename ]
[FILE] virtio_crypto.h [ edit | delete | rename ]
[FILE] virtio_fs.h [ edit | delete | rename ]
[FILE] virtio_gpu.h [ edit | delete | rename ]
[FILE] virtio_ids.h [ edit | delete | rename ]
[FILE] virtio_input.h [ edit | delete | rename ]
[FILE] virtio_iommu.h [ edit | delete | rename ]
[FILE] virtio_mem.h [ edit | delete | rename ]
[FILE] virtio_mmio.h [ edit | delete | rename ]
[FILE] virtio_net.h [ edit | delete | rename ]
[FILE] virtio_pci.h [ edit | delete | rename ]
[FILE] virtio_pcidev.h [ edit | delete | rename ]
[FILE] virtio_pmem.h [ edit | delete | rename ]
[FILE] virtio_ring.h [ edit | delete | rename ]
[FILE] virtio_rng.h [ edit | delete | rename ]
[FILE] virtio_scsi.h [ edit | delete | rename ]
[FILE] virtio_snd.h [ edit | delete | rename ]
[FILE] virtio_types.h [ edit | delete | rename ]
[FILE] virtio_vsock.h [ edit | delete | rename ]
[FILE] vmcore.h [ edit | delete | rename ]
[FILE] vm_sockets.h [ edit | delete | rename ]
[FILE] vm_sockets_diag.h [ edit | delete | rename ]
[FILE] vsockmon.h [ edit | delete | rename ]
[FILE] vt.h [ edit | delete | rename ]
[FILE] vtpm_proxy.h [ edit | delete | rename ]
[FILE] wait.h [ edit | delete | rename ]
[FILE] watchdog.h [ edit | delete | rename ]
[FILE] watch_queue.h [ edit | delete | rename ]
[FILE] wireguard.h [ edit | delete | rename ]
[FILE] wireless.h [ edit | delete | rename ]
[FILE] wmi.h [ edit | delete | rename ]
[FILE] wwan.h [ edit | delete | rename ]
[FILE] x25.h [ edit | delete | rename ]
[FILE] xattr.h [ edit | delete | rename ]
[FILE] xdp_diag.h [ edit | delete | rename ]
[FILE] xfrm.h [ edit | delete | rename ]
[FILE] xilinx-v4l2-controls.h [ edit | delete | rename ]
[FILE] zorro.h [ edit | delete | rename ]
[FILE] zorro_ids.h [ edit | delete | rename ]
Viewing: /usr/include/linux/input.h
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Copyright (c) 1999-2002 Vojtech Pavlik
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*/
#ifndef _INPUT_H
#define _INPUT_H
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <linux/types.h>
#include "input-event-codes.h"
/*
* The event structure itself
* Note that __USE_TIME_BITS64 is defined by libc based on
* application's request to use 64 bit time_t.
*/
struct input_event {
#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL__)
struct timeval time;
#define input_event_sec time.tv_sec
#define input_event_usec time.tv_usec
#else
__kernel_ulong_t __sec;
#if defined(__sparc__) && defined(__arch64__)
unsigned int __usec;
unsigned int __pad;
#else
__kernel_ulong_t __usec;
#endif
#define input_event_sec __sec
#define input_event_usec __usec
#endif
__u16 type;
__u16 code;
__s32 value;
};
/*
* Protocol version.
*/
#define EV_VERSION 0x010001
/*
* IOCTLs (0x00 - 0x7f)
*/
struct input_id {
__u16 bustype;
__u16 vendor;
__u16 product;
__u16 version;
};
/**
* struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls
* @value: latest reported value for the axis.
* @minimum: specifies minimum value for the axis.
* @maximum: specifies maximum value for the axis.
* @fuzz: specifies fuzz value that is used to filter noise from
* the event stream.
* @flat: values that are within this value will be discarded by
* joydev interface and reported as 0 instead.
* @resolution: specifies resolution for the values reported for
* the axis.
*
* Note that input core does not clamp reported values to the
* [minimum, maximum] limits, such task is left to userspace.
*
* The default resolution for main axes (ABS_X, ABS_Y, ABS_Z)
* is reported in units per millimeter (units/mm), resolution
* for rotational axes (ABS_RX, ABS_RY, ABS_RZ) is reported
* in units per radian.
* When INPUT_PROP_ACCELEROMETER is set the resolution changes.
* The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in
* units per g (units/g) and in units per degree per second
* (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ).
*/
struct input_absinfo {
__s32 value;
__s32 minimum;
__s32 maximum;
__s32 fuzz;
__s32 flat;
__s32 resolution;
};
/**
* struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls
* @scancode: scancode represented in machine-endian form.
* @len: length of the scancode that resides in @scancode buffer.
* @index: index in the keymap, may be used instead of scancode
* @flags: allows to specify how kernel should handle the request. For
* example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel
* should perform lookup in keymap by @index instead of @scancode
* @keycode: key code assigned to this scancode
*
* The structure is used to retrieve and modify keymap data. Users have
* option of performing lookup either by @scancode itself or by @index
* in keymap entry. EVIOCGKEYCODE will also return scancode or index
* (depending on which element was used to perform lookup).
*/
struct input_keymap_entry {
#define INPUT_KEYMAP_BY_INDEX (1 << 0)
__u8 flags;
__u8 len;
__u16 index;
__u32 keycode;
__u8 scancode[32];
};
struct input_mask {
__u32 type;
__u32 codes_size;
__u64 codes_ptr;
};
#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */
#define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */
#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */
#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */
#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) /* get keycode */
#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */
#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */
#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */
#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len) /* get unique identifier */
#define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len) /* get device properties */
/**
* EVIOCGMTSLOTS(len) - get MT slot values
* @len: size of the data buffer in bytes
*
* The ioctl buffer argument should be binary equivalent to
*
* struct input_mt_request_layout {
* __u32 code;
* __s32 values[num_slots];
* };
*
* where num_slots is the (arbitrary) number of MT slots to extract.
*
* The ioctl size argument (len) is the size of the buffer, which
* should satisfy len = (num_slots + 1) * sizeof(__s32). If len is
* too small to fit all available slots, the first num_slots are
* returned.
*
* Before the call, code is set to the wanted ABS_MT event type. On
* return, values[] is filled with the slot values for the specified
* ABS_MT code.
*
* If the request code is not an ABS_MT value, -EINVAL is returned.
*/
#define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len)
#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) /* get global key state */
#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len) /* get all LEDs */
#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) /* get all sounds status */
#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) /* get all switch states */
#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) /* get event bits */
#define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */
#define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */
#define EVIOCSFF _IOW('E', 0x80, struct ff_effect) /* send a force effect to a force feedback device */
#define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */
#define EVIOCGEFFECTS _IOR('E', 0x84, int) /* Report number of effects playable at the same time */
#define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */
#define EVIOCREVOKE _IOW('E', 0x91, int) /* Revoke device access */
/**
* EVIOCGMASK - Retrieve current event mask
*
* This ioctl allows user to retrieve the current event mask for specific
* event type. The argument must be of type "struct input_mask" and
* specifies the event type to query, the address of the receive buffer and
* the size of the receive buffer.
*
* The event mask is a per-client mask that specifies which events are
* forwarded to the client. Each event code is represented by a single bit
* in the event mask. If the bit is set, the event is passed to the client
* normally. Otherwise, the event is filtered and will never be queued on
* the client's receive buffer.
*
* Event masks do not affect global state of the input device. They only
* affect the file descriptor they are applied to.
*
* The default event mask for a client has all bits set, i.e. all events
* are forwarded to the client. If the kernel is queried for an unknown
* event type or if the receive buffer is larger than the number of
* event codes known to the kernel, the kernel returns all zeroes for those
* codes.
*
* At maximum, codes_size bytes are copied.
*
* This ioctl may fail with ENODEV in case the file is revoked, EFAULT
* if the receive-buffer points to invalid memory, or EINVAL if the kernel
* does not implement the ioctl.
*/
#define EVIOCGMASK _IOR('E', 0x92, struct input_mask) /* Get event-masks */
/**
* EVIOCSMASK - Set event mask
*
* This ioctl is the counterpart to EVIOCGMASK. Instead of receiving the
* current event mask, this changes the client's event mask for a specific
* type. See EVIOCGMASK for a description of event-masks and the
* argument-type.
*
* This ioctl provides full forward compatibility. If the passed event type
* is unknown to the kernel, or if the number of event codes specified in
* the mask is bigger than what is known to the kernel, the ioctl is still
* accepted and applied. However, any unknown codes are left untouched and
* stay cleared. That means, the kernel always filters unknown codes
* regardless of what the client requests. If the new mask doesn't cover
* all known event-codes, all remaining codes are automatically cleared and
* thus filtered.
*
* This ioctl may fail with ENODEV in case the file is revoked. EFAULT is
* returned if the receive-buffer points to invalid memory. EINVAL is returned
* if the kernel does not implement the ioctl.
*/
#define EVIOCSMASK _IOW('E', 0x93, struct input_mask) /* Set event-masks */
#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */
/*
* IDs.
*/
#define ID_BUS 0
#define ID_VENDOR 1
#define ID_PRODUCT 2
#define ID_VERSION 3
#define BUS_PCI 0x01
#define BUS_ISAPNP 0x02
#define BUS_USB 0x03
#define BUS_HIL 0x04
#define BUS_BLUETOOTH 0x05
#define BUS_VIRTUAL 0x06
#define BUS_ISA 0x10
#define BUS_I8042 0x11
#define BUS_XTKBD 0x12
#define BUS_RS232 0x13
#define BUS_GAMEPORT 0x14
#define BUS_PARPORT 0x15
#define BUS_AMIGA 0x16
#define BUS_ADB 0x17
#define BUS_I2C 0x18
#define BUS_HOST 0x19
#define BUS_GSC 0x1A
#define BUS_ATARI 0x1B
#define BUS_SPI 0x1C
#define BUS_RMI 0x1D
#define BUS_CEC 0x1E
#define BUS_INTEL_ISHTP 0x1F
/*
* MT_TOOL types
*/
#define MT_TOOL_FINGER 0x00
#define MT_TOOL_PEN 0x01
#define MT_TOOL_PALM 0x02
#define MT_TOOL_DIAL 0x0a
#define MT_TOOL_MAX 0x0f
/*
* Values describing the status of a force-feedback effect
*/
#define FF_STATUS_STOPPED 0x00
#define FF_STATUS_PLAYING 0x01
#define FF_STATUS_MAX 0x01
/*
* Structures used in ioctls to upload effects to a device
* They are pieces of a bigger structure (called ff_effect)
*/
/*
* All duration values are expressed in ms. Values above 32767 ms (0x7fff)
* should not be used and have unspecified results.
*/
/**
* struct ff_replay - defines scheduling of the force-feedback effect
* @length: duration of the effect
* @delay: delay before effect should start playing
*/
struct ff_replay {
__u16 length;
__u16 delay;
};
/**
* struct ff_trigger - defines what triggers the force-feedback effect
* @button: number of the button triggering the effect
* @interval: controls how soon the effect can be re-triggered
*/
struct ff_trigger {
__u16 button;
__u16 interval;
};
/**
* struct ff_envelope - generic force-feedback effect envelope
* @attack_length: duration of the attack (ms)
* @attack_level: level at the beginning of the attack
* @fade_length: duration of fade (ms)
* @fade_level: level at the end of fade
*
* The @attack_level and @fade_level are absolute values; when applying
* envelope force-feedback core will convert to positive/negative
* value based on polarity of the default level of the effect.
* Valid range for the attack and fade levels is 0x0000 - 0x7fff
*/
struct ff_envelope {
__u16 attack_length;
__u16 attack_level;
__u16 fade_length;
__u16 fade_level;
};
/**
* struct ff_constant_effect - defines parameters of a constant force-feedback effect
* @level: strength of the effect; may be negative
* @envelope: envelope data
*/
struct ff_constant_effect {
__s16 level;
struct ff_envelope envelope;
};
/**
* struct ff_ramp_effect - defines parameters of a ramp force-feedback effect
* @start_level: beginning strength of the effect; may be negative
* @end_level: final strength of the effect; may be negative
* @envelope: envelope data
*/
struct ff_ramp_effect {
__s16 start_level;
__s16 end_level;
struct ff_envelope envelope;
};
/**
* struct ff_condition_effect - defines a spring or friction force-feedback effect
* @right_saturation: maximum level when joystick moved all way to the right
* @left_saturation: same for the left side
* @right_coeff: controls how fast the force grows when the joystick moves
* to the right
* @left_coeff: same for the left side
* @deadband: size of the dead zone, where no force is produced
* @center: position of the dead zone
*/
struct ff_condition_effect {
__u16 right_saturation;
__u16 left_saturation;
__s16 right_coeff;
__s16 left_coeff;
__u16 deadband;
__s16 center;
};
/**
* struct ff_periodic_effect - defines parameters of a periodic force-feedback effect
* @waveform: kind of the effect (wave)
* @period: period of the wave (ms)
* @magnitude: peak value
* @offset: mean value of the wave (roughly)
* @phase: 'horizontal' shift
* @envelope: envelope data
* @custom_len: number of samples (FF_CUSTOM only)
* @custom_data: buffer of samples (FF_CUSTOM only)
*
* Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP,
* FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined
* for the time being as no driver supports it yet.
*
* Note: the data pointed by custom_data is copied by the driver.
* You can therefore dispose of the memory after the upload/update.
*/
struct ff_periodic_effect {
__u16 waveform;
__u16 period;
__s16 magnitude;
__s16 offset;
__u16 phase;
struct ff_envelope envelope;
__u32 custom_len;
__s16 *custom_data;
};
/**
* struct ff_rumble_effect - defines parameters of a periodic force-feedback effect
* @strong_magnitude: magnitude of the heavy motor
* @weak_magnitude: magnitude of the light one
*
* Some rumble pads have two motors of different weight. Strong_magnitude
* represents the magnitude of the vibration generated by the heavy one.
*/
struct ff_rumble_effect {
__u16 strong_magnitude;
__u16 weak_magnitude;
};
/**
* struct ff_effect - defines force feedback effect
* @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING,
* FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM)
* @id: an unique id assigned to an effect
* @direction: direction of the effect
* @trigger: trigger conditions (struct ff_trigger)
* @replay: scheduling of the effect (struct ff_replay)
* @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect,
* ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further
* defining effect parameters
*
* This structure is sent through ioctl from the application to the driver.
* To create a new effect application should set its @id to -1; the kernel
* will return assigned @id which can later be used to update or delete
* this effect.
*
* Direction of the effect is encoded as follows:
* 0 deg -> 0x0000 (down)
* 90 deg -> 0x4000 (left)
* 180 deg -> 0x8000 (up)
* 270 deg -> 0xC000 (right)
*/
struct ff_effect {
__u16 type;
__s16 id;
__u16 direction;
struct ff_trigger trigger;
struct ff_replay replay;
union {
struct ff_constant_effect constant;
struct ff_ramp_effect ramp;
struct ff_periodic_effect periodic;
struct ff_condition_effect condition[2]; /* One for each axis */
struct ff_rumble_effect rumble;
} u;
};
/*
* Force feedback effect types
*/
#define FF_RUMBLE 0x50
#define FF_PERIODIC 0x51
#define FF_CONSTANT 0x52
#define FF_SPRING 0x53
#define FF_FRICTION 0x54
#define FF_DAMPER 0x55
#define FF_INERTIA 0x56
#define FF_RAMP 0x57
#define FF_EFFECT_MIN FF_RUMBLE
#define FF_EFFECT_MAX FF_RAMP
/*
* Force feedback periodic effect types
*/
#define FF_SQUARE 0x58
#define FF_TRIANGLE 0x59
#define FF_SINE 0x5a
#define FF_SAW_UP 0x5b
#define FF_SAW_DOWN 0x5c
#define FF_CUSTOM 0x5d
#define FF_WAVEFORM_MIN FF_SQUARE
#define FF_WAVEFORM_MAX FF_CUSTOM
/*
* Set ff device properties
*/
#define FF_GAIN 0x60
#define FF_AUTOCENTER 0x61
/*
* ff->playback(effect_id = FF_GAIN) is the first effect_id to
* cause a collision with another ff method, in this case ff->set_gain().
* Therefore the greatest safe value for effect_id is FF_GAIN - 1,
* and thus the total number of effects should never exceed FF_GAIN.
*/
#define FF_MAX_EFFECTS FF_GAIN
#define FF_MAX 0x7f
#define FF_CNT (FF_MAX+1)
#endif /* _INPUT_H */