linux-kernel-test/include/uapi/linux
Andy Grover 0ad46af8a6 target: Version 2 of TCMU ABI
The initial version of TCMU (in 3.18) does not properly handle
bidirectional SCSI commands -- those with both an in and out buffer. In
looking to fix this it also became clear that TCMU's support for adding
new types of entries (opcodes) to the command ring was broken. We need
to fix this now, so that future issues can be handled properly by adding
new opcodes.

We make the most of this ABI break by enabling bidi cmd handling within
TCMP_OP_CMD opcode. Add an iov_bidi_cnt field to tcmu_cmd_entry.req.
This enables TCMU to describe bidi commands, but further kernel work is
needed for full bidi support.

Enlarge tcmu_cmd_entry_hdr by 32 bits by pulling in cmd_id and __pad1. Turn
__pad1 into two 8 bit flags fields, for kernel-set and userspace-set flags,
"kflags" and "uflags" respectively.

Update version fields so userspace can tell the interface is changed.

Update tcmu-design.txt with details of how new stuff works:
- Specify an additional requirement for userspace to set UNKNOWN_OP
  (bit 0) in hdr.uflags for unknown/unhandled opcodes.
- Define how Data-In and Data-Out fields are described in req.iov[]

Changed in v2:
- Change name of SKIPPED bit to UNKNOWN bit
- PAD op does not set the bit any more
- Change len_op helper functions to take just len_op, not the whole struct
- Change version to 2 in missed spots, and use defines
- Add 16 unused bytes to cmd_entry.req, in case additional SAM cmd
  parameters need to be included
- Add iov_dif_cnt field to specify buffers used for DIF info in iov[]
- Rearrange fields to naturally align cdb_off
- Handle if userspace sets UNKNOWN_OP by indicating failure of the cmd
- Wrap some overly long UPDATE_HEAD lines

(Add missing req.iov_bidi_cnt + req.iov_dif_cnt zeroing - Ilias)

Signed-off-by: Andy Grover <agrover@redhat.com>
Reviewed-by: Ilias Tsitsimpis <iliastsi@arrikto.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2015-04-19 22:40:26 -07:00
..
android android: uapi: binder.h 2014-10-20 10:30:15 +08:00
byteorder
caif
can can: m_can: tag current CAN FD controllers as non-ISO 2015-01-15 16:57:59 +01:00
cifs
dvb
genwqe GenWQE: Update author information 2014-09-23 23:15:46 -07:00
hdlc
hsi
isdn
mmc
netfilter netfilter: ipset: Alignment problem between 64bit kernel 32bit userspace 2014-12-03 12:43:35 +01:00
netfilter_arp uapi: netfilter_arp: use __u8 instead of u_int8_t 2014-08-20 15:13:08 +02:00
netfilter_bridge netfilter: kill ulog targets 2014-06-25 19:28:43 +02:00
netfilter_ipv4 netfilter: kill ulog targets 2014-06-25 19:28:43 +02:00
netfilter_ipv6
nfsd nfsd: implement pNFS operations 2015-02-02 18:09:42 +01:00
raid md: discard PRINT_RAID_DEBUG ioctl 2014-10-14 13:08:29 +11:00
spi
sunrpc
tc_act net: sched: Introduce connmark action 2015-01-19 16:02:06 -05:00
tc_ematch
usb usb: gadget: ffs: add eventfd notification about ffs events 2015-01-27 09:34:59 -06:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h [media] media: platform: add VPFE capture driver support for AM437X 2014-12-23 12:09:58 -02:00
apm_bios.h
arcfb.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h powerpc updates for 3.19 batch 2 2014-12-19 12:57:45 -08:00
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
b1lli.h
baycom.h
bcache.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
bpf_common.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
bpf.h bpf: verifier: add checks for BPF_ABS | BPF_IND instructions 2014-12-05 21:47:32 -08:00
bpqether.h
bsg.h block SG_IO: add SG_FLAG_Q_AT_HEAD flag 2014-07-01 10:48:05 -06:00
btrfs.h Btrfs: Remove unnecessary placeholder in btrfs_err_code 2015-02-02 19:25:51 -08:00
can.h can: unify identifiers to ensure unique include processing 2014-05-19 09:38:24 +02:00
capability.h audit: add netlink audit protocol bind to check capabilities on multicast join 2014-04-22 21:42:27 -04:00
capi.h isdn: capi: fix "CAPI_VERSION" comment 2014-03-20 14:55:18 +01:00
cciss_defs.h
cciss_ioctl.h
cdrom.h
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda_psdev.h
coda.h
coff.h
connector.h
const.h
cramfs_fs.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h dcbnl : Fix misleading dcb_app->priority explanation 2014-07-30 17:21:05 -07:00
dccp.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h dlm: adopt orphan locks 2014-11-19 14:48:02 -06:00
dm-ioctl.h dm: allocate requests in target when stacking on blk-mq devices 2015-02-09 13:06:47 -05:00
dm-log-userspace.h
dn.h
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h Add ELF machine define for Nios2 2014-12-08 12:55:57 +08:00
elf-fdpic.h
elf.h arm64: ptrace: add NT_ARM_SYSTEM_CALL regset 2014-11-28 10:19:49 +00:00
elfcore.h
errno.h
errqueue.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
ethtool.h ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version 2015-02-09 14:07:54 -08:00
eventpoll.h
fadvise.h
falloc.h fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate 2014-03-13 19:07:42 +11:00
fanotify.h
fb.h
fcntl.h shm: add sealing API 2014-08-08 15:57:31 -07:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
firewire-cdev.h
firewire-constants.h
flat.h
fou.h gue: Use checksum partial with remote checksum offload 2015-02-11 15:12:13 -08:00
fs.h vfs: add support for a lazytime mount option 2015-02-05 02:45:00 -05:00
fsl_hypervisor.h
fuse.h fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT 2014-07-22 16:37:43 +02:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h GFS2: remove transaction glock 2014-05-14 10:04:34 +01:00
gigaset_dev.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h Drivers: hv: util: make struct hv_do_fcopy match Hyper-V host messages 2014-11-07 10:21:44 -08:00
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h i8k: uapi: Introduce define for new highest fan speed 2014-07-09 16:41:36 -07:00
icmp.h
icmpv6.h
if_addr.h
if_addrlabel.h
if_alg.h crypto: af_alg - add user space interface for AEAD 2014-12-05 23:56:55 +08:00
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h bridge: support for multiple vlans and vlan ranges in setlink and dellink requests 2015-01-12 16:47:04 -05:00
if_cablemodem.h
if_eql.h
if_ether.h net: dsa: reduce number of protocol hooks 2014-08-27 22:59:39 -07:00
if_fc.h
if_fddi.h FDDI: Reformat <linux/if_fddi.h> for 8-character tabs 2014-04-27 19:08:06 -04:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h vxlan: Use checksum partial with remote checksum offload 2015-02-11 15:12:13 -08:00
if_ltalk.h
if_packet.h packet: remove deprecated syststamp timestamp 2014-07-29 11:39:50 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h if_tun: drop broken IFF_VNET_LE 2014-12-16 11:19:42 -05:00
if_tunnel.h gue: TX support for using remote checksum offload option 2014-11-05 16:30:03 -05:00
if_vlan.h
if_x25.h
if.h
igmp.h
in6.h in6: fix conflict with glibc 2014-12-22 16:12:36 -05:00
in_route.h
in.h ip: Add offset parameter to ip_cmsg_recv 2015-01-05 22:44:46 -05:00
inet_diag.h net: tcp: add DCTCP congestion control algorithm 2014-09-29 00:13:10 -04:00
inotify.h
input.h HID: wacom: add support for Cintiq 27QHD and 27QHD touch 2015-01-29 14:05:05 +01:00
ioctl.h
ip6_tunnel.h
ip_vs.h ipvs: Add destination address family to netlink interface 2014-09-16 09:03:33 +09:00
ip.h
ipc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h net: ipv6: Add sysctl entry to disable MTU updates from RA 2015-01-25 14:54:41 -08:00
ipx.h
irda.h
irqnr.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild fs/binfmt_som: Drop kernel support for HP-UX SOM binaries 2015-02-17 16:29:36 +01:00
kcmp.h kcmp: Move kcmp.h into uapi 2014-12-02 13:52:53 -07:00
kd.h
kdev_t.h
kernel-page-flags.h mm:add KPF_ZERO_PAGE flag for /proc/kpageflags 2015-02-11 17:06:00 -08:00
kernel.h
kernelcapi.h
kexec.h kexec: Fix make headers_check 2015-02-17 14:34:51 -08:00
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: reformat IOCTL definitions to drm-style 2015-01-06 19:44:36 +02:00
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
kvm.h KVM: s390: fixes and features for kvm/next (3.20) 2015-01-23 14:33:36 +01:00
l2tp.h l2tp : multicast notification to the registered listeners 2014-12-31 14:17:20 -05:00
libc-compat.h ipv6: fix redefinition of in6_pktinfo and ip6_mtuinfo 2015-01-08 19:29:11 -08:00
limits.h
llc.h
loop.h
lp.h
magic.h take the targets of /proc/*/ns/* symlinks to separate fs 2014-12-10 21:30:20 -05:00
major.h
map_to_7segment.h
matroxfb.h
mdio.h
media-bus-format.h [media] Move mediabus format definition to a more standard place 2014-11-14 17:47:47 -02:00
media.h
mei.h
memfd.h shm: add memfd_create() syscall 2014-08-08 15:57:31 -07:00
mempolicy.h mm: convert p[te|md]_numa users to p[te|md]_protnone_numa 2015-02-12 18:54:08 -08:00
meye.h
mic_common.h
mic_ioctl.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mpls.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h msdos_fs.h: fix 'fields' in comment 2015-01-20 13:51:06 +01:00
msg.h ipc/msg: increase MSGMNI, remove scaling 2014-12-13 12:42:52 -08:00
mtio.h
n_r3964.h
nbd.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h vxlan: advertise link netns in fdb messages 2015-01-27 17:11:07 -08:00
net_dropmon.h
net_namespace.h netns: add rtnl cmd to add and get peer netns ids 2015-01-19 14:21:18 -05:00
net_tstamp.h net-timestamp: no-payload option 2015-02-02 18:46:51 -08:00
net.h
netconf.h
netdevice.h net: add name_assign_type netdev attribute 2014-07-15 16:12:01 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink_diag.h
netlink.h
netrom.h
nfc.h NFC: Forward NFC_EVT_TRANSACTION to user space 2015-02-02 21:50:40 +01:00
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h
nfsacl.h
nl80211.h nl80211: don't document per-wiphy interface dump 2015-01-29 16:54:44 +01:00
nubus.h
nvme.h NVMe: Update SCSI Inquiry VPD 83h translation 2015-02-19 16:15:35 -07:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h net: openvswitch: Support masked set actions. 2015-02-07 22:40:17 -08:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h PCI: Add defines for PCIe Max_Read_Request_Size 2015-01-27 08:14:26 -06:00
pci.h
perf_event.h perf: Add ability to sample machine state on interrupt 2014-11-16 11:41:57 +01:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h
pkt_sched.h pkt_sched: fq: better control of DDOS traffic 2015-02-04 22:15:45 -08:00
pktcdvd.h
pmu.h
poll.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps.h
prctl.h MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS 2015-02-12 12:30:29 +01:00
psci.h ARM/ARM64: KVM: Add common header for PSCI related defines 2014-04-30 04:18:57 -07:00
ptp_clock.h ptp: introduce programmable pins. 2014-03-21 14:21:13 -04:00
ptrace.h
qnx4_fs.h
qnxtypes.h
quota.h quota: Cleanup flags definitions 2015-01-21 19:21:30 +01:00
radeonfb.h
random.h random: introduce getrandom(2) system call 2014-08-05 16:41:22 -04:00
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
romfs_fs.h
rose.h
route.h
rtc.h
rtnetlink.h netns: add rtnl cmd to add and get peer netns ids 2015-01-19 14:21:18 -05:00
scc.h
sched.h sched: Update comments about CLONE_NEWUTS and CLONE_NEWIPC 2014-11-16 10:58:53 +01:00
screen_info.h
sctp.h net: sctp: implement rfc6458, 8.1.31. SCTP_DEFAULT_SNDINFO support 2014-07-16 14:40:04 -07:00
sdla.h
seccomp.h seccomp: implement SECCOMP_FILTER_FLAG_TSYNC 2014-07-18 12:13:40 -07:00
securebits.h
selinux_netlink.h
sem.h ipc/sem.c: increase SEMMSL, SEMMNI, SEMOPM 2014-12-13 12:42:52 -08:00
serial_core.h serial: driver for ETRAX FS UART 2015-02-07 18:43:16 +08:00
serial_reg.h tty: 8250: Add 64byte UART support for FSL platforms 2015-01-09 14:33:04 -08:00
serial.h
serio.h Input: add support for Wacom protocol 4 serial tablets 2014-07-20 14:33:23 -07:00
shm.h ipc,shm: document new limits in the uapi header 2014-06-06 16:08:14 -07:00
signal.h
signalfd.h
smiapp.h [media] smiapp: Add driver-specific test pattern menu item definitions 2014-08-21 15:25:11 -05:00
snmp.h tcp: helpers to mitigate ACK loops by rate-limiting out-of-window dupacks 2015-02-08 01:03:12 -08:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
string.h
suspend_ioctls.h
swab.h
synclink.h
sysctl.h kernel: add panic_on_warn 2014-12-10 17:41:10 -08:00
sysinfo.h
target_core_user.h target: Version 2 of TCMU ABI 2015-04-19 22:40:26 -07:00
taskstats.h
tcp_metrics.h
tcp.h
telephony.h
termios.h
thermal.h thermal: provide an UAPI header file 2014-12-09 14:10:41 +08:00
time.h
times.h
timex.h
tiocl.h
tipc_config.h tipc: convert legacy nl link stat to nl compat 2015-02-09 13:20:47 -08:00
tipc_netlink.h tipc: add name table dump to new netlink api 2014-11-21 15:01:32 -05:00
tipc.h tipc: add ioctl to fetch link names 2014-04-26 12:13:24 -04:00
toshiba.h
tty_flags.h tty: warn on deprecated serial flags 2014-11-06 15:01:03 -08:00
tty.h
types.h
udf_fs_i.h
udp.h net: Make enabling of zero UDP6 csums more restrictive 2014-05-23 16:28:53 -04:00
uhid.h HID: uhid: report to user-space whether reports are numbered 2014-08-25 03:28:08 -05:00
uinput.h Input: uinput - fix ioctl nr overflow for UI_GET_SYSNAME/VERSION 2015-01-11 16:27:25 -08:00
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h USB: usbfs: allow URBs to be reaped after disconnection 2015-01-31 09:05:06 -08:00
usbip.h usbip: move usbip kernel code out of staging 2014-08-25 10:40:06 -07:00
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h [media] v4l: Add V4L2_SEL_TGT_NATIVE_SIZE selection target 2014-12-04 12:37:01 -02:00
v4l2-controls.h [media] adv7180: Add fast switch support 2015-02-02 11:51:38 -02:00
v4l2-dv-timings.h Revert "[media] v4l2-dv-timings: fix a sparse warning" 2014-10-24 08:58:09 -02:00
v4l2-mediabus.h [media] v4l2-mediabus.h: use two __u16 instead of two __u32 2014-12-16 23:21:36 -02:00
v4l2-subdev.h [media] Make use of the new media_bus_format definitions 2014-11-14 17:51:18 -02:00
veth.h
vfio.h vfio-pci: Add device request interface 2015-02-10 12:38:14 -07:00
vhost.h
videodev2.h [media] v4l: Add packed Bayer raw10 pixel formats 2014-12-23 10:57:09 -02:00
virtio_9p.h
virtio_balloon.h virtio_balloon: coding style fixes 2015-01-21 16:28:56 +10:30
virtio_blk.h virtio: Don't expose legacy block features when VIRTIO_BLK_NO_LEGACY defined. 2015-02-11 15:03:15 +10:30
virtio_config.h virtio: Don't expose legacy config features when VIRTIO_CONFIG_NO_LEGACY defined. 2015-02-11 15:03:16 +10:30
virtio_console.h virtio_console: virtio 1.0 support 2014-12-09 12:06:32 +02:00
virtio_ids.h
virtio_net.h virtio_net: unconditionally define struct virtio_net_hdr_v1. 2015-02-17 16:19:27 +10:30
virtio_pci.h virtio: define VIRTIO_PCI_CAP_PCI_CFG in header. 2015-02-11 15:03:15 +10:30
virtio_ring.h virtio_ring: document alignment requirements 2014-12-29 10:54:54 +02:00
virtio_rng.h
virtio_scsi.h virtio_scsi: export to userspace 2014-12-09 12:06:31 +02:00
virtio_types.h virtio: memory access APIs 2014-12-09 12:05:24 +02:00
vm_sockets.h
vsp1.h
vt.h vt: Remove vt_get_kmsg_redirect() from uapi header 2014-11-05 20:18:30 -08:00
wait.h
wanrouter.h
watchdog.h
wil6210_uapi.h wil6210: atomic I/O for the card memory 2014-10-02 14:23:14 -04:00
wimax.h
wireless.h
x25.h
xattr.h xattr: fix check for simultaneous glibc header inclusion 2014-08-29 16:28:16 -07:00
xfrm.h xfrm: configure policy hash table thresholds by netlink 2014-09-02 13:37:56 +02:00
zorro_ids.h
zorro.h