aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-04-08 16:00:58 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-04-08 16:00:58 +0000
commitb53b3c71a251da5f24334eb18c53d73913d24d46 (patch)
treeff7e91617ae17824dfdcbe8e53b3e61b2e464c33
parentbf216fe38e1484460a5c23990afe5133a90d103c (diff)
parent98de591de8a89211e0d97ce6da031ec142ee8b86 (diff)
downloadkernel-headers-android12-mainline-tzdata2-release.tar.gz
Change-Id: I64ab53464fafcd6e315bc563818cfcb5e211f9ca
-rw-r--r--METADATA3
-rw-r--r--modified/scsi/scsi.h2
-rw-r--r--original/scsi/scsi.h2
-rw-r--r--original/scsi/scsi_ioctl.h3
-rw-r--r--original/scsi/sg.h32
-rw-r--r--original/uapi/asm-arm/asm/kvm.h314
-rw-r--r--original/uapi/asm-arm/asm/setup.h2
-rw-r--r--original/uapi/asm-arm/asm/signal.h27
-rw-r--r--original/uapi/asm-arm/asm/types.h42
-rw-r--r--original/uapi/asm-arm/asm/unistd-common.h7
-rw-r--r--original/uapi/asm-arm64/asm/hwcap.h10
-rw-r--r--original/uapi/asm-arm64/asm/kvm.h36
-rw-r--r--original/uapi/asm-arm64/asm/mman.h9
-rw-r--r--original/uapi/asm-arm64/asm/ptrace.h14
-rw-r--r--original/uapi/asm-arm64/asm/sigcontext.h2
-rw-r--r--original/uapi/asm-generic/hugetlb_encode.h1
-rw-r--r--original/uapi/asm-generic/mman-common.h2
-rw-r--r--original/uapi/asm-generic/posix_types.h2
-rw-r--r--original/uapi/asm-generic/sembuf.h6
-rw-r--r--original/uapi/asm-generic/siginfo.h7
-rw-r--r--original/uapi/asm-generic/signal-defs.h63
-rw-r--r--original/uapi/asm-generic/signal.h29
-rw-r--r--original/uapi/asm-generic/socket.h3
-rw-r--r--original/uapi/asm-generic/unistd.h37
-rw-r--r--original/uapi/asm-x86/asm/bootparam.h2
-rw-r--r--original/uapi/asm-x86/asm/hwcap2.h3
-rw-r--r--original/uapi/asm-x86/asm/kvm.h44
-rw-r--r--original/uapi/asm-x86/asm/kvm_para.h18
-rw-r--r--original/uapi/asm-x86/asm/mce.h1
-rw-r--r--original/uapi/asm-x86/asm/sgx.h168
-rw-r--r--original/uapi/asm-x86/asm/signal.h24
-rw-r--r--original/uapi/asm-x86/asm/svm.h41
-rw-r--r--original/uapi/asm-x86/asm/unistd.h11
-rw-r--r--original/uapi/asm-x86/asm/unistd_32.h11
-rw-r--r--original/uapi/asm-x86/asm/unistd_64.h11
-rw-r--r--original/uapi/asm-x86/asm/unistd_x32.h11
-rw-r--r--original/uapi/asm-x86/asm/vm86.h4
-rw-r--r--original/uapi/asm-x86/asm/vmx.h13
-rw-r--r--original/uapi/drm/amdgpu_drm.h44
-rw-r--r--original/uapi/drm/drm.h99
-rw-r--r--original/uapi/drm/drm_fourcc.h522
-rw-r--r--original/uapi/drm/drm_mode.h204
-rw-r--r--original/uapi/drm/exynos_drm.h2
-rw-r--r--original/uapi/drm/i915_drm.h143
-rw-r--r--original/uapi/drm/lima_drm.h9
-rw-r--r--original/uapi/drm/msm_drm.h24
-rw-r--r--original/uapi/drm/nouveau_drm.h1
-rw-r--r--original/uapi/drm/virtgpu_drm.h39
-rw-r--r--original/uapi/drm/vmwgfx_drm.h33
-rw-r--r--original/uapi/linux/acct.h2
-rw-r--r--original/uapi/linux/acrn.h580
-rw-r--r--original/uapi/linux/android/binder.h3
-rw-r--r--original/uapi/linux/atmioc.h2
-rw-r--r--original/uapi/linux/audit.h20
-rw-r--r--original/uapi/linux/auto_dev-ioctl.h2
-rw-r--r--original/uapi/linux/b1lli.h74
-rw-r--r--original/uapi/linux/batadv_packet.h52
-rw-r--r--original/uapi/linux/batman_adv.h35
-rw-r--r--original/uapi/linux/bcache.h88
-rw-r--r--original/uapi/linux/binfmts.h4
-rw-r--r--original/uapi/linux/blkpg.h28
-rw-r--r--original/uapi/linux/blkzoned.h30
-rw-r--r--original/uapi/linux/bpf.h2020
-rw-r--r--original/uapi/linux/btf.h9
-rw-r--r--original/uapi/linux/btrfs.h57
-rw-r--r--original/uapi/linux/btrfs_tree.h30
-rw-r--r--original/uapi/linux/caif/caif_socket.h2
-rw-r--r--original/uapi/linux/can.h38
-rw-r--r--original/uapi/linux/can/gw.h4
-rw-r--r--original/uapi/linux/can/isotp.h165
-rw-r--r--original/uapi/linux/can/netlink.h1
-rw-r--r--original/uapi/linux/can/raw.h3
-rw-r--r--original/uapi/linux/capability.h51
-rw-r--r--original/uapi/linux/ccs.h18
-rw-r--r--original/uapi/linux/cdrom.h5
-rw-r--r--original/uapi/linux/cfm_bridge.h64
-rw-r--r--original/uapi/linux/cifs/cifs_netlink.h63
-rw-r--r--original/uapi/linux/close_range.h12
-rw-r--r--original/uapi/linux/const.h5
-rw-r--r--original/uapi/linux/coresight-stm.h7
-rw-r--r--original/uapi/linux/cxl_mem.h172
-rw-r--r--original/uapi/linux/devlink.h136
-rw-r--r--original/uapi/linux/dm-ioctl.h4
-rw-r--r--original/uapi/linux/dm-user.h68
-rw-r--r--original/uapi/linux/dma-buf.h6
-rw-r--r--original/uapi/linux/dma-heap.h53
-rw-r--r--original/uapi/linux/dqblk_xfs.h16
-rw-r--r--original/uapi/linux/elf.h14
-rw-r--r--original/uapi/linux/elfcore.h101
-rw-r--r--original/uapi/linux/errqueue.h16
-rw-r--r--original/uapi/linux/ethtool.h142
-rw-r--r--original/uapi/linux/ethtool_netlink.h638
-rw-r--r--original/uapi/linux/f2fs.h98
-rw-r--r--original/uapi/linux/fanotify.h19
-rw-r--r--original/uapi/linux/fb.h1
-rw-r--r--original/uapi/linux/fcntl.h12
-rw-r--r--original/uapi/linux/fd.h26
-rw-r--r--original/uapi/linux/fdreg.h30
-rw-r--r--original/uapi/linux/fiemap.h6
-rw-r--r--original/uapi/linux/firewire-cdev.h4
-rw-r--r--original/uapi/linux/fpga-dfl.h82
-rw-r--r--original/uapi/linux/fs.h1
-rw-r--r--original/uapi/linux/fscrypt.h27
-rw-r--r--original/uapi/linux/fsl_mc.h34
-rw-r--r--original/uapi/linux/fsverity.h63
-rw-r--r--original/uapi/linux/fuse.h95
-rw-r--r--original/uapi/linux/genetlink.h13
-rw-r--r--original/uapi/linux/gfs2_ondisk.h11
-rw-r--r--original/uapi/linux/gigaset_dev.h39
-rw-r--r--original/uapi/linux/gpio.h396
-rw-r--r--original/uapi/linux/gtp.h2
-rw-r--r--original/uapi/linux/hdlc/ioctl.h9
-rw-r--r--original/uapi/linux/hidraw.h7
-rw-r--r--original/uapi/linux/hsr_netlink.h2
-rw-r--r--original/uapi/linux/hyperv.h6
-rw-r--r--original/uapi/linux/hysdn_if.h34
-rw-r--r--original/uapi/linux/i2c-dev.h25
-rw-r--r--original/uapi/linux/i2c.h128
-rw-r--r--original/uapi/linux/icmp.h22
-rw-r--r--original/uapi/linux/icmpv6.h2
-rw-r--r--original/uapi/linux/idxd.h305
-rw-r--r--original/uapi/linux/if.h2
-rw-r--r--original/uapi/linux/if_alg.h17
-rw-r--r--original/uapi/linux/if_bonding.h11
-rw-r--r--original/uapi/linux/if_bridge.h422
-rw-r--r--original/uapi/linux/if_ether.h2
-rw-r--r--original/uapi/linux/if_frad.h123
-rw-r--r--original/uapi/linux/if_link.h290
-rw-r--r--original/uapi/linux/if_macsec.h19
-rw-r--r--original/uapi/linux/if_packet.h12
-rw-r--r--original/uapi/linux/if_pppol2tp.h2
-rw-r--r--original/uapi/linux/if_x25.h2
-rw-r--r--original/uapi/linux/if_xdp.h5
-rw-r--r--original/uapi/linux/iio/types.h1
-rw-r--r--original/uapi/linux/in.h7
-rw-r--r--original/uapi/linux/in6.h1
-rw-r--r--original/uapi/linux/incrementalfs.h586
-rw-r--r--original/uapi/linux/inet_diag.h27
-rw-r--r--original/uapi/linux/input-event-codes.h15
-rw-r--r--original/uapi/linux/input.h2
-rw-r--r--original/uapi/linux/io_uring.h208
-rw-r--r--original/uapi/linux/iommu.h29
-rw-r--r--original/uapi/linux/ipmi_msgdefs.h2
-rw-r--r--original/uapi/linux/ipv6.h3
-rw-r--r--original/uapi/linux/isst_if.h2
-rw-r--r--original/uapi/linux/kd.h2
-rw-r--r--original/uapi/linux/kernel.h9
-rw-r--r--original/uapi/linux/keyboard.h2
-rw-r--r--original/uapi/linux/keyctl.h2
-rw-r--r--original/uapi/linux/kfd_ioctl.h48
-rw-r--r--original/uapi/linux/kvm.h244
-rw-r--r--original/uapi/linux/l2tp.h8
-rw-r--r--original/uapi/linux/lightnvm.h2
-rw-r--r--original/uapi/linux/lirc.h4
-rw-r--r--original/uapi/linux/loop.h31
-rw-r--r--original/uapi/linux/lwtunnel.h1
-rw-r--r--original/uapi/linux/magic.h4
-rw-r--r--original/uapi/linux/map_to_7segment.h13
-rw-r--r--original/uapi/linux/mdio.h26
-rw-r--r--original/uapi/linux/media-bus-format.h14
-rw-r--r--original/uapi/linux/media.h1
-rw-r--r--original/uapi/linux/mei.h49
-rw-r--r--original/uapi/linux/membarrier.h26
-rw-r--r--original/uapi/linux/mempolicy.h4
-rw-r--r--original/uapi/linux/mic_common.h235
-rw-r--r--original/uapi/linux/mic_ioctl.h77
-rw-r--r--original/uapi/linux/mii.h19
-rw-r--r--original/uapi/linux/misc/bcm_vk.h84
-rw-r--r--original/uapi/linux/mman.h6
-rw-r--r--original/uapi/linux/mmc/ioctl.h1
-rw-r--r--original/uapi/linux/mount.h17
-rw-r--r--original/uapi/linux/mptcp.h183
-rw-r--r--original/uapi/linux/mroute.h5
-rw-r--r--original/uapi/linux/mroute6.h2
-rw-r--r--original/uapi/linux/mrp_bridge.h74
-rw-r--r--original/uapi/linux/ndctl.h6
-rw-r--r--original/uapi/linux/neighbour.h25
-rw-r--r--original/uapi/linux/net_dropmon.h1
-rw-r--r--original/uapi/linux/net_tstamp.h14
-rw-r--r--original/uapi/linux/netfilter.h3
-rw-r--r--original/uapi/linux/netfilter/ipset/ip_set.h6
-rw-r--r--original/uapi/linux/netfilter/nf_conntrack_common.h18
-rw-r--r--original/uapi/linux/netfilter/nf_nat.h4
-rw-r--r--original/uapi/linux/netfilter/nf_tables.h114
-rw-r--r--original/uapi/linux/netfilter/nfnetlink_conntrack.h12
-rw-r--r--original/uapi/linux/netfilter/nfnetlink_cthelper.h2
-rw-r--r--original/uapi/linux/netfilter/x_tables.h2
-rw-r--r--original/uapi/linux/netfilter/xt_IDLETIMER.h21
-rw-r--r--original/uapi/linux/netfilter/xt_connmark.h2
-rw-r--r--original/uapi/linux/netlink.h109
-rw-r--r--original/uapi/linux/nexthop.h3
-rw-r--r--original/uapi/linux/nfs3.h6
-rw-r--r--original/uapi/linux/nfs4.h6
-rw-r--r--original/uapi/linux/nfs_fs.h1
-rw-r--r--original/uapi/linux/nfsacl.h2
-rw-r--r--original/uapi/linux/nitro_enclaves.h359
-rw-r--r--original/uapi/linux/nl80211.h827
-rw-r--r--original/uapi/linux/openat2.h43
-rw-r--r--original/uapi/linux/openvswitch.h43
-rw-r--r--original/uapi/linux/pci_regs.h25
-rw-r--r--original/uapi/linux/pcitest.h8
-rw-r--r--original/uapi/linux/perf_event.h169
-rw-r--r--original/uapi/linux/pidfd.h12
-rw-r--r--original/uapi/linux/pkt_cls.h52
-rw-r--r--original/uapi/linux/pkt_sched.h80
-rw-r--r--original/uapi/linux/ppp-ioctl.h2
-rw-r--r--original/uapi/linux/prctl.h21
-rw-r--r--original/uapi/linux/psample.h25
-rw-r--r--original/uapi/linux/psp-sev.h2
-rw-r--r--original/uapi/linux/ptp_clock.h38
-rw-r--r--original/uapi/linux/ptrace.h3
-rw-r--r--original/uapi/linux/raid/md_p.h2
-rw-r--r--original/uapi/linux/random.h4
-rw-r--r--original/uapi/linux/raw.h2
-rw-r--r--original/uapi/linux/rds.h4
-rw-r--r--original/uapi/linux/remoteproc_cdev.h37
-rw-r--r--original/uapi/linux/rfkill.h94
-rw-r--r--original/uapi/linux/rkisp1-config.h950
-rw-r--r--original/uapi/linux/rpl.h48
-rw-r--r--original/uapi/linux/rpl_iptunnel.h21
-rw-r--r--original/uapi/linux/rpmsg_types.h11
-rw-r--r--original/uapi/linux/rtc.h16
-rw-r--r--original/uapi/linux/rtnetlink.h88
-rw-r--r--original/uapi/linux/rxrpc.h2
-rw-r--r--original/uapi/linux/sched.h11
-rw-r--r--original/uapi/linux/sched/types.h2
-rw-r--r--original/uapi/linux/sctp.h7
-rw-r--r--original/uapi/linux/sdla.h117
-rw-r--r--original/uapi/linux/seccomp.h26
-rw-r--r--original/uapi/linux/seg6_iptunnel.h21
-rw-r--r--original/uapi/linux/seg6_local.h1
-rw-r--r--original/uapi/linux/serial_core.h19
-rw-r--r--original/uapi/linux/serio.h10
-rw-r--r--original/uapi/linux/smc.h126
-rw-r--r--original/uapi/linux/snmp.h5
-rw-r--r--original/uapi/linux/sock_diag.h26
-rw-r--r--original/uapi/linux/spi/spi.h41
-rw-r--r--original/uapi/linux/spi/spidev.h26
-rw-r--r--original/uapi/linux/stat.h26
-rw-r--r--original/uapi/linux/surface_aggregator/cdev.h78
-rw-r--r--original/uapi/linux/swab.h10
-rw-r--r--original/uapi/linux/switchtec_ioctl.h17
-rw-r--r--original/uapi/linux/sysctl.h5
-rw-r--r--original/uapi/linux/target_core_user.h25
-rw-r--r--original/uapi/linux/taskstats.h6
-rw-r--r--original/uapi/linux/tc_act/tc_gate.h47
-rw-r--r--original/uapi/linux/tc_act/tc_mpls.h1
-rw-r--r--original/uapi/linux/tc_act/tc_vlan.h4
-rw-r--r--original/uapi/linux/tcp.h37
-rw-r--r--original/uapi/linux/tee.h25
-rw-r--r--original/uapi/linux/termios.h15
-rw-r--r--original/uapi/linux/thermal.h89
-rw-r--r--original/uapi/linux/time.h22
-rw-r--r--original/uapi/linux/time_types.h5
-rw-r--r--original/uapi/linux/timex.h2
-rw-r--r--original/uapi/linux/tipc.h2
-rw-r--r--original/uapi/linux/tipc_netlink.h4
-rw-r--r--original/uapi/linux/tls.h15
-rw-r--r--original/uapi/linux/types.h2
-rw-r--r--original/uapi/linux/udp.h1
-rw-r--r--original/uapi/linux/um_timetravel.h128
-rw-r--r--original/uapi/linux/usb/ch9.h32
-rw-r--r--original/uapi/linux/usb/charger.h16
-rw-r--r--original/uapi/linux/usb/raw_gadget.h249
-rw-r--r--original/uapi/linux/usb/tmc.h3
-rw-r--r--original/uapi/linux/userfaultfd.h49
-rw-r--r--original/uapi/linux/v4l2-controls.h936
-rw-r--r--original/uapi/linux/v4l2-mediabus.h15
-rw-r--r--original/uapi/linux/v4l2-subdev.h26
-rw-r--r--original/uapi/linux/vbox_vmmdev_types.h3
-rw-r--r--original/uapi/linux/vboxguest.h28
-rw-r--r--original/uapi/linux/vdpa.h40
-rw-r--r--original/uapi/linux/version.h7
-rw-r--r--original/uapi/linux/vfio.h414
-rw-r--r--original/uapi/linux/vfio_ccw.h19
-rw-r--r--original/uapi/linux/vfio_zdev.h78
-rw-r--r--original/uapi/linux/vhost.h34
-rw-r--r--original/uapi/linux/vhost_types.h28
-rw-r--r--original/uapi/linux/videodev2.h116
-rw-r--r--original/uapi/linux/virtio_9p.h4
-rw-r--r--original/uapi/linux/virtio_balloon.h18
-rw-r--r--original/uapi/linux/virtio_blk.h26
-rw-r--r--original/uapi/linux/virtio_config.h10
-rw-r--r--original/uapi/linux/virtio_console.h8
-rw-r--r--original/uapi/linux/virtio_crypto.h26
-rw-r--r--original/uapi/linux/virtio_fs.h5
-rw-r--r--original/uapi/linux/virtio_gpu.h109
-rw-r--r--original/uapi/linux/virtio_ids.h42
-rw-r--r--original/uapi/linux/virtio_input.h18
-rw-r--r--original/uapi/linux/virtio_mem.h211
-rw-r--r--original/uapi/linux/virtio_mmio.h11
-rw-r--r--original/uapi/linux/virtio_net.h110
-rw-r--r--original/uapi/linux/virtio_pci.h11
-rw-r--r--original/uapi/linux/virtio_pmem.h4
-rw-r--r--original/uapi/linux/virtio_ring.h48
-rw-r--r--original/uapi/linux/virtio_scsi.h20
-rw-r--r--original/uapi/linux/vm_sockets.h34
-rw-r--r--original/uapi/linux/vsoc_shm.h295
-rw-r--r--original/uapi/linux/watch_queue.h104
-rw-r--r--original/uapi/linux/wimax.h239
-rw-r--r--original/uapi/linux/wimax/i2400m.h572
-rw-r--r--original/uapi/linux/wireguard.h196
-rw-r--r--original/uapi/linux/wireless.h11
-rw-r--r--original/uapi/linux/xattr.h11
-rw-r--r--original/uapi/linux/xdp_diag.h11
-rw-r--r--original/uapi/linux/xfrm.h3
-rw-r--r--original/uapi/misc/fastrpc.h5
-rw-r--r--original/uapi/misc/habanalabs.h504
-rw-r--r--original/uapi/misc/pvpanic.h9
-rw-r--r--original/uapi/misc/uacce/hisi_qm.h23
-rw-r--r--original/uapi/misc/uacce/uacce.h38
-rw-r--r--original/uapi/mtd/mtd-abi.h3
-rw-r--r--original/uapi/rdma/efa-abi.h16
-rw-r--r--original/uapi/rdma/hfi/hfi1_user.h3
-rw-r--r--original/uapi/rdma/hns-abi.h14
-rw-r--r--original/uapi/rdma/ib_user_ioctl_cmds.h141
-rw-r--r--original/uapi/rdma/ib_user_ioctl_verbs.h70
-rw-r--r--original/uapi/rdma/ib_user_verbs.h25
-rw-r--r--original/uapi/rdma/mlx5-abi.h15
-rw-r--r--original/uapi/rdma/mlx5_user_ioctl_cmds.h76
-rw-r--r--original/uapi/rdma/mlx5_user_ioctl_verbs.h10
-rw-r--r--original/uapi/rdma/qedr-abi.h26
-rw-r--r--original/uapi/rdma/rdma_netlink.h9
-rw-r--r--original/uapi/rdma/rdma_user_cm.h15
-rw-r--r--original/uapi/rdma/rdma_user_ioctl.h2
-rw-r--r--original/uapi/rdma/rdma_user_ioctl_cmds.h2
-rw-r--r--original/uapi/rdma/rdma_user_rxe.h33
-rw-r--r--original/uapi/rdma/vmw_pvrdma-abi.h7
-rw-r--r--original/uapi/scsi/fc/fc_els.h323
-rw-r--r--original/uapi/scsi/scsi_bsg_ufs.h3
-rw-r--r--original/uapi/sound/asoc.h22
-rw-r--r--original/uapi/sound/asound.h155
-rw-r--r--original/uapi/sound/compress_offload.h4
-rw-r--r--original/uapi/sound/compress_params.h37
-rw-r--r--original/uapi/sound/emu10k1.h42
-rw-r--r--original/uapi/sound/hdsp.h13
-rw-r--r--original/uapi/sound/hdspm.h10
-rw-r--r--original/uapi/sound/skl-tplg-interface.h2
-rw-r--r--original/uapi/sound/sof/abi.h2
-rw-r--r--original/uapi/sound/sof/tokens.h22
-rw-r--r--original/uapi/xen/gntdev.h2
341 files changed, 3973 insertions, 17768 deletions
diff --git a/METADATA b/METADATA
deleted file mode 100644
index 6d8601b..0000000
--- a/METADATA
+++ /dev/null
@@ -1,3 +0,0 @@
-third_party {
- license_type: RESTRICTED
-}
diff --git a/modified/scsi/scsi.h b/modified/scsi/scsi.h
index 04b4e1c..0ca0e12 100644
--- a/modified/scsi/scsi.h
+++ b/modified/scsi/scsi.h
@@ -123,7 +123,6 @@ static inline int scsi_is_wlun(u64 lun)
#define CLEAR_TASK_SET 0x0e
#define INITIATE_RECOVERY 0x0f /* SCSI-II only */
#define RELEASE_RECOVERY 0x10 /* SCSI-II only */
-#define TERMINATE_IO_PROC 0x11 /* SCSI-II only */
#define CLEAR_ACA 0x16
#define LOGICAL_UNIT_RESET 0x17
#define SIMPLE_QUEUE_TAG 0x20
@@ -168,7 +167,6 @@ static inline int scsi_is_wlun(u64 lun)
* paths might yield different results */
#define DID_ALLOC_FAILURE 0x12 /* Space allocation on the device failed */
#define DID_MEDIUM_ERROR 0x13 /* Medium error */
-#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */
#define DRIVER_OK 0x00 /* Driver status */
/*
diff --git a/original/scsi/scsi.h b/original/scsi/scsi.h
index e75cca2..5339baa 100644
--- a/original/scsi/scsi.h
+++ b/original/scsi/scsi.h
@@ -116,7 +116,6 @@ static inline int scsi_is_wlun(u64 lun)
#define CLEAR_TASK_SET 0x0e
#define INITIATE_RECOVERY 0x0f /* SCSI-II only */
#define RELEASE_RECOVERY 0x10 /* SCSI-II only */
-#define TERMINATE_IO_PROC 0x11 /* SCSI-II only */
#define CLEAR_ACA 0x16
#define LOGICAL_UNIT_RESET 0x17
#define SIMPLE_QUEUE_TAG 0x20
@@ -160,7 +159,6 @@ static inline int scsi_is_wlun(u64 lun)
* paths might yield different results */
#define DID_ALLOC_FAILURE 0x12 /* Space allocation on the device failed */
#define DID_MEDIUM_ERROR 0x13 /* Medium error */
-#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */
#define DRIVER_OK 0x00 /* Driver status */
/*
diff --git a/original/scsi/scsi_ioctl.h b/original/scsi/scsi_ioctl.h
index b465799..5101e98 100644
--- a/original/scsi/scsi_ioctl.h
+++ b/original/scsi/scsi_ioctl.h
@@ -27,7 +27,7 @@ struct scsi_device;
typedef struct scsi_ioctl_command {
unsigned int inlen;
unsigned int outlen;
- unsigned char data[];
+ unsigned char data[0];
} Scsi_Ioctl_Command;
typedef struct scsi_idlun {
@@ -44,7 +44,6 @@ typedef struct scsi_fctargaddress {
int scsi_ioctl_block_when_processing_errors(struct scsi_device *sdev,
int cmd, bool ndelay);
extern int scsi_ioctl(struct scsi_device *, int, void __user *);
-extern int scsi_compat_ioctl(struct scsi_device *sdev, int cmd, void __user *arg);
#endif /* __KERNEL__ */
#endif /* _SCSI_IOCTL_H */
diff --git a/original/scsi/sg.h b/original/scsi/sg.h
index 7327e12..f91bcca 100644
--- a/original/scsi/sg.h
+++ b/original/scsi/sg.h
@@ -24,7 +24,7 @@
* http://sg.danny.cz/sg [alternatively check the MAINTAINERS file]
* The documentation for the sg version 3 driver can be found at:
* http://sg.danny.cz/sg/p/sg_v3_ho.html
- * Also see: <kernel_source>/Documentation/scsi/scsi-generic.rst
+ * Also see: <kernel_source>/Documentation/scsi/scsi-generic.txt
*
* For utility and test programs see: http://sg.danny.cz/sg/sg3_utils.html
*/
@@ -68,36 +68,6 @@ typedef struct sg_io_hdr
unsigned int info; /* [o] auxiliary information */
} sg_io_hdr_t; /* 64 bytes long (on i386) */
-#if defined(__KERNEL__)
-#include <linux/compat.h>
-
-struct compat_sg_io_hdr {
- compat_int_t interface_id; /* [i] 'S' for SCSI generic (required) */
- compat_int_t dxfer_direction; /* [i] data transfer direction */
- unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */
- unsigned char mx_sb_len; /* [i] max length to write to sbp */
- unsigned short iovec_count; /* [i] 0 implies no scatter gather */
- compat_uint_t dxfer_len; /* [i] byte count of data transfer */
- compat_uint_t dxferp; /* [i], [*io] points to data transfer memory
- or scatter gather list */
- compat_uptr_t cmdp; /* [i], [*i] points to command to perform */
- compat_uptr_t sbp; /* [i], [*o] points to sense_buffer memory */
- compat_uint_t timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
- compat_uint_t flags; /* [i] 0 -> default, see SG_FLAG... */
- compat_int_t pack_id; /* [i->o] unused internally (normally) */
- compat_uptr_t usr_ptr; /* [i->o] unused internally */
- unsigned char status; /* [o] scsi status */
- unsigned char masked_status; /* [o] shifted, masked scsi status */
- unsigned char msg_status; /* [o] messaging level data (optional) */
- unsigned char sb_len_wr; /* [o] byte count actually written to sbp */
- unsigned short host_status; /* [o] errors from host adapter */
- unsigned short driver_status; /* [o] errors from software driver */
- compat_int_t resid; /* [o] dxfer_len - actual_transferred */
- compat_uint_t duration; /* [o] time taken by cmd (unit: millisec) */
- compat_uint_t info; /* [o] auxiliary information */
-};
-#endif
-
#define SG_INTERFACE_ID_ORIG 'S'
/* Use negative values to flag difference from original sg_header structure */
diff --git a/original/uapi/asm-arm/asm/kvm.h b/original/uapi/asm-arm/asm/kvm.h
new file mode 100644
index 0000000..03cd7c1
--- /dev/null
+++ b/original/uapi/asm-arm/asm/kvm.h
@@ -0,0 +1,314 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Copyright (C) 2012 - Virtual Open Systems and Columbia University
+ * Author: Christoffer Dall <c.dall@virtualopensystems.com>
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __ARM_KVM_H__
+#define __ARM_KVM_H__
+
+#include <linux/types.h>
+#include <linux/psci.h>
+#include <asm/ptrace.h>
+
+#define __KVM_HAVE_GUEST_DEBUG
+#define __KVM_HAVE_IRQ_LINE
+#define __KVM_HAVE_READONLY_MEM
+#define __KVM_HAVE_VCPU_EVENTS
+
+#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
+
+#define KVM_REG_SIZE(id) \
+ (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
+
+/* Valid for svc_regs, abt_regs, und_regs, irq_regs in struct kvm_regs */
+#define KVM_ARM_SVC_sp svc_regs[0]
+#define KVM_ARM_SVC_lr svc_regs[1]
+#define KVM_ARM_SVC_spsr svc_regs[2]
+#define KVM_ARM_ABT_sp abt_regs[0]
+#define KVM_ARM_ABT_lr abt_regs[1]
+#define KVM_ARM_ABT_spsr abt_regs[2]
+#define KVM_ARM_UND_sp und_regs[0]
+#define KVM_ARM_UND_lr und_regs[1]
+#define KVM_ARM_UND_spsr und_regs[2]
+#define KVM_ARM_IRQ_sp irq_regs[0]
+#define KVM_ARM_IRQ_lr irq_regs[1]
+#define KVM_ARM_IRQ_spsr irq_regs[2]
+
+/* Valid only for fiq_regs in struct kvm_regs */
+#define KVM_ARM_FIQ_r8 fiq_regs[0]
+#define KVM_ARM_FIQ_r9 fiq_regs[1]
+#define KVM_ARM_FIQ_r10 fiq_regs[2]
+#define KVM_ARM_FIQ_fp fiq_regs[3]
+#define KVM_ARM_FIQ_ip fiq_regs[4]
+#define KVM_ARM_FIQ_sp fiq_regs[5]
+#define KVM_ARM_FIQ_lr fiq_regs[6]
+#define KVM_ARM_FIQ_spsr fiq_regs[7]
+
+struct kvm_regs {
+ struct pt_regs usr_regs; /* R0_usr - R14_usr, PC, CPSR */
+ unsigned long svc_regs[3]; /* SP_svc, LR_svc, SPSR_svc */
+ unsigned long abt_regs[3]; /* SP_abt, LR_abt, SPSR_abt */
+ unsigned long und_regs[3]; /* SP_und, LR_und, SPSR_und */
+ unsigned long irq_regs[3]; /* SP_irq, LR_irq, SPSR_irq */
+ unsigned long fiq_regs[8]; /* R8_fiq - R14_fiq, SPSR_fiq */
+};
+
+/* Supported Processor Types */
+#define KVM_ARM_TARGET_CORTEX_A15 0
+#define KVM_ARM_TARGET_CORTEX_A7 1
+#define KVM_ARM_NUM_TARGETS 2
+
+/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */
+#define KVM_ARM_DEVICE_TYPE_SHIFT 0
+#define KVM_ARM_DEVICE_TYPE_MASK (0xffff << KVM_ARM_DEVICE_TYPE_SHIFT)
+#define KVM_ARM_DEVICE_ID_SHIFT 16
+#define KVM_ARM_DEVICE_ID_MASK (0xffff << KVM_ARM_DEVICE_ID_SHIFT)
+
+/* Supported device IDs */
+#define KVM_ARM_DEVICE_VGIC_V2 0
+
+/* Supported VGIC address types */
+#define KVM_VGIC_V2_ADDR_TYPE_DIST 0
+#define KVM_VGIC_V2_ADDR_TYPE_CPU 1
+
+#define KVM_VGIC_V2_DIST_SIZE 0x1000
+#define KVM_VGIC_V2_CPU_SIZE 0x2000
+
+/* Supported VGICv3 address types */
+#define KVM_VGIC_V3_ADDR_TYPE_DIST 2
+#define KVM_VGIC_V3_ADDR_TYPE_REDIST 3
+#define KVM_VGIC_ITS_ADDR_TYPE 4
+#define KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION 5
+
+#define KVM_VGIC_V3_DIST_SIZE SZ_64K
+#define KVM_VGIC_V3_REDIST_SIZE (2 * SZ_64K)
+#define KVM_VGIC_V3_ITS_SIZE (2 * SZ_64K)
+
+#define KVM_ARM_VCPU_POWER_OFF 0 /* CPU is started in OFF state */
+#define KVM_ARM_VCPU_PSCI_0_2 1 /* CPU uses PSCI v0.2 */
+
+struct kvm_vcpu_init {
+ __u32 target;
+ __u32 features[7];
+};
+
+struct kvm_sregs {
+};
+
+struct kvm_fpu {
+};
+
+struct kvm_guest_debug_arch {
+};
+
+struct kvm_debug_exit_arch {
+};
+
+struct kvm_sync_regs {
+ /* Used with KVM_CAP_ARM_USER_IRQ */
+ __u64 device_irq_level;
+};
+
+struct kvm_arch_memory_slot {
+};
+
+/* for KVM_GET/SET_VCPU_EVENTS */
+struct kvm_vcpu_events {
+ struct {
+ __u8 serror_pending;
+ __u8 serror_has_esr;
+ __u8 ext_dabt_pending;
+ /* Align it to 8 bytes */
+ __u8 pad[5];
+ __u64 serror_esr;
+ } exception;
+ __u32 reserved[12];
+};
+
+/* If you need to interpret the index values, here is the key: */
+#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
+#define KVM_REG_ARM_COPROC_SHIFT 16
+#define KVM_REG_ARM_32_OPC2_MASK 0x0000000000000007
+#define KVM_REG_ARM_32_OPC2_SHIFT 0
+#define KVM_REG_ARM_OPC1_MASK 0x0000000000000078
+#define KVM_REG_ARM_OPC1_SHIFT 3
+#define KVM_REG_ARM_CRM_MASK 0x0000000000000780
+#define KVM_REG_ARM_CRM_SHIFT 7
+#define KVM_REG_ARM_32_CRN_MASK 0x0000000000007800
+#define KVM_REG_ARM_32_CRN_SHIFT 11
+/*
+ * For KVM currently all guest registers are nonsecure, but we reserve a bit
+ * in the encoding to distinguish secure from nonsecure for AArch32 system
+ * registers that are banked by security. This is 1 for the secure banked
+ * register, and 0 for the nonsecure banked register or if the register is
+ * not banked by security.
+ */
+#define KVM_REG_ARM_SECURE_MASK 0x0000000010000000
+#define KVM_REG_ARM_SECURE_SHIFT 28
+
+#define ARM_CP15_REG_SHIFT_MASK(x,n) \
+ (((x) << KVM_REG_ARM_ ## n ## _SHIFT) & KVM_REG_ARM_ ## n ## _MASK)
+
+#define __ARM_CP15_REG(op1,crn,crm,op2) \
+ (KVM_REG_ARM | (15 << KVM_REG_ARM_COPROC_SHIFT) | \
+ ARM_CP15_REG_SHIFT_MASK(op1, OPC1) | \
+ ARM_CP15_REG_SHIFT_MASK(crn, 32_CRN) | \
+ ARM_CP15_REG_SHIFT_MASK(crm, CRM) | \
+ ARM_CP15_REG_SHIFT_MASK(op2, 32_OPC2))
+
+#define ARM_CP15_REG32(...) (__ARM_CP15_REG(__VA_ARGS__) | KVM_REG_SIZE_U32)
+
+#define __ARM_CP15_REG64(op1,crm) \
+ (__ARM_CP15_REG(op1, 0, crm, 0) | KVM_REG_SIZE_U64)
+#define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__)
+
+/* PL1 Physical Timer Registers */
+#define KVM_REG_ARM_PTIMER_CTL ARM_CP15_REG32(0, 14, 2, 1)
+#define KVM_REG_ARM_PTIMER_CNT ARM_CP15_REG64(0, 14)
+#define KVM_REG_ARM_PTIMER_CVAL ARM_CP15_REG64(2, 14)
+
+/* Virtual Timer Registers */
+#define KVM_REG_ARM_TIMER_CTL ARM_CP15_REG32(0, 14, 3, 1)
+#define KVM_REG_ARM_TIMER_CNT ARM_CP15_REG64(1, 14)
+#define KVM_REG_ARM_TIMER_CVAL ARM_CP15_REG64(3, 14)
+
+/* Normal registers are mapped as coprocessor 16. */
+#define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT)
+#define KVM_REG_ARM_CORE_REG(name) (offsetof(struct kvm_regs, name) / 4)
+
+/* Some registers need more space to represent values. */
+#define KVM_REG_ARM_DEMUX (0x0011 << KVM_REG_ARM_COPROC_SHIFT)
+#define KVM_REG_ARM_DEMUX_ID_MASK 0x000000000000FF00
+#define KVM_REG_ARM_DEMUX_ID_SHIFT 8
+#define KVM_REG_ARM_DEMUX_ID_CCSIDR (0x00 << KVM_REG_ARM_DEMUX_ID_SHIFT)
+#define KVM_REG_ARM_DEMUX_VAL_MASK 0x00000000000000FF
+#define KVM_REG_ARM_DEMUX_VAL_SHIFT 0
+
+/* VFP registers: we could overload CP10 like ARM does, but that's ugly. */
+#define KVM_REG_ARM_VFP (0x0012 << KVM_REG_ARM_COPROC_SHIFT)
+#define KVM_REG_ARM_VFP_MASK 0x000000000000FFFF
+#define KVM_REG_ARM_VFP_BASE_REG 0x0
+#define KVM_REG_ARM_VFP_FPSID 0x1000
+#define KVM_REG_ARM_VFP_FPSCR 0x1001
+#define KVM_REG_ARM_VFP_MVFR1 0x1006
+#define KVM_REG_ARM_VFP_MVFR0 0x1007
+#define KVM_REG_ARM_VFP_FPEXC 0x1008
+#define KVM_REG_ARM_VFP_FPINST 0x1009
+#define KVM_REG_ARM_VFP_FPINST2 0x100A
+
+/* KVM-as-firmware specific pseudo-registers */
+#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT)
+#define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM | KVM_REG_SIZE_U64 | \
+ KVM_REG_ARM_FW | ((r) & 0xffff))
+#define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1 KVM_REG_ARM_FW_REG(1)
+ /* Higher values mean better protection. */
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED 2
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2 KVM_REG_ARM_FW_REG(2)
+ /* Higher values mean better protection. */
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
+
+/* Device Control API: ARM VGIC */
+#define KVM_DEV_ARM_VGIC_GRP_ADDR 0
+#define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
+#define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2
+#define KVM_DEV_ARM_VGIC_CPUID_SHIFT 32
+#define KVM_DEV_ARM_VGIC_CPUID_MASK (0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT)
+#define KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT 32
+#define KVM_DEV_ARM_VGIC_V3_MPIDR_MASK \
+ (0xffffffffULL << KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT)
+#define KVM_DEV_ARM_VGIC_OFFSET_SHIFT 0
+#define KVM_DEV_ARM_VGIC_OFFSET_MASK (0xffffffffULL << KVM_DEV_ARM_VGIC_OFFSET_SHIFT)
+#define KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK (0xffff)
+#define KVM_DEV_ARM_VGIC_GRP_NR_IRQS 3
+#define KVM_DEV_ARM_VGIC_GRP_CTRL 4
+#define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5
+#define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6
+#define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7
+#define KVM_DEV_ARM_VGIC_GRP_ITS_REGS 8
+#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10
+#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \
+ (0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT)
+#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff
+#define VGIC_LEVEL_INFO_LINE_LEVEL 0
+
+/* Device Control API on vcpu fd */
+#define KVM_ARM_VCPU_PMU_V3_CTRL 0
+#define KVM_ARM_VCPU_PMU_V3_IRQ 0
+#define KVM_ARM_VCPU_PMU_V3_INIT 1
+#define KVM_ARM_VCPU_TIMER_CTRL 1
+#define KVM_ARM_VCPU_TIMER_IRQ_VTIMER 0
+#define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1
+
+#define KVM_DEV_ARM_VGIC_CTRL_INIT 0
+#define KVM_DEV_ARM_ITS_SAVE_TABLES 1
+#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
+#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
+#define KVM_DEV_ARM_ITS_CTRL_RESET 4
+
+/* KVM_IRQ_LINE irq field index values */
+#define KVM_ARM_IRQ_VCPU2_SHIFT 28
+#define KVM_ARM_IRQ_VCPU2_MASK 0xf
+#define KVM_ARM_IRQ_TYPE_SHIFT 24
+#define KVM_ARM_IRQ_TYPE_MASK 0xf
+#define KVM_ARM_IRQ_VCPU_SHIFT 16
+#define KVM_ARM_IRQ_VCPU_MASK 0xff
+#define KVM_ARM_IRQ_NUM_SHIFT 0
+#define KVM_ARM_IRQ_NUM_MASK 0xffff
+
+/* irq_type field */
+#define KVM_ARM_IRQ_TYPE_CPU 0
+#define KVM_ARM_IRQ_TYPE_SPI 1
+#define KVM_ARM_IRQ_TYPE_PPI 2
+
+/* out-of-kernel GIC cpu interrupt injection irq_number field */
+#define KVM_ARM_IRQ_CPU_IRQ 0
+#define KVM_ARM_IRQ_CPU_FIQ 1
+
+/*
+ * This used to hold the highest supported SPI, but it is now obsolete
+ * and only here to provide source code level compatibility with older
+ * userland. The highest SPI number can be set via KVM_DEV_ARM_VGIC_GRP_NR_IRQS.
+ */
+#ifndef __KERNEL__
+#define KVM_ARM_IRQ_GIC_MAX 127
+#endif
+
+/* One single KVM irqchip, ie. the VGIC */
+#define KVM_NR_IRQCHIPS 1
+
+/* PSCI interface */
+#define KVM_PSCI_FN_BASE 0x95c1ba5e
+#define KVM_PSCI_FN(n) (KVM_PSCI_FN_BASE + (n))
+
+#define KVM_PSCI_FN_CPU_SUSPEND KVM_PSCI_FN(0)
+#define KVM_PSCI_FN_CPU_OFF KVM_PSCI_FN(1)
+#define KVM_PSCI_FN_CPU_ON KVM_PSCI_FN(2)
+#define KVM_PSCI_FN_MIGRATE KVM_PSCI_FN(3)
+
+#define KVM_PSCI_RET_SUCCESS PSCI_RET_SUCCESS
+#define KVM_PSCI_RET_NI PSCI_RET_NOT_SUPPORTED
+#define KVM_PSCI_RET_INVAL PSCI_RET_INVALID_PARAMS
+#define KVM_PSCI_RET_DENIED PSCI_RET_DENIED
+
+#endif /* __ARM_KVM_H__ */
diff --git a/original/uapi/asm-arm/asm/setup.h b/original/uapi/asm-arm/asm/setup.h
index 345bf0a..25ceda6 100644
--- a/original/uapi/asm-arm/asm/setup.h
+++ b/original/uapi/asm-arm/asm/setup.h
@@ -17,7 +17,7 @@
#include <linux/types.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE 1024
/* The list ends with an ATAG_NONE node. */
#define ATAG_NONE 0x00000000
diff --git a/original/uapi/asm-arm/asm/signal.h b/original/uapi/asm-arm/asm/signal.h
index c9a3ea1..9b4185b 100644
--- a/original/uapi/asm-arm/asm/signal.h
+++ b/original/uapi/asm-arm/asm/signal.h
@@ -60,12 +60,33 @@ typedef unsigned long sigset_t;
#define SIGSWI 32
/*
- * SA_THIRTYTWO historically meant deliver the signal in 32-bit mode, even if
- * the task is running in 26-bit. But since the kernel no longer supports
- * 26-bit mode, the flag has no effect.
+ * SA_FLAGS values:
+ *
+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
+ * SA_SIGINFO deliver the signal with SIGINFO structs
+ * SA_THIRTYTWO delivers the signal in 32-bit mode, even if the task
+ * is running in 26-bit.
+ * SA_ONSTACK allows alternate signal stacks (see sigaltstack(2)).
+ * SA_RESTART flag to get restarting signals (which were the default long ago)
+ * SA_NODEFER prevents the current signal from being masked in the handler.
+ * SA_RESETHAND clears the handler when the signal is delivered.
+ *
+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
+ * Unix names RESETHAND and NODEFER respectively.
*/
+#define SA_NOCLDSTOP 0x00000001
+#define SA_NOCLDWAIT 0x00000002
+#define SA_SIGINFO 0x00000004
#define SA_THIRTYTWO 0x02000000
#define SA_RESTORER 0x04000000
+#define SA_ONSTACK 0x08000000
+#define SA_RESTART 0x10000000
+#define SA_NODEFER 0x40000000
+#define SA_RESETHAND 0x80000000
+
+#define SA_NOMASK SA_NODEFER
+#define SA_ONESHOT SA_RESETHAND
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
diff --git a/original/uapi/asm-arm/asm/types.h b/original/uapi/asm-arm/asm/types.h
index 1a667bc..dfaa50d 100644
--- a/original/uapi/asm-arm/asm/types.h
+++ b/original/uapi/asm-arm/asm/types.h
@@ -1,41 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_ASM_TYPES_H
-#define _UAPI_ASM_TYPES_H
-
-#include <asm-generic/int-ll64.h>
-
+#ifndef _ASM_GENERIC_TYPES_H
+#define _ASM_GENERIC_TYPES_H
/*
- * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as
- * unambiguous on ARM as you would expect. For the types below, there is a
- * difference on ARM between GCC built for bare metal ARM, GCC built for glibc
- * and the kernel itself, which results in build errors if you try to build with
- * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h'
- * in order to use NEON intrinsics)
- *
- * As the typedefs for these types in 'stdint.h' are based on builtin defines
- * supplied by GCC, we can tweak these to align with the kernel's idea of those
- * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same
- * source file (provided that -ffreestanding is used).
- *
- * int32_t uint32_t uintptr_t
- * bare metal GCC long unsigned long unsigned int
- * glibc GCC int unsigned int unsigned int
- * kernel int unsigned int unsigned long
+ * int-ll64 is used everywhere now.
*/
+#include <asm-generic/int-ll64.h>
-#ifdef __INT32_TYPE__
-#undef __INT32_TYPE__
-#define __INT32_TYPE__ int
-#endif
-
-#ifdef __UINT32_TYPE__
-#undef __UINT32_TYPE__
-#define __UINT32_TYPE__ unsigned int
-#endif
-
-#ifdef __UINTPTR_TYPE__
-#undef __UINTPTR_TYPE__
-#define __UINTPTR_TYPE__ unsigned long
-#endif
-
-#endif /* _UAPI_ASM_TYPES_H */
+#endif /* _ASM_GENERIC_TYPES_H */
diff --git a/original/uapi/asm-arm/asm/unistd-common.h b/original/uapi/asm-arm/asm/unistd-common.h
index e38b11c..555b51b 100644
--- a/original/uapi/asm-arm/asm/unistd-common.h
+++ b/original/uapi/asm-arm/asm/unistd-common.h
@@ -390,12 +390,5 @@
#define __NR_fspick (__NR_SYSCALL_BASE + 433)
#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
#endif /* _UAPI_ASM_ARM_UNISTD_COMMON_H */
diff --git a/original/uapi/asm-arm64/asm/hwcap.h b/original/uapi/asm-arm64/asm/hwcap.h
index b8f41aa..a1e7288 100644
--- a/original/uapi/asm-arm64/asm/hwcap.h
+++ b/original/uapi/asm-arm64/asm/hwcap.h
@@ -65,15 +65,5 @@
#define HWCAP2_SVESM4 (1 << 6)
#define HWCAP2_FLAGM2 (1 << 7)
#define HWCAP2_FRINT (1 << 8)
-#define HWCAP2_SVEI8MM (1 << 9)
-#define HWCAP2_SVEF32MM (1 << 10)
-#define HWCAP2_SVEF64MM (1 << 11)
-#define HWCAP2_SVEBF16 (1 << 12)
-#define HWCAP2_I8MM (1 << 13)
-#define HWCAP2_BF16 (1 << 14)
-#define HWCAP2_DGH (1 << 15)
-#define HWCAP2_RNG (1 << 16)
-#define HWCAP2_BTI (1 << 17)
-#define HWCAP2_MTE (1 << 18)
#endif /* _UAPI__ASM_HWCAP_H */
diff --git a/original/uapi/asm-arm64/asm/kvm.h b/original/uapi/asm-arm64/asm/kvm.h
index 24223ad..820e575 100644
--- a/original/uapi/asm-arm64/asm/kvm.h
+++ b/original/uapi/asm-arm64/asm/kvm.h
@@ -156,19 +156,7 @@ struct kvm_sync_regs {
__u64 device_irq_level;
};
-/*
- * PMU filter structure. Describe a range of events with a particular
- * action. To be used with KVM_ARM_VCPU_PMU_V3_FILTER.
- */
-struct kvm_pmu_event_filter {
- __u16 base_event;
- __u16 nevents;
-
-#define KVM_PMU_EVENT_ALLOW 0
-#define KVM_PMU_EVENT_DENY 1
-
- __u8 action;
- __u8 pad[3];
+struct kvm_arch_memory_slot {
};
/* for KVM_GET/SET_VCPU_EVENTS */
@@ -232,18 +220,10 @@ struct kvm_vcpu_events {
#define KVM_REG_ARM_PTIMER_CVAL ARM64_SYS_REG(3, 3, 14, 2, 2)
#define KVM_REG_ARM_PTIMER_CNT ARM64_SYS_REG(3, 3, 14, 0, 1)
-/*
- * EL0 Virtual Timer Registers
- *
- * WARNING:
- * KVM_REG_ARM_TIMER_CVAL and KVM_REG_ARM_TIMER_CNT are not defined
- * with the appropriate register encodings. Their values have been
- * accidentally swapped. As this is set API, the definitions here
- * must be used, rather than ones derived from the encodings.
- */
+/* EL0 Virtual Timer Registers */
#define KVM_REG_ARM_TIMER_CTL ARM64_SYS_REG(3, 3, 14, 3, 1)
-#define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2)
#define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2)
+#define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2)
/* KVM-as-firmware specific pseudo-registers */
#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT)
@@ -254,15 +234,6 @@ struct kvm_vcpu_events {
#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL 0
#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL 1
#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED 2
-
-/*
- * Only two states can be presented by the host kernel:
- * - NOT_REQUIRED: the guest doesn't need to do anything
- * - NOT_AVAIL: the guest isn't mitigated (it can still use SSBS if available)
- *
- * All the other values are deprecated. The host still accepts all
- * values (they are ABI), but will narrow them to the above two.
- */
#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2 KVM_REG_ARM_FW_REG(2)
#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL 0
#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN 1
@@ -350,7 +321,6 @@ struct kvm_vcpu_events {
#define KVM_ARM_VCPU_PMU_V3_CTRL 0
#define KVM_ARM_VCPU_PMU_V3_IRQ 0
#define KVM_ARM_VCPU_PMU_V3_INIT 1
-#define KVM_ARM_VCPU_PMU_V3_FILTER 2
#define KVM_ARM_VCPU_TIMER_CTRL 1
#define KVM_ARM_VCPU_TIMER_IRQ_VTIMER 0
#define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1
diff --git a/original/uapi/asm-arm64/asm/mman.h b/original/uapi/asm-arm64/asm/mman.h
index 1e6482a..8eebf89 100644
--- a/original/uapi/asm-arm64/asm/mman.h
+++ b/original/uapi/asm-arm64/asm/mman.h
@@ -1,10 +1 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI__ASM_MMAN_H
-#define _UAPI__ASM_MMAN_H
-
#include <asm-generic/mman.h>
-
-#define PROT_BTI 0x10 /* BTI guarded page */
-#define PROT_MTE 0x20 /* Normal Tagged mapping */
-
-#endif /* ! _UAPI__ASM_MMAN_H */
diff --git a/original/uapi/asm-arm64/asm/ptrace.h b/original/uapi/asm-arm64/asm/ptrace.h
index 758ae98..7ed9294 100644
--- a/original/uapi/asm-arm64/asm/ptrace.h
+++ b/original/uapi/asm-arm64/asm/ptrace.h
@@ -46,19 +46,14 @@
#define PSR_I_BIT 0x00000080
#define PSR_A_BIT 0x00000100
#define PSR_D_BIT 0x00000200
-#define PSR_BTYPE_MASK 0x00000c00
#define PSR_SSBS_BIT 0x00001000
#define PSR_PAN_BIT 0x00400000
#define PSR_UAO_BIT 0x00800000
-#define PSR_DIT_BIT 0x01000000
-#define PSR_TCO_BIT 0x02000000
#define PSR_V_BIT 0x10000000
#define PSR_C_BIT 0x20000000
#define PSR_Z_BIT 0x40000000
#define PSR_N_BIT 0x80000000
-#define PSR_BTYPE_SHIFT 10
-
/*
* Groups of PSR bits
*/
@@ -67,18 +62,9 @@
#define PSR_x 0x0000ff00 /* Extension */
#define PSR_c 0x000000ff /* Control */
-/* Convenience names for the values of PSTATE.BTYPE */
-#define PSR_BTYPE_NONE (0b00 << PSR_BTYPE_SHIFT)
-#define PSR_BTYPE_JC (0b01 << PSR_BTYPE_SHIFT)
-#define PSR_BTYPE_C (0b10 << PSR_BTYPE_SHIFT)
-#define PSR_BTYPE_J (0b11 << PSR_BTYPE_SHIFT)
-
/* syscall emulation path in ptrace */
#define PTRACE_SYSEMU 31
#define PTRACE_SYSEMU_SINGLESTEP 32
-/* MTE allocation tag access */
-#define PTRACE_PEEKMTETAGS 33
-#define PTRACE_POKEMTETAGS 34
#ifndef __ASSEMBLY__
diff --git a/original/uapi/asm-arm64/asm/sigcontext.h b/original/uapi/asm-arm64/asm/sigcontext.h
index 0c796c7..8b0ebce 100644
--- a/original/uapi/asm-arm64/asm/sigcontext.h
+++ b/original/uapi/asm-arm64/asm/sigcontext.h
@@ -179,7 +179,7 @@ struct sve_context {
* The same convention applies when returning from a signal: a caller
* will need to remove or resize the sve_context block if it wants to
* make the SVE registers live when they were previously non-live or
- * vice-versa. This may require the caller to allocate fresh
+ * vice-versa. This may require the the caller to allocate fresh
* memory and/or move other context blocks in the signal frame.
*
* Changing the vector length during signal return is not permitted:
diff --git a/original/uapi/asm-generic/hugetlb_encode.h b/original/uapi/asm-generic/hugetlb_encode.h
index 4f3d5aa..b0f8e87 100644
--- a/original/uapi/asm-generic/hugetlb_encode.h
+++ b/original/uapi/asm-generic/hugetlb_encode.h
@@ -20,7 +20,6 @@
#define HUGETLB_FLAG_ENCODE_SHIFT 26
#define HUGETLB_FLAG_ENCODE_MASK 0x3f
-#define HUGETLB_FLAG_ENCODE_16KB (14 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT)
diff --git a/original/uapi/asm-generic/mman-common.h b/original/uapi/asm-generic/mman-common.h
index f94f65d..c160a53 100644
--- a/original/uapi/asm-generic/mman-common.h
+++ b/original/uapi/asm-generic/mman-common.h
@@ -11,8 +11,6 @@
#define PROT_WRITE 0x2 /* page can be written */
#define PROT_EXEC 0x4 /* page can be executed */
#define PROT_SEM 0x8 /* page may be used for atomic ops */
-/* 0x10 reserved for arch-specific use */
-/* 0x20 reserved for arch-specific use */
#define PROT_NONE 0x0 /* page can not be accessed */
#define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */
#define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */
diff --git a/original/uapi/asm-generic/posix_types.h b/original/uapi/asm-generic/posix_types.h
index b5f7594..2f9c805 100644
--- a/original/uapi/asm-generic/posix_types.h
+++ b/original/uapi/asm-generic/posix_types.h
@@ -87,9 +87,7 @@ typedef struct {
typedef __kernel_long_t __kernel_off_t;
typedef long long __kernel_loff_t;
typedef __kernel_long_t __kernel_old_time_t;
-#ifndef __KERNEL__
typedef __kernel_long_t __kernel_time_t;
-#endif
typedef long long __kernel_time64_t;
typedef __kernel_long_t __kernel_clock_t;
typedef int __kernel_timer_t;
diff --git a/original/uapi/asm-generic/sembuf.h b/original/uapi/asm-generic/sembuf.h
index f54e48f..0e709bd 100644
--- a/original/uapi/asm-generic/sembuf.h
+++ b/original/uapi/asm-generic/sembuf.h
@@ -6,9 +6,9 @@
#include <asm/ipcbuf.h>
/*
- * The semid64_ds structure for most architectures (though it came from x86_32
- * originally). Note extra padding because this structure is passed back and
- * forth between kernel and user space.
+ * The semid64_ds structure for x86 architecture.
+ * Note extra padding because this structure is passed back and forth
+ * between kernel and user space.
*
* semid64_ds was originally meant to be architecture specific, but
* everyone just ended up making identical copies without specific
diff --git a/original/uapi/asm-generic/siginfo.h b/original/uapi/asm-generic/siginfo.h
index d259700..cb3d6c2 100644
--- a/original/uapi/asm-generic/siginfo.h
+++ b/original/uapi/asm-generic/siginfo.h
@@ -229,9 +229,7 @@ typedef struct siginfo {
#define SEGV_ACCADI 5 /* ADI not enabled for mapped object */
#define SEGV_ADIDERR 6 /* Disrupting MCD error */
#define SEGV_ADIPERR 7 /* Precise MCD exception */
-#define SEGV_MTEAERR 8 /* Asynchronous ARM MTE error */
-#define SEGV_MTESERR 9 /* Synchronous ARM MTE exception */
-#define NSIGSEGV 9
+#define NSIGSEGV 7
/*
* SIGBUS si_codes
@@ -286,8 +284,7 @@ typedef struct siginfo {
* SIGSYS si_codes
*/
#define SYS_SECCOMP 1 /* seccomp triggered */
-#define SYS_USER_DISPATCH 2 /* syscall user dispatch triggered */
-#define NSIGSYS 2
+#define NSIGSYS 1
/*
* SIGEMT si_codes
diff --git a/original/uapi/asm-generic/signal-defs.h b/original/uapi/asm-generic/signal-defs.h
index fe929e7..e9304c9 100644
--- a/original/uapi/asm-generic/signal-defs.h
+++ b/original/uapi/asm-generic/signal-defs.h
@@ -4,69 +4,6 @@
#include <linux/compiler.h>
-/*
- * SA_FLAGS values:
- *
- * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
- * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
- * SA_SIGINFO delivers the signal with SIGINFO structs.
- * SA_ONSTACK indicates that a registered stack_t will be used.
- * SA_RESTART flag to get restarting signals (which were the default long ago)
- * SA_NODEFER prevents the current signal from being masked in the handler.
- * SA_RESETHAND clears the handler when the signal is delivered.
- * SA_UNSUPPORTED is a flag bit that will never be supported. Kernels from
- * before the introduction of SA_UNSUPPORTED did not clear unknown bits from
- * sa_flags when read using the oldact argument to sigaction and rt_sigaction,
- * so this bit allows flag bit support to be detected from userspace while
- * allowing an old kernel to be distinguished from a kernel that supports every
- * flag bit.
- * SA_EXPOSE_TAGBITS exposes an architecture-defined set of tag bits in
- * siginfo.si_addr.
- *
- * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
- * Unix names RESETHAND and NODEFER respectively.
- */
-#ifndef SA_NOCLDSTOP
-#define SA_NOCLDSTOP 0x00000001
-#endif
-#ifndef SA_NOCLDWAIT
-#define SA_NOCLDWAIT 0x00000002
-#endif
-#ifndef SA_SIGINFO
-#define SA_SIGINFO 0x00000004
-#endif
-/* 0x00000008 used on alpha, mips, parisc */
-/* 0x00000010 used on alpha, parisc */
-/* 0x00000020 used on alpha, parisc, sparc */
-/* 0x00000040 used on alpha, parisc */
-/* 0x00000080 used on parisc */
-/* 0x00000100 used on sparc */
-/* 0x00000200 used on sparc */
-#define SA_UNSUPPORTED 0x00000400
-#define SA_EXPOSE_TAGBITS 0x00000800
-/* 0x00010000 used on mips */
-/* 0x01000000 used on x86 */
-/* 0x02000000 used on x86 */
-/*
- * New architectures should not define the obsolete
- * SA_RESTORER 0x04000000
- */
-#ifndef SA_ONSTACK
-#define SA_ONSTACK 0x08000000
-#endif
-#ifndef SA_RESTART
-#define SA_RESTART 0x10000000
-#endif
-#ifndef SA_NODEFER
-#define SA_NODEFER 0x40000000
-#endif
-#ifndef SA_RESETHAND
-#define SA_RESETHAND 0x80000000
-#endif
-
-#define SA_NOMASK SA_NODEFER
-#define SA_ONESHOT SA_RESETHAND
-
#ifndef SIG_BLOCK
#define SIG_BLOCK 0 /* for blocking signals */
#endif
diff --git a/original/uapi/asm-generic/signal.h b/original/uapi/asm-generic/signal.h
index f634822..5c716a9 100644
--- a/original/uapi/asm-generic/signal.h
+++ b/original/uapi/asm-generic/signal.h
@@ -52,6 +52,35 @@
#define SIGRTMAX _NSIG
#endif
+/*
+ * SA_FLAGS values:
+ *
+ * SA_ONSTACK indicates that a registered stack_t will be used.
+ * SA_RESTART flag to get restarting signals (which were the default long ago)
+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
+ * SA_RESETHAND clears the handler when the signal is delivered.
+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
+ * SA_NODEFER prevents the current signal from being masked in the handler.
+ *
+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
+ * Unix names RESETHAND and NODEFER respectively.
+ */
+#define SA_NOCLDSTOP 0x00000001
+#define SA_NOCLDWAIT 0x00000002
+#define SA_SIGINFO 0x00000004
+#define SA_ONSTACK 0x08000000
+#define SA_RESTART 0x10000000
+#define SA_NODEFER 0x40000000
+#define SA_RESETHAND 0x80000000
+
+#define SA_NOMASK SA_NODEFER
+#define SA_ONESHOT SA_RESETHAND
+
+/*
+ * New architectures should not define the obsolete
+ * SA_RESTORER 0x04000000
+ */
+
#if !defined MINSIGSTKSZ || !defined SIGSTKSZ
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
diff --git a/original/uapi/asm-generic/socket.h b/original/uapi/asm-generic/socket.h
index 4dcd13d..77f7c16 100644
--- a/original/uapi/asm-generic/socket.h
+++ b/original/uapi/asm-generic/socket.h
@@ -119,9 +119,6 @@
#define SO_DETACH_REUSEPORT_BPF 68
-#define SO_PREFER_BUSY_POLL 69
-#define SO_BUSY_POLL_BUDGET 70
-
#if !defined(__KERNEL__)
#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
diff --git a/original/uapi/asm-generic/unistd.h b/original/uapi/asm-generic/unistd.h
index ce58cff..1fc8faa 100644
--- a/original/uapi/asm-generic/unistd.h
+++ b/original/uapi/asm-generic/unistd.h
@@ -140,7 +140,7 @@ __SYSCALL(__NR_renameat, sys_renameat)
#define __NR_umount2 39
__SYSCALL(__NR_umount2, sys_umount)
#define __NR_mount 40
-__SYSCALL(__NR_mount, sys_mount)
+__SC_COMP(__NR_mount, sys_mount, compat_sys_mount)
#define __NR_pivot_root 41
__SYSCALL(__NR_pivot_root, sys_pivot_root)
@@ -207,9 +207,9 @@ __SYSCALL(__NR_read, sys_read)
#define __NR_write 64
__SYSCALL(__NR_write, sys_write)
#define __NR_readv 65
-__SC_COMP(__NR_readv, sys_readv, sys_readv)
+__SC_COMP(__NR_readv, sys_readv, compat_sys_readv)
#define __NR_writev 66
-__SC_COMP(__NR_writev, sys_writev, sys_writev)
+__SC_COMP(__NR_writev, sys_writev, compat_sys_writev)
#define __NR_pread64 67
__SC_COMP(__NR_pread64, sys_pread64, compat_sys_pread64)
#define __NR_pwrite64 68
@@ -237,7 +237,7 @@ __SC_COMP(__NR_signalfd4, sys_signalfd4, compat_sys_signalfd4)
/* fs/splice.c */
#define __NR_vmsplice 75
-__SYSCALL(__NR_vmsplice, sys_vmsplice)
+__SC_COMP(__NR_vmsplice, sys_vmsplice, compat_sys_vmsplice)
#define __NR_splice 76
__SYSCALL(__NR_splice, sys_splice)
#define __NR_tee 77
@@ -517,7 +517,7 @@ __SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday)
__SC_3264(__NR_adjtimex, sys_adjtimex_time32, sys_adjtimex)
#endif
-/* kernel/sys.c */
+/* kernel/timer.c */
#define __NR_getpid 172
__SYSCALL(__NR_getpid, sys_getpid)
#define __NR_getppid 173
@@ -606,9 +606,9 @@ __SYSCALL(__NR_sendto, sys_sendto)
#define __NR_recvfrom 207
__SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom)
#define __NR_setsockopt 208
-__SC_COMP(__NR_setsockopt, sys_setsockopt, sys_setsockopt)
+__SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt)
#define __NR_getsockopt 209
-__SC_COMP(__NR_getsockopt, sys_getsockopt, sys_getsockopt)
+__SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt)
#define __NR_shutdown 210
__SYSCALL(__NR_shutdown, sys_shutdown)
#define __NR_sendmsg 211
@@ -727,9 +727,11 @@ __SYSCALL(__NR_setns, sys_setns)
#define __NR_sendmmsg 269
__SC_COMP(__NR_sendmmsg, sys_sendmmsg, compat_sys_sendmmsg)
#define __NR_process_vm_readv 270
-__SYSCALL(__NR_process_vm_readv, sys_process_vm_readv)
+__SC_COMP(__NR_process_vm_readv, sys_process_vm_readv, \
+ compat_sys_process_vm_readv)
#define __NR_process_vm_writev 271
-__SYSCALL(__NR_process_vm_writev, sys_process_vm_writev)
+__SC_COMP(__NR_process_vm_writev, sys_process_vm_writev, \
+ compat_sys_process_vm_writev)
#define __NR_kcmp 272
__SYSCALL(__NR_kcmp, sys_kcmp)
#define __NR_finit_module 273
@@ -848,24 +850,9 @@ __SYSCALL(__NR_pidfd_open, sys_pidfd_open)
#define __NR_clone3 435
__SYSCALL(__NR_clone3, sys_clone3)
#endif
-#define __NR_close_range 436
-__SYSCALL(__NR_close_range, sys_close_range)
-
-#define __NR_openat2 437
-__SYSCALL(__NR_openat2, sys_openat2)
-#define __NR_pidfd_getfd 438
-__SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
-#define __NR_faccessat2 439
-__SYSCALL(__NR_faccessat2, sys_faccessat2)
-#define __NR_process_madvise 440
-__SYSCALL(__NR_process_madvise, sys_process_madvise)
-#define __NR_epoll_pwait2 441
-__SC_COMP(__NR_epoll_pwait2, sys_epoll_pwait2, compat_sys_epoll_pwait2)
-#define __NR_mount_setattr 442
-__SYSCALL(__NR_mount_setattr, sys_mount_setattr)
#undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 436
/*
* 32 bit systems traditionally used different
diff --git a/original/uapi/asm-x86/asm/bootparam.h b/original/uapi/asm-x86/asm/bootparam.h
index 600a141..8669c6b 100644
--- a/original/uapi/asm-x86/asm/bootparam.h
+++ b/original/uapi/asm-x86/asm/bootparam.h
@@ -255,7 +255,7 @@ struct boot_params {
* currently supportd through this PV boot path.
* @X86_SUBARCH_INTEL_MID: Used for Intel MID (Mobile Internet Device) platform
* systems which do not have the PCI legacy interfaces.
- * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC
+ * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC for
* for settop boxes and media devices, the use of a subarch for CE4100
* is more of a hack...
*/
diff --git a/original/uapi/asm-x86/asm/hwcap2.h b/original/uapi/asm-x86/asm/hwcap2.h
index 5fdfcb4..8b2effe 100644
--- a/original/uapi/asm-x86/asm/hwcap2.h
+++ b/original/uapi/asm-x86/asm/hwcap2.h
@@ -5,7 +5,4 @@
/* MONITOR/MWAIT enabled in Ring 3 */
#define HWCAP2_RING3MWAIT (1 << 0)
-/* Kernel allows FSGSBASE instructions available in Ring 3 */
-#define HWCAP2_FSGSBASE BIT(1)
-
#endif
diff --git a/original/uapi/asm-x86/asm/kvm.h b/original/uapi/asm-x86/asm/kvm.h
index 5a3022c..503d3f4 100644
--- a/original/uapi/asm-x86/asm/kvm.h
+++ b/original/uapi/asm-x86/asm/kvm.h
@@ -12,7 +12,6 @@
#define KVM_PIO_PAGE_OFFSET 1
#define KVM_COALESCED_MMIO_PAGE_OFFSET 2
-#define KVM_DIRTY_LOG_PAGE_OFFSET 64
#define DE_VECTOR 0
#define DB_VECTOR 1
@@ -112,7 +111,6 @@ struct kvm_ioapic_state {
#define KVM_NR_IRQCHIPS 3
#define KVM_RUN_X86_SMM (1 << 0)
-#define KVM_RUN_X86_BUS_LOCK (1 << 1)
/* for KVM_GET_REGS and KVM_SET_REGS */
struct kvm_regs {
@@ -194,26 +192,6 @@ struct kvm_msr_list {
__u32 indices[0];
};
-/* Maximum size of any access bitmap in bytes */
-#define KVM_MSR_FILTER_MAX_BITMAP_SIZE 0x600
-
-/* for KVM_X86_SET_MSR_FILTER */
-struct kvm_msr_filter_range {
-#define KVM_MSR_FILTER_READ (1 << 0)
-#define KVM_MSR_FILTER_WRITE (1 << 1)
- __u32 flags;
- __u32 nmsrs; /* number of msrs in bitmap */
- __u32 base; /* MSR index the bitmap starts at */
- __u8 *bitmap; /* a 1 bit allows the operations in flags, 0 denies */
-};
-
-#define KVM_MSR_FILTER_MAX_RANGES 16
-struct kvm_msr_filter {
-#define KVM_MSR_FILTER_DEFAULT_ALLOW (0 << 0)
-#define KVM_MSR_FILTER_DEFAULT_DENY (1 << 0)
- __u32 flags;
- struct kvm_msr_filter_range ranges[KVM_MSR_FILTER_MAX_RANGES];
-};
struct kvm_cpuid_entry {
__u32 function;
@@ -407,23 +385,17 @@ struct kvm_sync_regs {
#define KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT (1 << 4)
#define KVM_STATE_NESTED_FORMAT_VMX 0
-#define KVM_STATE_NESTED_FORMAT_SVM 1
+#define KVM_STATE_NESTED_FORMAT_SVM 1 /* unused */
#define KVM_STATE_NESTED_GUEST_MODE 0x00000001
#define KVM_STATE_NESTED_RUN_PENDING 0x00000002
#define KVM_STATE_NESTED_EVMCS 0x00000004
-#define KVM_STATE_NESTED_MTF_PENDING 0x00000008
-#define KVM_STATE_NESTED_GIF_SET 0x00000100
#define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001
#define KVM_STATE_NESTED_SMM_VMXON 0x00000002
#define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
-#define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
-
-#define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
-
struct kvm_vmx_nested_state_data {
__u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
__u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -436,18 +408,6 @@ struct kvm_vmx_nested_state_hdr {
struct {
__u16 flags;
} smm;
-
- __u32 flags;
- __u64 preemption_timer_deadline;
-};
-
-struct kvm_svm_nested_state_data {
- /* Save area only used if KVM_STATE_NESTED_RUN_PENDING. */
- __u8 vmcb12[KVM_STATE_NESTED_SVM_VMCB_SIZE];
-};
-
-struct kvm_svm_nested_state_hdr {
- __u64 vmcb_pa;
};
/* for KVM_CAP_NESTED_STATE */
@@ -458,7 +418,6 @@ struct kvm_nested_state {
union {
struct kvm_vmx_nested_state_hdr vmx;
- struct kvm_svm_nested_state_hdr svm;
/* Pad the header to 128 bytes. */
__u8 pad[120];
@@ -471,7 +430,6 @@ struct kvm_nested_state {
*/
union {
struct kvm_vmx_nested_state_data vmx[0];
- struct kvm_svm_nested_state_data svm[0];
} data;
};
diff --git a/original/uapi/asm-x86/asm/kvm_para.h b/original/uapi/asm-x86/asm/kvm_para.h
index 950afeb..2a8e0b6 100644
--- a/original/uapi/asm-x86/asm/kvm_para.h
+++ b/original/uapi/asm-x86/asm/kvm_para.h
@@ -31,8 +31,6 @@
#define KVM_FEATURE_PV_SEND_IPI 11
#define KVM_FEATURE_POLL_CONTROL 12
#define KVM_FEATURE_PV_SCHED_YIELD 13
-#define KVM_FEATURE_ASYNC_PF_INT 14
-#define KVM_FEATURE_MSI_EXT_DEST_ID 15
#define KVM_HINTS_REALTIME 0
@@ -52,8 +50,6 @@
#define MSR_KVM_STEAL_TIME 0x4b564d03
#define MSR_KVM_PV_EOI_EN 0x4b564d04
#define MSR_KVM_POLL_CONTROL 0x4b564d05
-#define MSR_KVM_ASYNC_PF_INT 0x4b564d06
-#define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
struct kvm_steal_time {
__u64 steal;
@@ -85,11 +81,6 @@ struct kvm_clock_pairing {
#define KVM_ASYNC_PF_ENABLED (1 << 0)
#define KVM_ASYNC_PF_SEND_ALWAYS (1 << 1)
#define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
-#define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
-
-/* MSR_KVM_ASYNC_PF_INT */
-#define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
-
/* Operations for KVM_HC_MMU_OP */
#define KVM_MMU_OP_WRITE_PTE 1
@@ -121,13 +112,8 @@ struct kvm_mmu_op_release_pt {
#define KVM_PV_REASON_PAGE_READY 2
struct kvm_vcpu_pv_apf_data {
- /* Used for 'page not present' events delivered via #PF */
- __u32 flags;
-
- /* Used for 'page ready' events delivered via interrupt notification */
- __u32 token;
-
- __u8 pad[56];
+ __u32 reason;
+ __u8 pad[60];
__u32 enabled;
};
diff --git a/original/uapi/asm-x86/asm/mce.h b/original/uapi/asm-x86/asm/mce.h
index db9adc0..955c2a2 100644
--- a/original/uapi/asm-x86/asm/mce.h
+++ b/original/uapi/asm-x86/asm/mce.h
@@ -35,7 +35,6 @@ struct mce {
__u64 ipid; /* MCA_IPID MSR: only valid on SMCA systems */
__u64 ppin; /* Protected Processor Inventory Number */
__u32 microcode; /* Microcode revision */
- __u64 kflags; /* Internal kernel use */
};
#define MCE_GET_RECORD_LEN _IOR('M', 1, int)
diff --git a/original/uapi/asm-x86/asm/sgx.h b/original/uapi/asm-x86/asm/sgx.h
deleted file mode 100644
index 9034f30..0000000
--- a/original/uapi/asm-x86/asm/sgx.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Copyright(c) 2016-20 Intel Corporation.
- */
-#ifndef _UAPI_ASM_X86_SGX_H
-#define _UAPI_ASM_X86_SGX_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-/**
- * enum sgx_page_flags - page control flags
- * %SGX_PAGE_MEASURE: Measure the page contents with a sequence of
- * ENCLS[EEXTEND] operations.
- */
-enum sgx_page_flags {
- SGX_PAGE_MEASURE = 0x01,
-};
-
-#define SGX_MAGIC 0xA4
-
-#define SGX_IOC_ENCLAVE_CREATE \
- _IOW(SGX_MAGIC, 0x00, struct sgx_enclave_create)
-#define SGX_IOC_ENCLAVE_ADD_PAGES \
- _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
-#define SGX_IOC_ENCLAVE_INIT \
- _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
-#define SGX_IOC_ENCLAVE_PROVISION \
- _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
-
-/**
- * struct sgx_enclave_create - parameter structure for the
- * %SGX_IOC_ENCLAVE_CREATE ioctl
- * @src: address for the SECS page data
- */
-struct sgx_enclave_create {
- __u64 src;
-};
-
-/**
- * struct sgx_enclave_add_pages - parameter structure for the
- * %SGX_IOC_ENCLAVE_ADD_PAGE ioctl
- * @src: start address for the page data
- * @offset: starting page offset
- * @length: length of the data (multiple of the page size)
- * @secinfo: address for the SECINFO data
- * @flags: page control flags
- * @count: number of bytes added (multiple of the page size)
- */
-struct sgx_enclave_add_pages {
- __u64 src;
- __u64 offset;
- __u64 length;
- __u64 secinfo;
- __u64 flags;
- __u64 count;
-};
-
-/**
- * struct sgx_enclave_init - parameter structure for the
- * %SGX_IOC_ENCLAVE_INIT ioctl
- * @sigstruct: address for the SIGSTRUCT data
- */
-struct sgx_enclave_init {
- __u64 sigstruct;
-};
-
-/**
- * struct sgx_enclave_provision - parameter structure for the
- * %SGX_IOC_ENCLAVE_PROVISION ioctl
- * @fd: file handle of /dev/sgx_provision
- */
-struct sgx_enclave_provision {
- __u64 fd;
-};
-
-struct sgx_enclave_run;
-
-/**
- * typedef sgx_enclave_user_handler_t - Exit handler function accepted by
- * __vdso_sgx_enter_enclave()
- * @run: The run instance given by the caller
- *
- * The register parameters contain the snapshot of their values at enclave
- * exit. An invalid ENCLU function number will cause -EINVAL to be returned
- * to the caller.
- *
- * Return:
- * - <= 0: The given value is returned back to the caller.
- * - > 0: ENCLU function to invoke, either EENTER or ERESUME.
- */
-typedef int (*sgx_enclave_user_handler_t)(long rdi, long rsi, long rdx,
- long rsp, long r8, long r9,
- struct sgx_enclave_run *run);
-
-/**
- * struct sgx_enclave_run - the execution context of __vdso_sgx_enter_enclave()
- * @tcs: TCS used to enter the enclave
- * @function: The last seen ENCLU function (EENTER, ERESUME or EEXIT)
- * @exception_vector: The interrupt vector of the exception
- * @exception_error_code: The exception error code pulled out of the stack
- * @exception_addr: The address that triggered the exception
- * @user_handler: User provided callback run on exception
- * @user_data: Data passed to the user handler
- * @reserved Reserved for future extensions
- *
- * If @user_handler is provided, the handler will be invoked on all return paths
- * of the normal flow. The user handler may transfer control, e.g. via a
- * longjmp() call or a C++ exception, without returning to
- * __vdso_sgx_enter_enclave().
- */
-struct sgx_enclave_run {
- __u64 tcs;
- __u32 function;
- __u16 exception_vector;
- __u16 exception_error_code;
- __u64 exception_addr;
- __u64 user_handler;
- __u64 user_data;
- __u8 reserved[216];
-};
-
-/**
- * typedef vdso_sgx_enter_enclave_t - Prototype for __vdso_sgx_enter_enclave(),
- * a vDSO function to enter an SGX enclave.
- * @rdi: Pass-through value for RDI
- * @rsi: Pass-through value for RSI
- * @rdx: Pass-through value for RDX
- * @function: ENCLU function, must be EENTER or ERESUME
- * @r8: Pass-through value for R8
- * @r9: Pass-through value for R9
- * @run: struct sgx_enclave_run, must be non-NULL
- *
- * NOTE: __vdso_sgx_enter_enclave() does not ensure full compliance with the
- * x86-64 ABI, e.g. doesn't handle XSAVE state. Except for non-volatile
- * general purpose registers, EFLAGS.DF, and RSP alignment, preserving/setting
- * state in accordance with the x86-64 ABI is the responsibility of the enclave
- * and its runtime, i.e. __vdso_sgx_enter_enclave() cannot be called from C
- * code without careful consideration by both the enclave and its runtime.
- *
- * All general purpose registers except RAX, RBX and RCX are passed as-is to the
- * enclave. RAX, RBX and RCX are consumed by EENTER and ERESUME and are loaded
- * with @function, asynchronous exit pointer, and @run.tcs respectively.
- *
- * RBP and the stack are used to anchor __vdso_sgx_enter_enclave() to the
- * pre-enclave state, e.g. to retrieve @run.exception and @run.user_handler
- * after an enclave exit. All other registers are available for use by the
- * enclave and its runtime, e.g. an enclave can push additional data onto the
- * stack (and modify RSP) to pass information to the optional user handler (see
- * below).
- *
- * Most exceptions reported on ENCLU, including those that occur within the
- * enclave, are fixed up and reported synchronously instead of being delivered
- * via a standard signal. Debug Exceptions (#DB) and Breakpoints (#BP) are
- * never fixed up and are always delivered via standard signals. On synchrously
- * reported exceptions, -EFAULT is returned and details about the exception are
- * recorded in @run.exception, the optional sgx_enclave_exception struct.
- *
- * Return:
- * - 0: ENCLU function was successfully executed.
- * - -EINVAL: Invalid ENCL number (neither EENTER nor ERESUME).
- */
-typedef int (*vdso_sgx_enter_enclave_t)(unsigned long rdi, unsigned long rsi,
- unsigned long rdx, unsigned int function,
- unsigned long r8, unsigned long r9,
- struct sgx_enclave_run *run);
-
-#endif /* _UAPI_ASM_X86_SGX_H */
diff --git a/original/uapi/asm-x86/asm/signal.h b/original/uapi/asm-x86/asm/signal.h
index 164a22a..e5745d5 100644
--- a/original/uapi/asm-x86/asm/signal.h
+++ b/original/uapi/asm-x86/asm/signal.h
@@ -62,6 +62,30 @@ typedef unsigned long sigset_t;
#define SIGRTMIN 32
#define SIGRTMAX _NSIG
+/*
+ * SA_FLAGS values:
+ *
+ * SA_ONSTACK indicates that a registered stack_t will be used.
+ * SA_RESTART flag to get restarting signals (which were the default long ago)
+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
+ * SA_RESETHAND clears the handler when the signal is delivered.
+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
+ * SA_NODEFER prevents the current signal from being masked in the handler.
+ *
+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
+ * Unix names RESETHAND and NODEFER respectively.
+ */
+#define SA_NOCLDSTOP 0x00000001u
+#define SA_NOCLDWAIT 0x00000002u
+#define SA_SIGINFO 0x00000004u
+#define SA_ONSTACK 0x08000000u
+#define SA_RESTART 0x10000000u
+#define SA_NODEFER 0x40000000u
+#define SA_RESETHAND 0x80000000u
+
+#define SA_NOMASK SA_NODEFER
+#define SA_ONESHOT SA_RESETHAND
+
#define SA_RESTORER 0x04000000
#define MINSIGSTKSZ 2048
diff --git a/original/uapi/asm-x86/asm/svm.h b/original/uapi/asm-x86/asm/svm.h
index 554f75f..2e8a30f 100644
--- a/original/uapi/asm-x86/asm/svm.h
+++ b/original/uapi/asm-x86/asm/svm.h
@@ -29,7 +29,6 @@
#define SVM_EXIT_WRITE_DR6 0x036
#define SVM_EXIT_WRITE_DR7 0x037
#define SVM_EXIT_EXCP_BASE 0x040
-#define SVM_EXIT_LAST_EXCP 0x05f
#define SVM_EXIT_INTR 0x060
#define SVM_EXIT_NMI 0x061
#define SVM_EXIT_SMI 0x062
@@ -77,38 +76,9 @@
#define SVM_EXIT_MWAIT_COND 0x08c
#define SVM_EXIT_XSETBV 0x08d
#define SVM_EXIT_RDPRU 0x08e
-#define SVM_EXIT_EFER_WRITE_TRAP 0x08f
-#define SVM_EXIT_CR0_WRITE_TRAP 0x090
-#define SVM_EXIT_CR1_WRITE_TRAP 0x091
-#define SVM_EXIT_CR2_WRITE_TRAP 0x092
-#define SVM_EXIT_CR3_WRITE_TRAP 0x093
-#define SVM_EXIT_CR4_WRITE_TRAP 0x094
-#define SVM_EXIT_CR5_WRITE_TRAP 0x095
-#define SVM_EXIT_CR6_WRITE_TRAP 0x096
-#define SVM_EXIT_CR7_WRITE_TRAP 0x097
-#define SVM_EXIT_CR8_WRITE_TRAP 0x098
-#define SVM_EXIT_CR9_WRITE_TRAP 0x099
-#define SVM_EXIT_CR10_WRITE_TRAP 0x09a
-#define SVM_EXIT_CR11_WRITE_TRAP 0x09b
-#define SVM_EXIT_CR12_WRITE_TRAP 0x09c
-#define SVM_EXIT_CR13_WRITE_TRAP 0x09d
-#define SVM_EXIT_CR14_WRITE_TRAP 0x09e
-#define SVM_EXIT_CR15_WRITE_TRAP 0x09f
-#define SVM_EXIT_INVPCID 0x0a2
#define SVM_EXIT_NPF 0x400
#define SVM_EXIT_AVIC_INCOMPLETE_IPI 0x401
#define SVM_EXIT_AVIC_UNACCELERATED_ACCESS 0x402
-#define SVM_EXIT_VMGEXIT 0x403
-
-/* SEV-ES software-defined VMGEXIT events */
-#define SVM_VMGEXIT_MMIO_READ 0x80000001
-#define SVM_VMGEXIT_MMIO_WRITE 0x80000002
-#define SVM_VMGEXIT_NMI_COMPLETE 0x80000003
-#define SVM_VMGEXIT_AP_HLT_LOOP 0x80000004
-#define SVM_VMGEXIT_AP_JUMP_TABLE 0x80000005
-#define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0
-#define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1
-#define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
#define SVM_EXIT_ERR -1
@@ -201,20 +171,9 @@
{ SVM_EXIT_MONITOR, "monitor" }, \
{ SVM_EXIT_MWAIT, "mwait" }, \
{ SVM_EXIT_XSETBV, "xsetbv" }, \
- { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, \
- { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, \
- { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, \
- { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, \
- { SVM_EXIT_INVPCID, "invpcid" }, \
{ SVM_EXIT_NPF, "npf" }, \
{ SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, \
{ SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, \
- { SVM_EXIT_VMGEXIT, "vmgexit" }, \
- { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, \
- { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, \
- { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, \
- { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, \
- { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, \
{ SVM_EXIT_ERR, "invalid_guest_state" }
diff --git a/original/uapi/asm-x86/asm/unistd.h b/original/uapi/asm-x86/asm/unistd.h
index be5e2e7..196fdd0 100644
--- a/original/uapi/asm-x86/asm/unistd.h
+++ b/original/uapi/asm-x86/asm/unistd.h
@@ -2,15 +2,8 @@
#ifndef _UAPI_ASM_X86_UNISTD_H
#define _UAPI_ASM_X86_UNISTD_H
-/*
- * x32 syscall flag bit. Some user programs expect syscall NR macros
- * and __X32_SYSCALL_BIT to have type int, even though syscall numbers
- * are, for practical purposes, unsigned long.
- *
- * Fortunately, expressions like (nr & ~__X32_SYSCALL_BIT) do the right
- * thing regardless.
- */
-#define __X32_SYSCALL_BIT 0x40000000
+/* x32 syscall flag bit */
+#define __X32_SYSCALL_BIT 0x40000000UL
#ifndef __KERNEL__
# ifdef __i386__
diff --git a/original/uapi/asm-x86/asm/unistd_32.h b/original/uapi/asm-x86/asm/unistd_32.h
index e3d32ca..e8ebec1 100644
--- a/original/uapi/asm-x86/asm/unistd_32.h
+++ b/original/uapi/asm-x86/asm/unistd_32.h
@@ -426,16 +426,5 @@
#define __NR_fspick 433
#define __NR_pidfd_open 434
#define __NR_clone3 435
-#define __NR_close_range 436
-#define __NR_openat2 437
-#define __NR_pidfd_getfd 438
-#define __NR_faccessat2 439
-#define __NR_process_madvise 440
-#define __NR_epoll_pwait2 441
-#define __NR_mount_setattr 442
-
-#ifdef __KERNEL__
-#define __NR_syscall_max 442
-#endif
#endif /* _ASM_X86_UNISTD_32_H */
diff --git a/original/uapi/asm-x86/asm/unistd_64.h b/original/uapi/asm-x86/asm/unistd_64.h
index ffbe094..a2f863d 100644
--- a/original/uapi/asm-x86/asm/unistd_64.h
+++ b/original/uapi/asm-x86/asm/unistd_64.h
@@ -348,16 +348,5 @@
#define __NR_fspick 433
#define __NR_pidfd_open 434
#define __NR_clone3 435
-#define __NR_close_range 436
-#define __NR_openat2 437
-#define __NR_pidfd_getfd 438
-#define __NR_faccessat2 439
-#define __NR_process_madvise 440
-#define __NR_epoll_pwait2 441
-#define __NR_mount_setattr 442
-
-#ifdef __KERNEL__
-#define __NR_syscall_max 442
-#endif
#endif /* _ASM_X86_UNISTD_64_H */
diff --git a/original/uapi/asm-x86/asm/unistd_x32.h b/original/uapi/asm-x86/asm/unistd_x32.h
index 7b7ee98..4cdc67d 100644
--- a/original/uapi/asm-x86/asm/unistd_x32.h
+++ b/original/uapi/asm-x86/asm/unistd_x32.h
@@ -301,13 +301,6 @@
#define __NR_fspick (__X32_SYSCALL_BIT + 433)
#define __NR_pidfd_open (__X32_SYSCALL_BIT + 434)
#define __NR_clone3 (__X32_SYSCALL_BIT + 435)
-#define __NR_close_range (__X32_SYSCALL_BIT + 436)
-#define __NR_openat2 (__X32_SYSCALL_BIT + 437)
-#define __NR_pidfd_getfd (__X32_SYSCALL_BIT + 438)
-#define __NR_faccessat2 (__X32_SYSCALL_BIT + 439)
-#define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
-#define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
-#define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
#define __NR_ioctl (__X32_SYSCALL_BIT + 514)
@@ -345,8 +338,4 @@
#define __NR_preadv2 (__X32_SYSCALL_BIT + 546)
#define __NR_pwritev2 (__X32_SYSCALL_BIT + 547)
-#ifdef __KERNEL__
-#define __NR_syscall_max 547
-#endif
-
#endif /* _ASM_X86_UNISTD_X32_H */
diff --git a/original/uapi/asm-x86/asm/vm86.h b/original/uapi/asm-x86/asm/vm86.h
index 18909b8..d2ee4e3 100644
--- a/original/uapi/asm-x86/asm/vm86.h
+++ b/original/uapi/asm-x86/asm/vm86.h
@@ -97,7 +97,7 @@ struct revectored_struct {
struct vm86_struct {
struct vm86_regs regs;
unsigned long flags;
- unsigned long screen_bitmap; /* unused, preserved by vm86() */
+ unsigned long screen_bitmap;
unsigned long cpu_type;
struct revectored_struct int_revectored;
struct revectored_struct int21_revectored;
@@ -106,7 +106,7 @@ struct vm86_struct {
/*
* flags masks
*/
-#define VM86_SCREEN_BITMAP 0x0001 /* no longer supported */
+#define VM86_SCREEN_BITMAP 0x0001
struct vm86plus_info_struct {
unsigned long force_return_for_pic:1;
diff --git a/original/uapi/asm-x86/asm/vmx.h b/original/uapi/asm-x86/asm/vmx.h
index b8e650a..3eb8411 100644
--- a/original/uapi/asm-x86/asm/vmx.h
+++ b/original/uapi/asm-x86/asm/vmx.h
@@ -32,9 +32,8 @@
#define EXIT_REASON_EXTERNAL_INTERRUPT 1
#define EXIT_REASON_TRIPLE_FAULT 2
#define EXIT_REASON_INIT_SIGNAL 3
-#define EXIT_REASON_SIPI_SIGNAL 4
-#define EXIT_REASON_INTERRUPT_WINDOW 7
+#define EXIT_REASON_PENDING_INTERRUPT 7
#define EXIT_REASON_NMI_WINDOW 8
#define EXIT_REASON_TASK_SWITCH 9
#define EXIT_REASON_CPUID 10
@@ -89,15 +88,13 @@
#define EXIT_REASON_XRSTORS 64
#define EXIT_REASON_UMWAIT 67
#define EXIT_REASON_TPAUSE 68
-#define EXIT_REASON_BUS_LOCK 74
#define VMX_EXIT_REASONS \
{ EXIT_REASON_EXCEPTION_NMI, "EXCEPTION_NMI" }, \
{ EXIT_REASON_EXTERNAL_INTERRUPT, "EXTERNAL_INTERRUPT" }, \
{ EXIT_REASON_TRIPLE_FAULT, "TRIPLE_FAULT" }, \
{ EXIT_REASON_INIT_SIGNAL, "INIT_SIGNAL" }, \
- { EXIT_REASON_SIPI_SIGNAL, "SIPI_SIGNAL" }, \
- { EXIT_REASON_INTERRUPT_WINDOW, "INTERRUPT_WINDOW" }, \
+ { EXIT_REASON_PENDING_INTERRUPT, "PENDING_INTERRUPT" }, \
{ EXIT_REASON_NMI_WINDOW, "NMI_WINDOW" }, \
{ EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, \
{ EXIT_REASON_CPUID, "CPUID" }, \
@@ -151,11 +148,7 @@
{ EXIT_REASON_XSAVES, "XSAVES" }, \
{ EXIT_REASON_XRSTORS, "XRSTORS" }, \
{ EXIT_REASON_UMWAIT, "UMWAIT" }, \
- { EXIT_REASON_TPAUSE, "TPAUSE" }, \
- { EXIT_REASON_BUS_LOCK, "BUS_LOCK" }
-
-#define VMX_EXIT_REASON_FLAGS \
- { VMX_EXIT_REASONS_FAILED_VMENTRY, "FAILED_VMENTRY" }
+ { EXIT_REASON_TPAUSE, "TPAUSE" }
#define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1
#define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2
diff --git a/original/uapi/drm/amdgpu_drm.h b/original/uapi/drm/amdgpu_drm.h
index 7fb9c09..bbdad86 100644
--- a/original/uapi/drm/amdgpu_drm.h
+++ b/original/uapi/drm/amdgpu_drm.h
@@ -125,19 +125,13 @@ extern "C" {
/* Flag that BO sharing will be explicitly synchronized */
#define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
/* Flag that indicates allocating MQD gart on GFX9, where the mtype
- * for the second page onward should be set to NC. It should never
- * be used by user space applications.
+ * for the second page onward should be set to NC.
*/
-#define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
+#define AMDGPU_GEM_CREATE_MQD_GFX9 (1 << 8)
/* Flag that BO may contain sensitive data that must be wiped before
* releasing the memory
*/
#define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
-/* Flag that BO will be encrypted and that the TMZ bit should be
- * set in the PTEs when mapping this buffer via GPUVM or
- * accessing it with various hw blocks
- */
-#define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
struct drm_amdgpu_gem_create_in {
/** the requested memory size */
@@ -351,10 +345,6 @@ struct drm_amdgpu_gem_userptr {
#define AMDGPU_TILING_DCC_PITCH_MAX_MASK 0x3FFF
#define AMDGPU_TILING_DCC_INDEPENDENT_64B_SHIFT 43
#define AMDGPU_TILING_DCC_INDEPENDENT_64B_MASK 0x1
-#define AMDGPU_TILING_DCC_INDEPENDENT_128B_SHIFT 44
-#define AMDGPU_TILING_DCC_INDEPENDENT_128B_MASK 0x1
-#define AMDGPU_TILING_SCANOUT_SHIFT 63
-#define AMDGPU_TILING_SCANOUT_MASK 0x1
/* Set/Get helpers for tiling flags. */
#define AMDGPU_TILING_SET(field, value) \
@@ -502,15 +492,15 @@ struct drm_amdgpu_gem_op {
#define AMDGPU_VM_MTYPE_MASK (0xf << 5)
/* Default MTYPE. Pre-AI must use this. Recommended for newer ASICs. */
#define AMDGPU_VM_MTYPE_DEFAULT (0 << 5)
-/* Use Non Coherent MTYPE instead of default MTYPE */
+/* Use NC MTYPE instead of default MTYPE */
#define AMDGPU_VM_MTYPE_NC (1 << 5)
-/* Use Write Combine MTYPE instead of default MTYPE */
+/* Use WC MTYPE instead of default MTYPE */
#define AMDGPU_VM_MTYPE_WC (2 << 5)
-/* Use Cache Coherent MTYPE instead of default MTYPE */
+/* Use CC MTYPE instead of default MTYPE */
#define AMDGPU_VM_MTYPE_CC (3 << 5)
-/* Use UnCached MTYPE instead of default MTYPE */
+/* Use UC MTYPE instead of default MTYPE */
#define AMDGPU_VM_MTYPE_UC (4 << 5)
-/* Use Read Write MTYPE instead of default MTYPE */
+/* Use RW MTYPE instead of default MTYPE */
#define AMDGPU_VM_MTYPE_RW (5 << 5)
struct drm_amdgpu_gem_va {
@@ -564,7 +554,7 @@ struct drm_amdgpu_cs_in {
/** Handle of resource list associated with CS */
__u32 bo_list_handle;
__u32 num_chunks;
- __u32 flags;
+ __u32 _pad;
/** this points to __u64 * which point to cs chunks */
__u64 chunks;
};
@@ -598,14 +588,6 @@ union drm_amdgpu_cs {
*/
#define AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID (1 << 4)
-/* Flag the IB as secure (TMZ)
- */
-#define AMDGPU_IB_FLAGS_SECURE (1 << 5)
-
-/* Tell KMD to flush and invalidate caches
- */
-#define AMDGPU_IB_FLAG_EMIT_MEM_SYNC (1 << 6)
-
struct drm_amdgpu_cs_chunk_ib {
__u32 _pad;
/** AMDGPU_IB_FLAG_* */
@@ -667,13 +649,12 @@ struct drm_amdgpu_cs_chunk_data {
};
};
-/*
+/**
* Query h/w info: Flag that this is integrated (a.h.a. fusion) GPU
*
*/
#define AMDGPU_IDS_FLAGS_FUSION 0x1
#define AMDGPU_IDS_FLAGS_PREEMPTION 0x2
-#define AMDGPU_IDS_FLAGS_TMZ 0x4
/* indicate if acceleration can be working */
#define AMDGPU_INFO_ACCEL_WORKING 0x00
@@ -722,11 +703,6 @@ struct drm_amdgpu_cs_chunk_data {
/* Subquery id: Query DMCU firmware version */
#define AMDGPU_INFO_FW_DMCU 0x12
#define AMDGPU_INFO_FW_TA 0x13
- /* Subquery id: Query DMCUB firmware version */
- #define AMDGPU_INFO_FW_DMCUB 0x14
- /* Subquery id: Query TOC firmware version */
- #define AMDGPU_INFO_FW_TOC 0x15
-
/* number of bytes moved for TTM migration */
#define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
/* the used VRAM size */
@@ -948,7 +924,6 @@ struct drm_amdgpu_info_firmware {
#define AMDGPU_VRAM_TYPE_DDR3 7
#define AMDGPU_VRAM_TYPE_DDR4 8
#define AMDGPU_VRAM_TYPE_GDDR6 9
-#define AMDGPU_VRAM_TYPE_DDR5 10
struct drm_amdgpu_info_device {
/** PCI Device ID */
@@ -1086,7 +1061,6 @@ struct drm_amdgpu_info_vce_clock_table {
#define AMDGPU_FAMILY_AI 141 /* Vega10 */
#define AMDGPU_FAMILY_RV 142 /* Raven */
#define AMDGPU_FAMILY_NV 143 /* Navi10 */
-#define AMDGPU_FAMILY_VGH 144 /* Van Gogh */
#if defined(__cplusplus)
}
diff --git a/original/uapi/drm/drm.h b/original/uapi/drm/drm.h
index 0827037..868bf79 100644
--- a/original/uapi/drm/drm.h
+++ b/original/uapi/drm/drm.h
@@ -1,10 +1,11 @@
-/*
+/**
+ * \file drm.h
* Header for the Direct Rendering Manager
*
- * Author: Rickard E. (Rik) Faith <faith@valinux.com>
+ * \author Rickard E. (Rik) Faith <faith@valinux.com>
*
- * Acknowledgments:
- * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
+ * \par Acknowledgments:
+ * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic \c cmpxchg.
*/
/*
@@ -84,7 +85,7 @@ typedef unsigned int drm_context_t;
typedef unsigned int drm_drawable_t;
typedef unsigned int drm_magic_t;
-/*
+/**
* Cliprect.
*
* \warning: If you change this structure, make sure you change
@@ -100,7 +101,7 @@ struct drm_clip_rect {
unsigned short y2;
};
-/*
+/**
* Drawable information.
*/
struct drm_drawable_info {
@@ -108,7 +109,7 @@ struct drm_drawable_info {
struct drm_clip_rect *rects;
};
-/*
+/**
* Texture region,
*/
struct drm_tex_region {
@@ -119,7 +120,7 @@ struct drm_tex_region {
unsigned int age;
};
-/*
+/**
* Hardware lock.
*
* The lock structure is a simple cache-line aligned integer. To avoid
@@ -131,7 +132,7 @@ struct drm_hw_lock {
char padding[60]; /**< Pad to cache line */
};
-/*
+/**
* DRM_IOCTL_VERSION ioctl argument type.
*
* \sa drmGetVersion().
@@ -148,7 +149,7 @@ struct drm_version {
char __user *desc; /**< User-space buffer to hold desc */
};
-/*
+/**
* DRM_IOCTL_GET_UNIQUE ioctl argument type.
*
* \sa drmGetBusid() and drmSetBusId().
@@ -167,7 +168,7 @@ struct drm_block {
int unused;
};
-/*
+/**
* DRM_IOCTL_CONTROL ioctl argument type.
*
* \sa drmCtlInstHandler() and drmCtlUninstHandler().
@@ -182,7 +183,7 @@ struct drm_control {
int irq;
};
-/*
+/**
* Type of memory to map.
*/
enum drm_map_type {
@@ -194,7 +195,7 @@ enum drm_map_type {
_DRM_CONSISTENT = 5 /**< Consistent memory for PCI DMA */
};
-/*
+/**
* Memory mapping flags.
*/
enum drm_map_flags {
@@ -213,7 +214,7 @@ struct drm_ctx_priv_map {
void *handle; /**< Handle of map */
};
-/*
+/**
* DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
* argument type.
*
@@ -230,7 +231,7 @@ struct drm_map {
/* Private data */
};
-/*
+/**
* DRM_IOCTL_GET_CLIENT ioctl argument type.
*/
struct drm_client {
@@ -262,7 +263,7 @@ enum drm_stat_type {
/* Add to the *END* of the list */
};
-/*
+/**
* DRM_IOCTL_GET_STATS ioctl argument type.
*/
struct drm_stats {
@@ -273,7 +274,7 @@ struct drm_stats {
} data[15];
};
-/*
+/**
* Hardware locking flags.
*/
enum drm_lock_flags {
@@ -288,7 +289,7 @@ enum drm_lock_flags {
_DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */
};
-/*
+/**
* DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
*
* \sa drmGetLock() and drmUnlock().
@@ -298,7 +299,7 @@ struct drm_lock {
enum drm_lock_flags flags;
};
-/*
+/**
* DMA flags
*
* \warning
@@ -327,7 +328,7 @@ enum drm_dma_flags {
_DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */
};
-/*
+/**
* DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
*
* \sa drmAddBufs().
@@ -350,7 +351,7 @@ struct drm_buf_desc {
*/
};
-/*
+/**
* DRM_IOCTL_INFO_BUFS ioctl argument type.
*/
struct drm_buf_info {
@@ -358,7 +359,7 @@ struct drm_buf_info {
struct drm_buf_desc __user *list;
};
-/*
+/**
* DRM_IOCTL_FREE_BUFS ioctl argument type.
*/
struct drm_buf_free {
@@ -366,7 +367,7 @@ struct drm_buf_free {
int __user *list;
};
-/*
+/**
* Buffer information
*
* \sa drm_buf_map.
@@ -378,7 +379,7 @@ struct drm_buf_pub {
void __user *address; /**< Address of buffer */
};
-/*
+/**
* DRM_IOCTL_MAP_BUFS ioctl argument type.
*/
struct drm_buf_map {
@@ -391,7 +392,7 @@ struct drm_buf_map {
struct drm_buf_pub __user *list; /**< Buffer information */
};
-/*
+/**
* DRM_IOCTL_DMA ioctl argument type.
*
* Indices here refer to the offset into the buffer list in drm_buf_get.
@@ -416,7 +417,7 @@ enum drm_ctx_flags {
_DRM_CONTEXT_2DONLY = 0x02
};
-/*
+/**
* DRM_IOCTL_ADD_CTX ioctl argument type.
*
* \sa drmCreateContext() and drmDestroyContext().
@@ -426,7 +427,7 @@ struct drm_ctx {
enum drm_ctx_flags flags;
};
-/*
+/**
* DRM_IOCTL_RES_CTX ioctl argument type.
*/
struct drm_ctx_res {
@@ -434,14 +435,14 @@ struct drm_ctx_res {
struct drm_ctx __user *contexts;
};
-/*
+/**
* DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
*/
struct drm_draw {
drm_drawable_t handle;
};
-/*
+/**
* DRM_IOCTL_UPDATE_DRAW ioctl argument type.
*/
typedef enum {
@@ -455,14 +456,14 @@ struct drm_update_draw {
unsigned long long data;
};
-/*
+/**
* DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
*/
struct drm_auth {
drm_magic_t magic;
};
-/*
+/**
* DRM_IOCTL_IRQ_BUSID ioctl argument type.
*
* \sa drmGetInterruptFromBusID().
@@ -504,7 +505,7 @@ struct drm_wait_vblank_reply {
long tval_usec;
};
-/*
+/**
* DRM_IOCTL_WAIT_VBLANK ioctl argument type.
*
* \sa drmWaitVBlank().
@@ -517,7 +518,7 @@ union drm_wait_vblank {
#define _DRM_PRE_MODESET 1
#define _DRM_POST_MODESET 2
-/*
+/**
* DRM_IOCTL_MODESET_CTL ioctl argument type
*
* \sa drmModesetCtl().
@@ -527,7 +528,7 @@ struct drm_modeset_ctl {
__u32 cmd;
};
-/*
+/**
* DRM_IOCTL_AGP_ENABLE ioctl argument type.
*
* \sa drmAgpEnable().
@@ -536,7 +537,7 @@ struct drm_agp_mode {
unsigned long mode; /**< AGP mode */
};
-/*
+/**
* DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
*
* \sa drmAgpAlloc() and drmAgpFree().
@@ -548,7 +549,7 @@ struct drm_agp_buffer {
unsigned long physical; /**< Physical used by i810 */
};
-/*
+/**
* DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
*
* \sa drmAgpBind() and drmAgpUnbind().
@@ -558,7 +559,7 @@ struct drm_agp_binding {
unsigned long offset; /**< In bytes -- will round to page boundary */
};
-/*
+/**
* DRM_IOCTL_AGP_INFO ioctl argument type.
*
* \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
@@ -579,7 +580,7 @@ struct drm_agp_info {
unsigned short id_device;
};
-/*
+/**
* DRM_IOCTL_SG_ALLOC ioctl argument type.
*/
struct drm_scatter_gather {
@@ -587,7 +588,7 @@ struct drm_scatter_gather {
unsigned long handle; /**< Used for mapping / unmapping */
};
-/*
+/**
* DRM_IOCTL_SET_VERSION ioctl argument type.
*/
struct drm_set_version {
@@ -597,14 +598,14 @@ struct drm_set_version {
int drm_dd_minor;
};
-/* DRM_IOCTL_GEM_CLOSE ioctl argument type */
+/** DRM_IOCTL_GEM_CLOSE ioctl argument type */
struct drm_gem_close {
/** Handle of the object to be closed. */
__u32 handle;
__u32 pad;
};
-/* DRM_IOCTL_GEM_FLINK ioctl argument type */
+/** DRM_IOCTL_GEM_FLINK ioctl argument type */
struct drm_gem_flink {
/** Handle for the object being named */
__u32 handle;
@@ -613,7 +614,7 @@ struct drm_gem_flink {
__u32 name;
};
-/* DRM_IOCTL_GEM_OPEN ioctl argument type */
+/** DRM_IOCTL_GEM_OPEN ioctl argument type */
struct drm_gem_open {
/** Name of object being opened */
__u32 name;
@@ -651,7 +652,7 @@ struct drm_gem_open {
#define DRM_CAP_SYNCOBJ 0x13
#define DRM_CAP_SYNCOBJ_TIMELINE 0x14
-/* DRM_IOCTL_GET_CAP ioctl argument type */
+/** DRM_IOCTL_GET_CAP ioctl argument type */
struct drm_get_cap {
__u64 capability;
__u64 value;
@@ -677,9 +678,7 @@ struct drm_get_cap {
/**
* DRM_CLIENT_CAP_ATOMIC
*
- * If set to 1, the DRM core will expose atomic properties to userspace. This
- * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and
- * &DRM_CLIENT_CAP_ASPECT_RATIO.
+ * If set to 1, the DRM core will expose atomic properties to userspace
*/
#define DRM_CLIENT_CAP_ATOMIC 3
@@ -699,7 +698,7 @@ struct drm_get_cap {
*/
#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5
-/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
+/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
struct drm_set_client_cap {
__u64 capability;
__u64 value;
@@ -949,9 +948,7 @@ extern "C" {
#define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer)
#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)
-#define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
-
-/*
+/**
* Device specific ioctls should only be in their respective headers
* The device specific ioctl range is from 0x40 to 0x9f.
* Generic IOCTLS restart at 0xA0.
@@ -962,7 +959,7 @@ extern "C" {
#define DRM_COMMAND_BASE 0x40
#define DRM_COMMAND_END 0xA0
-/*
+/**
* Header for events written back to userspace on the drm fd. The
* type defines the type of event, the length specifies the total
* length of the event (including the header), and user_data is
diff --git a/original/uapi/drm/drm_fourcc.h b/original/uapi/drm/drm_fourcc.h
index f76de49..09b88b4 100644
--- a/original/uapi/drm/drm_fourcc.h
+++ b/original/uapi/drm/drm_fourcc.h
@@ -58,30 +58,6 @@ extern "C" {
* may preserve meaning - such as number of planes - from the fourcc code,
* whereas others may not.
*
- * Modifiers must uniquely encode buffer layout. In other words, a buffer must
- * match only a single modifier. A modifier must not be a subset of layouts of
- * another modifier. For instance, it's incorrect to encode pitch alignment in
- * a modifier: a buffer may match a 64-pixel aligned modifier and a 32-pixel
- * aligned modifier. That said, modifiers can have implicit minimal
- * requirements.
- *
- * For modifiers where the combination of fourcc code and modifier can alias,
- * a canonical pair needs to be defined and used by all drivers. Preferred
- * combinations are also encouraged where all combinations might lead to
- * confusion and unnecessarily reduced interoperability. An example for the
- * latter is AFBC, where the ABGR layouts are preferred over ARGB layouts.
- *
- * There are two kinds of modifier users:
- *
- * - Kernel and user-space drivers: for drivers it's important that modifiers
- * don't alias, otherwise two drivers might support the same format but use
- * different aliases, preventing them from sharing buffers in an efficient
- * format.
- * - Higher-level programs interfacing with KMS/GBM/EGL/Vulkan/etc: these users
- * see modifiers as opaque tokens they can check for equality and intersect.
- * These users musn't need to know to reason about the modifier value
- * (i.e. they are not expected to extract information out of the modifier).
- *
* Vendors should document their modifier usage in as much detail as
* possible, to ensure maximum compatibility across devices, drivers and
* applications.
@@ -179,12 +155,6 @@ extern "C" {
#define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */
#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
-/*
- * RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits
- * of unused padding per component:
- */
-#define DRM_FORMAT_AXBXGXRX106106106106 fourcc_code('A', 'B', '1', '0') /* [63:0] A:x:B:x:G:x:R:x 10:6:10:6:10:6:10:6 little endian */
-
/* packed YCbCr */
#define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
#define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */
@@ -266,12 +236,6 @@ extern "C" {
#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
#define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
#define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
-/*
- * 2 plane YCbCr
- * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian
- * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian
- */
-#define DRM_FORMAT_NV15 fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */
/*
* 2 plane YCbCr MSB aligned
@@ -301,22 +265,6 @@ extern "C" {
*/
#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
-/* 3 plane non-subsampled (444) YCbCr
- * 16 bits per component, but only 10 bits are used and 6 bits are padded
- * index 0: Y plane, [15:0] Y:x [10:6] little endian
- * index 1: Cb plane, [15:0] Cb:x [10:6] little endian
- * index 2: Cr plane, [15:0] Cr:x [10:6] little endian
- */
-#define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
-
-/* 3 plane non-subsampled (444) YCrCb
- * 16 bits per component, but only 10 bits are used and 6 bits are padded
- * index 0: Y plane, [15:0] Y:x [10:6] little endian
- * index 1: Cr plane, [15:0] Cr:x [10:6] little endian
- * index 2: Cb plane, [15:0] Cb:x [10:6] little endian
- */
-#define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
-
/*
* 3 plane YCbCr
* index 0: Y plane, [7:0] Y
@@ -350,6 +298,7 @@ extern "C" {
*/
/* Vendor Ids: */
+#define DRM_FORMAT_MOD_NONE 0
#define DRM_FORMAT_MOD_VENDOR_NONE 0
#define DRM_FORMAT_MOD_VENDOR_INTEL 0x01
#define DRM_FORMAT_MOD_VENDOR_AMD 0x02
@@ -360,7 +309,6 @@ extern "C" {
#define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
#define DRM_FORMAT_MOD_VENDOR_ARM 0x08
#define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
-#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
/* add more to the end as needed */
@@ -375,33 +323,8 @@ extern "C" {
* When adding a new token please document the layout with a code comment,
* similar to the fourcc codes above. drm_fourcc.h is considered the
* authoritative source for all of these.
- *
- * Generic modifier names:
- *
- * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names
- * for layouts which are common across multiple vendors. To preserve
- * compatibility, in cases where a vendor-specific definition already exists and
- * a generic name for it is desired, the common name is a purely symbolic alias
- * and must use the same numerical value as the original definition.
- *
- * Note that generic names should only be used for modifiers which describe
- * generic layouts (such as pixel re-ordering), which may have
- * independently-developed support across multiple vendors.
- *
- * In future cases where a generic layout is identified before merging with a
- * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor
- * 'NONE' could be considered. This should only be for obvious, exceptional
- * cases to avoid polluting the 'GENERIC' namespace with modifiers which only
- * apply to a single vendor.
- *
- * Generic names should not be used for cases where multiple hardware vendors
- * have implementations of the same standardised compression scheme (such as
- * AFBC). In those cases, all implementations should use the same format
- * modifier(s), reflecting the vendor of the standard.
*/
-#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
-
/*
* Invalid Modifier
*
@@ -421,16 +344,6 @@ extern "C" {
*/
#define DRM_FORMAT_MOD_LINEAR fourcc_mod_code(NONE, 0)
-/*
- * Deprecated: use DRM_FORMAT_MOD_LINEAR instead
- *
- * The "none" format modifier doesn't actually mean that the modifier is
- * implicit, instead it means that the layout is linear. Whether modifiers are
- * used is out-of-band information carried in an API-specific way (e.g. in a
- * flag for drm_mode_fb_cmd2).
- */
-#define DRM_FORMAT_MOD_NONE 0
-
/* Intel framebuffer modifiers */
/*
@@ -441,12 +354,9 @@ extern "C" {
* a platform-dependent stride. On top of that the memory can apply
* platform-depending swizzling of some higher address bits into bit6.
*
- * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets.
- * On earlier platforms the is highly platforms specific and not useful for
- * cross-driver sharing. It exists since on a given platform it does uniquely
- * identify the layout in a simple way for i915-specific userspace, which
- * facilitated conversion of userspace to modifiers. Additionally the exact
- * format on some really old platforms is not known.
+ * This format is highly platforms specific and not useful for cross-driver
+ * sharing. It exists since on a given platform it does uniquely identify the
+ * layout in a simple way for i915-specific userspace.
*/
#define I915_FORMAT_MOD_X_TILED fourcc_mod_code(INTEL, 1)
@@ -459,12 +369,9 @@ extern "C" {
* memory can apply platform-depending swizzling of some higher address bits
* into bit6.
*
- * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets.
- * On earlier platforms the is highly platforms specific and not useful for
- * cross-driver sharing. It exists since on a given platform it does uniquely
- * identify the layout in a simple way for i915-specific userspace, which
- * facilitated conversion of userspace to modifiers. Additionally the exact
- * format on some really old platforms is not known.
+ * This format is highly platforms specific and not useful for cross-driver
+ * sharing. It exists since on a given platform it does uniquely identify the
+ * layout in a simple way for i915-specific userspace.
*/
#define I915_FORMAT_MOD_Y_TILED fourcc_mod_code(INTEL, 2)
@@ -504,49 +411,6 @@ extern "C" {
#define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5)
/*
- * Intel color control surfaces (CCS) for Gen-12 render compression.
- *
- * The main surface is Y-tiled and at plane index 0, the CCS is linear and
- * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
- * main surface. In other words, 4 bits in CCS map to a main surface cache
- * line pair. The main surface pitch is required to be a multiple of four
- * Y-tile widths.
- */
-#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS fourcc_mod_code(INTEL, 6)
-
-/*
- * Intel color control surfaces (CCS) for Gen-12 media compression
- *
- * The main surface is Y-tiled and at plane index 0, the CCS is linear and
- * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
- * main surface. In other words, 4 bits in CCS map to a main surface cache
- * line pair. The main surface pitch is required to be a multiple of four
- * Y-tile widths. For semi-planar formats like NV12, CCS planes follow the
- * Y and UV planes i.e., planes 0 and 1 are used for Y and UV surfaces,
- * planes 2 and 3 for the respective CCS.
- */
-#define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
-
-/*
- * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render
- * compression.
- *
- * The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
- * and at index 1. The clear color is stored at index 2, and the pitch should
- * be ignored. The clear color structure is 256 bits. The first 128 bits
- * represents Raw Clear Color Red, Green, Blue and Alpha color each represented
- * by 32 bits. The raw clear color is consumed by the 3d engine and generates
- * the converted clear color of size 64 bits. The first 32 bits store the Lower
- * Converted Clear Color value and the next 32 bits store the Higher Converted
- * Clear Color value when applicable. The Converted Clear Color values are
- * consumed by the DE. The last 64 bits are used to store Color Discard Enable
- * and Depth Clear Value Valid which are ignored by the DE. A CCS cache line
- * corresponds to an area of 4x1 tiles in the main surface. The main surface
- * pitch is required to be a multiple of 4 tile widths.
- */
-#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
-
-/*
* Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
*
* Macroblocks are laid in a Z-shape, and each pixel data is following the
@@ -583,6 +447,30 @@ extern "C" {
*/
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
+/*
+ * QTI DX Format
+ *
+ * Refers to a DX variant of the base format.
+ * Implementation may be platform and base-format specific.
+ */
+#define DRM_FORMAT_MOD_QCOM_DX fourcc_mod_code(QCOM, 0x2)
+
+/*
+ * QTI Tight Format
+ *
+ * Refers to a tightly packed variant of the base format.
+ * Implementation may be platform and base-format specific.
+ */
+#define DRM_FORMAT_MOD_QCOM_TIGHT fourcc_mod_code(QCOM, 0x4)
+
+/*
+ * QTI Tile Format
+ *
+ * Refers to a tile variant of the base format.
+ * Implementation may be platform and base-format specific.
+ */
+#define DRM_FORMAT_MOD_QCOM_TILE fourcc_mod_code(QCOM, 0x8)
+
/* Vivante framebuffer modifiers */
/*
@@ -633,113 +521,7 @@ extern "C" {
#define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1)
/*
- * Generalized Block Linear layout, used by desktop GPUs starting with NV50/G80,
- * and Tegra GPUs starting with Tegra K1.
- *
- * Pixels are arranged in Groups of Bytes (GOBs). GOB size and layout varies
- * based on the architecture generation. GOBs themselves are then arranged in
- * 3D blocks, with the block dimensions (in terms of GOBs) always being a power
- * of two, and hence expressible as their log2 equivalent (E.g., "2" represents
- * a block depth or height of "4").
- *
- * Chapter 20 "Pixel Memory Formats" of the Tegra X1 TRM describes this format
- * in full detail.
- *
- * Macro
- * Bits Param Description
- * ---- ----- -----------------------------------------------------------------
- *
- * 3:0 h log2(height) of each block, in GOBs. Placed here for
- * compatibility with the existing
- * DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers.
- *
- * 4:4 - Must be 1, to indicate block-linear layout. Necessary for
- * compatibility with the existing
- * DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers.
- *
- * 8:5 - Reserved (To support 3D-surfaces with variable log2(depth) block
- * size). Must be zero.
- *
- * Note there is no log2(width) parameter. Some portions of the
- * hardware support a block width of two gobs, but it is impractical
- * to use due to lack of support elsewhere, and has no known
- * benefits.
- *
- * 11:9 - Reserved (To support 2D-array textures with variable array stride
- * in blocks, specified via log2(tile width in blocks)). Must be
- * zero.
- *
- * 19:12 k Page Kind. This value directly maps to a field in the page
- * tables of all GPUs >= NV50. It affects the exact layout of bits
- * in memory and can be derived from the tuple
- *
- * (format, GPU model, compression type, samples per pixel)
- *
- * Where compression type is defined below. If GPU model were
- * implied by the format modifier, format, or memory buffer, page
- * kind would not need to be included in the modifier itself, but
- * since the modifier should define the layout of the associated
- * memory buffer independent from any device or other context, it
- * must be included here.
- *
- * 21:20 g GOB Height and Page Kind Generation. The height of a GOB changed
- * starting with Fermi GPUs. Additionally, the mapping between page
- * kind and bit layout has changed at various points.
- *
- * 0 = Gob Height 8, Fermi - Volta, Tegra K1+ Page Kind mapping
- * 1 = Gob Height 4, G80 - GT2XX Page Kind mapping
- * 2 = Gob Height 8, Turing+ Page Kind mapping
- * 3 = Reserved for future use.
- *
- * 22:22 s Sector layout. On Tegra GPUs prior to Xavier, there is a further
- * bit remapping step that occurs at an even lower level than the
- * page kind and block linear swizzles. This causes the layout of
- * surfaces mapped in those SOC's GPUs to be incompatible with the
- * equivalent mapping on other GPUs in the same system.
- *
- * 0 = Tegra K1 - Tegra Parker/TX2 Layout.
- * 1 = Desktop GPU and Tegra Xavier+ Layout
- *
- * 25:23 c Lossless Framebuffer Compression type.
- *
- * 0 = none
- * 1 = ROP/3D, layout 1, exact compression format implied by Page
- * Kind field
- * 2 = ROP/3D, layout 2, exact compression format implied by Page
- * Kind field
- * 3 = CDE horizontal
- * 4 = CDE vertical
- * 5 = Reserved for future use
- * 6 = Reserved for future use
- * 7 = Reserved for future use
- *
- * 55:25 - Reserved for future use. Must be zero.
- */
-#define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \
- fourcc_mod_code(NVIDIA, (0x10 | \
- ((h) & 0xf) | \
- (((k) & 0xff) << 12) | \
- (((g) & 0x3) << 20) | \
- (((s) & 0x1) << 22) | \
- (((c) & 0x7) << 23)))
-
-/* To grandfather in prior block linear format modifiers to the above layout,
- * the page kind "0", which corresponds to "pitch/linear" and hence is unusable
- * with block-linear layouts, is remapped within drivers to the value 0xfe,
- * which corresponds to the "generic" kind used for simple single-sample
- * uncompressed color formats on Fermi - Volta GPUs.
- */
-static inline __u64
-drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
-{
- if (!(modifier & 0x10) || (modifier & (0xff << 12)))
- return modifier;
- else
- return modifier | (0xfe << 12);
-}
-
-/*
- * 16Bx2 Block Linear layout, used by Tegra K1 and later
+ * 16Bx2 Block Linear layout, used by desktop GPUs, and Tegra K1 and later
*
* Pixels are arranged in 64x8 Groups Of Bytes (GOBs). GOBs are then stacked
* vertically by a power of 2 (1 to 32 GOBs) to form a block.
@@ -760,20 +542,20 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
* in full detail.
*/
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) \
- DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 0, 0, 0, (v))
+ fourcc_mod_code(NVIDIA, 0x10 | ((v) & 0xf))
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(0)
+ fourcc_mod_code(NVIDIA, 0x10)
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(1)
+ fourcc_mod_code(NVIDIA, 0x11)
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(2)
+ fourcc_mod_code(NVIDIA, 0x12)
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(3)
+ fourcc_mod_code(NVIDIA, 0x13)
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(4)
+ fourcc_mod_code(NVIDIA, 0x14)
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \
- DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(5)
+ fourcc_mod_code(NVIDIA, 0x15)
/*
* Some Broadcom modifiers take parameters, for example the number of
@@ -998,18 +780,6 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
*/
#define AFBC_FORMAT_MOD_BCH (1ULL << 11)
-/* AFBC uncompressed storage mode
- *
- * Indicates that the buffer is using AFBC uncompressed storage mode.
- * In this mode all superblock payloads in the buffer use the uncompressed
- * storage mode, which is usually only used for data which cannot be compressed.
- * The buffer layout is the same as for AFBC buffers without USM set, this only
- * affects the storage mode of the individual superblocks. Note that even a
- * buffer without USM set may use uncompressed storage mode for some or all
- * superblocks, USM just guarantees it for all.
- */
-#define AFBC_FORMAT_MOD_USM (1ULL << 12)
-
/*
* Arm 16x16 Block U-Interleaved modifier
*
@@ -1034,220 +804,6 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
*/
#define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
-/*
- * Amlogic Video Framebuffer Compression modifiers
- *
- * Amlogic uses a proprietary lossless image compression protocol and format
- * for their hardware video codec accelerators, either video decoders or
- * video input encoders.
- *
- * It considerably reduces memory bandwidth while writing and reading
- * frames in memory.
- *
- * The underlying storage is considered to be 3 components, 8bit or 10-bit
- * per component YCbCr 420, single plane :
- * - DRM_FORMAT_YUV420_8BIT
- * - DRM_FORMAT_YUV420_10BIT
- *
- * The first 8 bits of the mode defines the layout, then the following 8 bits
- * defines the options changing the layout.
- *
- * Not all combinations are valid, and different SoCs may support different
- * combinations of layout and options.
- */
-#define __fourcc_mod_amlogic_layout_mask 0xff
-#define __fourcc_mod_amlogic_options_shift 8
-#define __fourcc_mod_amlogic_options_mask 0xff
-
-#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \
- fourcc_mod_code(AMLOGIC, \
- ((__layout) & __fourcc_mod_amlogic_layout_mask) | \
- (((__options) & __fourcc_mod_amlogic_options_mask) \
- << __fourcc_mod_amlogic_options_shift))
-
-/* Amlogic FBC Layouts */
-
-/*
- * Amlogic FBC Basic Layout
- *
- * The basic layout is composed of:
- * - a body content organized in 64x32 superblocks with 4096 bytes per
- * superblock in default mode.
- * - a 32 bytes per 128x64 header block
- *
- * This layout is transferrable between Amlogic SoCs supporting this modifier.
- */
-#define AMLOGIC_FBC_LAYOUT_BASIC (1ULL)
-
-/*
- * Amlogic FBC Scatter Memory layout
- *
- * Indicates the header contains IOMMU references to the compressed
- * frames content to optimize memory access and layout.
- *
- * In this mode, only the header memory address is needed, thus the
- * content memory organization is tied to the current producer
- * execution and cannot be saved/dumped neither transferrable between
- * Amlogic SoCs supporting this modifier.
- *
- * Due to the nature of the layout, these buffers are not expected to
- * be accessible by the user-space clients, but only accessible by the
- * hardware producers and consumers.
- *
- * The user-space clients should expect a failure while trying to mmap
- * the DMA-BUF handle returned by the producer.
- */
-#define AMLOGIC_FBC_LAYOUT_SCATTER (2ULL)
-
-/* Amlogic FBC Layout Options Bit Mask */
-
-/*
- * Amlogic FBC Memory Saving mode
- *
- * Indicates the storage is packed when pixel size is multiple of word
- * boudaries, i.e. 8bit should be stored in this mode to save allocation
- * memory.
- *
- * This mode reduces body layout to 3072 bytes per 64x32 superblock with
- * the basic layout and 3200 bytes per 64x32 superblock combined with
- * the scatter layout.
- */
-#define AMLOGIC_FBC_OPTION_MEM_SAVING (1ULL << 0)
-
-/*
- * AMD modifiers
- *
- * Memory layout:
- *
- * without DCC:
- * - main surface
- *
- * with DCC & without DCC_RETILE:
- * - main surface in plane 0
- * - DCC surface in plane 1 (RB-aligned, pipe-aligned if DCC_PIPE_ALIGN is set)
- *
- * with DCC & DCC_RETILE:
- * - main surface in plane 0
- * - displayable DCC surface in plane 1 (not RB-aligned & not pipe-aligned)
- * - pipe-aligned DCC surface in plane 2 (RB-aligned & pipe-aligned)
- *
- * For multi-plane formats the above surfaces get merged into one plane for
- * each format plane, based on the required alignment only.
- *
- * Bits Parameter Notes
- * ----- ------------------------ ---------------------------------------------
- *
- * 7:0 TILE_VERSION Values are AMD_FMT_MOD_TILE_VER_*
- * 12:8 TILE Values are AMD_FMT_MOD_TILE_<version>_*
- * 13 DCC
- * 14 DCC_RETILE
- * 15 DCC_PIPE_ALIGN
- * 16 DCC_INDEPENDENT_64B
- * 17 DCC_INDEPENDENT_128B
- * 19:18 DCC_MAX_COMPRESSED_BLOCK Values are AMD_FMT_MOD_DCC_BLOCK_*
- * 20 DCC_CONSTANT_ENCODE
- * 23:21 PIPE_XOR_BITS Only for some chips
- * 26:24 BANK_XOR_BITS Only for some chips
- * 29:27 PACKERS Only for some chips
- * 32:30 RB Only for some chips
- * 35:33 PIPE Only for some chips
- * 55:36 - Reserved for future use, must be zero
- */
-#define AMD_FMT_MOD fourcc_mod_code(AMD, 0)
-
-#define IS_AMD_FMT_MOD(val) (((val) >> 56) == DRM_FORMAT_MOD_VENDOR_AMD)
-
-/* Reserve 0 for GFX8 and older */
-#define AMD_FMT_MOD_TILE_VER_GFX9 1
-#define AMD_FMT_MOD_TILE_VER_GFX10 2
-#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
-
-/*
- * 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
- * version.
- */
-#define AMD_FMT_MOD_TILE_GFX9_64K_S 9
-
-/*
- * 64K_D for non-32 bpp is the same for GFX9/GFX10/GFX10_RBPLUS and hence has
- * GFX9 as canonical version.
- */
-#define AMD_FMT_MOD_TILE_GFX9_64K_D 10
-#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
-#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
-#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
-
-#define AMD_FMT_MOD_DCC_BLOCK_64B 0
-#define AMD_FMT_MOD_DCC_BLOCK_128B 1
-#define AMD_FMT_MOD_DCC_BLOCK_256B 2
-
-#define AMD_FMT_MOD_TILE_VERSION_SHIFT 0
-#define AMD_FMT_MOD_TILE_VERSION_MASK 0xFF
-#define AMD_FMT_MOD_TILE_SHIFT 8
-#define AMD_FMT_MOD_TILE_MASK 0x1F
-
-/* Whether DCC compression is enabled. */
-#define AMD_FMT_MOD_DCC_SHIFT 13
-#define AMD_FMT_MOD_DCC_MASK 0x1
-
-/*
- * Whether to include two DCC surfaces, one which is rb & pipe aligned, and
- * one which is not-aligned.
- */
-#define AMD_FMT_MOD_DCC_RETILE_SHIFT 14
-#define AMD_FMT_MOD_DCC_RETILE_MASK 0x1
-
-/* Only set if DCC_RETILE = false */
-#define AMD_FMT_MOD_DCC_PIPE_ALIGN_SHIFT 15
-#define AMD_FMT_MOD_DCC_PIPE_ALIGN_MASK 0x1
-
-#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_SHIFT 16
-#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_MASK 0x1
-#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_SHIFT 17
-#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_MASK 0x1
-#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_SHIFT 18
-#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_MASK 0x3
-
-/*
- * DCC supports embedding some clear colors directly in the DCC surface.
- * However, on older GPUs the rendering HW ignores the embedded clear color
- * and prefers the driver provided color. This necessitates doing a fastclear
- * eliminate operation before a process transfers control.
- *
- * If this bit is set that means the fastclear eliminate is not needed for these
- * embeddable colors.
- */
-#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_SHIFT 20
-#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_MASK 0x1
-
-/*
- * The below fields are for accounting for per GPU differences. These are only
- * relevant for GFX9 and later and if the tile field is *_X/_T.
- *
- * PIPE_XOR_BITS = always needed
- * BANK_XOR_BITS = only for TILE_VER_GFX9
- * PACKERS = only for TILE_VER_GFX10_RBPLUS
- * RB = only for TILE_VER_GFX9 & DCC
- * PIPE = only for TILE_VER_GFX9 & DCC & (DCC_RETILE | DCC_PIPE_ALIGN)
- */
-#define AMD_FMT_MOD_PIPE_XOR_BITS_SHIFT 21
-#define AMD_FMT_MOD_PIPE_XOR_BITS_MASK 0x7
-#define AMD_FMT_MOD_BANK_XOR_BITS_SHIFT 24
-#define AMD_FMT_MOD_BANK_XOR_BITS_MASK 0x7
-#define AMD_FMT_MOD_PACKERS_SHIFT 27
-#define AMD_FMT_MOD_PACKERS_MASK 0x7
-#define AMD_FMT_MOD_RB_SHIFT 30
-#define AMD_FMT_MOD_RB_MASK 0x7
-#define AMD_FMT_MOD_PIPE_SHIFT 33
-#define AMD_FMT_MOD_PIPE_MASK 0x7
-
-#define AMD_FMT_MOD_SET(field, value) \
- ((uint64_t)(value) << AMD_FMT_MOD_##field##_SHIFT)
-#define AMD_FMT_MOD_GET(field, value) \
- (((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK)
-#define AMD_FMT_MOD_CLEAR(field) \
- (~((uint64_t)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT))
-
#if defined(__cplusplus)
}
#endif
diff --git a/original/uapi/drm/drm_mode.h b/original/uapi/drm/drm_mode.h
index 1c06462..7043c57 100644
--- a/original/uapi/drm/drm_mode.h
+++ b/original/uapi/drm/drm_mode.h
@@ -41,7 +41,6 @@ extern "C" {
* Userspace can refer to these structure definitions and UAPI formats
* to communicate to driver
*/
-
#define DRM_CONNECTOR_NAME_LEN 32
#define DRM_DISPLAY_MODE_LEN 32
#define DRM_PROP_NAME_LEN 32
@@ -124,6 +123,13 @@ extern "C" {
#define DRM_MODE_FLAG_PIC_AR_256_135 \
(DRM_MODE_PICTURE_ASPECT_256_135<<19)
+#define DRM_MODE_FLAG_SUPPORTS_RGB (1<<27)
+
+#define DRM_MODE_FLAG_SUPPORTS_YUV (1<<28)
+#define DRM_MODE_FLAG_VID_MODE_PANEL (1<<29)
+#define DRM_MODE_FLAG_CMD_MODE_PANEL (1<<30)
+#define DRM_MODE_FLAG_SEAMLESS (1<<31)
+
#define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | \
DRM_MODE_FLAG_NHSYNC | \
DRM_MODE_FLAG_PVSYNC | \
@@ -136,6 +142,10 @@ extern "C" {
DRM_MODE_FLAG_HSKEW | \
DRM_MODE_FLAG_DBLCLK | \
DRM_MODE_FLAG_CLKDIV2 | \
+ DRM_MODE_FLAG_SUPPORTS_RGB | \
+ DRM_MODE_FLAG_SUPPORTS_YUV | \
+ DRM_MODE_FLAG_VID_MODE_PANEL | \
+ DRM_MODE_FLAG_CMD_MODE_PANEL | \
DRM_MODE_FLAG_3D_MASK)
/* DPMS flags */
@@ -218,27 +228,6 @@ extern "C" {
#define DRM_MODE_CONTENT_PROTECTION_DESIRED 1
#define DRM_MODE_CONTENT_PROTECTION_ENABLED 2
-/**
- * struct drm_mode_modeinfo - Display mode information.
- * @clock: pixel clock in kHz
- * @hdisplay: horizontal display size
- * @hsync_start: horizontal sync start
- * @hsync_end: horizontal sync end
- * @htotal: horizontal total size
- * @hskew: horizontal skew
- * @vdisplay: vertical display size
- * @vsync_start: vertical sync start
- * @vsync_end: vertical sync end
- * @vtotal: vertical total size
- * @vscan: vertical scan
- * @vrefresh: approximate vertical refresh rate in Hz
- * @flags: bitmask of misc. flags, see DRM_MODE_FLAG_* defines
- * @type: bitmask of type flags, see DRM_MODE_TYPE_* defines
- * @name: string describing the mode resolution
- *
- * This is the user-space API display mode information structure. For the
- * kernel version see struct drm_display_mode.
- */
struct drm_mode_modeinfo {
__u32 clock;
__u16 hdisplay;
@@ -353,19 +342,14 @@ struct drm_mode_get_encoder {
/* This is for connectors with multiple signal types. */
/* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */
enum drm_mode_subconnector {
- DRM_MODE_SUBCONNECTOR_Automatic = 0, /* DVI-I, TV */
- DRM_MODE_SUBCONNECTOR_Unknown = 0, /* DVI-I, TV, DP */
- DRM_MODE_SUBCONNECTOR_VGA = 1, /* DP */
- DRM_MODE_SUBCONNECTOR_DVID = 3, /* DVI-I DP */
- DRM_MODE_SUBCONNECTOR_DVIA = 4, /* DVI-I */
- DRM_MODE_SUBCONNECTOR_Composite = 5, /* TV */
- DRM_MODE_SUBCONNECTOR_SVIDEO = 6, /* TV */
- DRM_MODE_SUBCONNECTOR_Component = 8, /* TV */
- DRM_MODE_SUBCONNECTOR_SCART = 9, /* TV */
- DRM_MODE_SUBCONNECTOR_DisplayPort = 10, /* DP */
- DRM_MODE_SUBCONNECTOR_HDMIA = 11, /* DP */
- DRM_MODE_SUBCONNECTOR_Native = 15, /* DP */
- DRM_MODE_SUBCONNECTOR_Wireless = 18, /* DP */
+ DRM_MODE_SUBCONNECTOR_Automatic = 0,
+ DRM_MODE_SUBCONNECTOR_Unknown = 0,
+ DRM_MODE_SUBCONNECTOR_DVID = 3,
+ DRM_MODE_SUBCONNECTOR_DVIA = 4,
+ DRM_MODE_SUBCONNECTOR_Composite = 5,
+ DRM_MODE_SUBCONNECTOR_SVIDEO = 6,
+ DRM_MODE_SUBCONNECTOR_Component = 8,
+ DRM_MODE_SUBCONNECTOR_SCART = 9,
};
#define DRM_MODE_CONNECTOR_Unknown 0
@@ -389,92 +373,27 @@ enum drm_mode_subconnector {
#define DRM_MODE_CONNECTOR_WRITEBACK 18
#define DRM_MODE_CONNECTOR_SPI 19
-/**
- * struct drm_mode_get_connector - Get connector metadata.
- *
- * User-space can perform a GETCONNECTOR ioctl to retrieve information about a
- * connector. User-space is expected to retrieve encoders, modes and properties
- * by performing this ioctl at least twice: the first time to retrieve the
- * number of elements, the second time to retrieve the elements themselves.
- *
- * To retrieve the number of elements, set @count_props and @count_encoders to
- * zero, set @count_modes to 1, and set @modes_ptr to a temporary struct
- * drm_mode_modeinfo element.
- *
- * To retrieve the elements, allocate arrays for @encoders_ptr, @modes_ptr,
- * @props_ptr and @prop_values_ptr, then set @count_modes, @count_props and
- * @count_encoders to their capacity.
- *
- * Performing the ioctl only twice may be racy: the number of elements may have
- * changed with a hotplug event in-between the two ioctls. User-space is
- * expected to retry the last ioctl until the number of elements stabilizes.
- * The kernel won't fill any array which doesn't have the expected length.
- *
- * **Force-probing a connector**
- *
- * If the @count_modes field is set to zero, the kernel will perform a forced
- * probe on the connector to refresh the connector status, modes and EDID.
- * A forced-probe can be slow, might cause flickering and the ioctl will block.
- *
- * User-space needs to force-probe connectors to ensure their metadata is
- * up-to-date at startup and after receiving a hot-plug event. User-space
- * may perform a forced-probe when the user explicitly requests it. User-space
- * shouldn't perform a forced-probe in other situations.
- */
struct drm_mode_get_connector {
- /** @encoders_ptr: Pointer to ``__u32`` array of object IDs. */
+
__u64 encoders_ptr;
- /** @modes_ptr: Pointer to struct drm_mode_modeinfo array. */
__u64 modes_ptr;
- /** @props_ptr: Pointer to ``__u32`` array of property IDs. */
__u64 props_ptr;
- /** @prop_values_ptr: Pointer to ``__u64`` array of property values. */
__u64 prop_values_ptr;
- /** @count_modes: Number of modes. */
__u32 count_modes;
- /** @count_props: Number of properties. */
__u32 count_props;
- /** @count_encoders: Number of encoders. */
__u32 count_encoders;
- /** @encoder_id: Object ID of the current encoder. */
- __u32 encoder_id;
- /** @connector_id: Object ID of the connector. */
- __u32 connector_id;
- /**
- * @connector_type: Type of the connector.
- *
- * See DRM_MODE_CONNECTOR_* defines.
- */
+ __u32 encoder_id; /**< Current Encoder */
+ __u32 connector_id; /**< Id */
__u32 connector_type;
- /**
- * @connector_type_id: Type-specific connector number.
- *
- * This is not an object ID. This is a per-type connector number. Each
- * (type, type_id) combination is unique across all connectors of a DRM
- * device.
- */
__u32 connector_type_id;
- /**
- * @connection: Status of the connector.
- *
- * See enum drm_connector_status.
- */
__u32 connection;
- /** @mm_width: Width of the connected sink in millimeters. */
- __u32 mm_width;
- /** @mm_height: Height of the connected sink in millimeters. */
- __u32 mm_height;
- /**
- * @subpixel: Subpixel order of the connected sink.
- *
- * See enum subpixel_order.
- */
+ __u32 mm_width; /**< width in millimeters */
+ __u32 mm_height; /**< height in millimeters */
__u32 subpixel;
- /** @pad: Padding, must be zero. */
__u32 pad;
};
@@ -576,6 +495,7 @@ struct drm_mode_fb_cmd {
#define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */
#define DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifer[] */
+#define DRM_MODE_FB_SECURE (1<<2) /* for secure framebuffers */
struct drm_mode_fb_cmd2 {
__u32 fb_id;
@@ -588,7 +508,7 @@ struct drm_mode_fb_cmd2 {
* In case of planar formats, this ioctl allows up to 4
* buffer objects with offsets and pitches per plane.
* The pitch and offset order is dictated by the fourcc,
- * e.g. NV12 (https://fourcc.org/yuv.php#NV12) is described as:
+ * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as:
*
* YUV 4:2:0 image with a plane of 8 bit Y samples
* followed by an interleaved U/V plane containing
@@ -991,30 +911,25 @@ struct drm_format_modifier {
/**
* struct drm_mode_create_blob - Create New block property
- *
+ * @data: Pointer to data to copy.
+ * @length: Length of data to copy.
+ * @blob_id: new property ID.
* Create a new 'blob' data property, copying length bytes from data pointer,
* and returning new blob ID.
*/
struct drm_mode_create_blob {
- /** @data: Pointer to data to copy. */
+ /** Pointer to data to copy. */
__u64 data;
- /** @length: Length of data to copy. */
+ /** Length of data to copy. */
__u32 length;
- /** @blob_id: Return: new property ID. */
+ /** Return: new property ID. */
__u32 blob_id;
};
/**
* struct drm_mode_destroy_blob - Destroy user blob
* @blob_id: blob_id to destroy
- *
* Destroy a user-created blob property.
- *
- * User-space can release blobs as soon as they do not need to refer to them by
- * their blob object ID. For instance, if you are using a MODE_ID blob in an
- * atomic commit and you will not make another commit re-using the same ID, you
- * can destroy the blob as soon as the commit has been issued, without waiting
- * for it to complete.
*/
struct drm_mode_destroy_blob {
__u32 blob_id;
@@ -1022,32 +937,36 @@ struct drm_mode_destroy_blob {
/**
* struct drm_mode_create_lease - Create lease
- *
+ * @object_ids: Pointer to array of object ids.
+ * @object_count: Number of object ids.
+ * @flags: flags for new FD.
+ * @lessee_id: unique identifier for lessee.
+ * @fd: file descriptor to new drm_master file.
* Lease mode resources, creating another drm_master.
*/
struct drm_mode_create_lease {
- /** @object_ids: Pointer to array of object ids (__u32) */
+ /** Pointer to array of object ids (__u32) */
__u64 object_ids;
- /** @object_count: Number of object ids */
+ /** Number of object ids */
__u32 object_count;
- /** @flags: flags for new FD (O_CLOEXEC, etc) */
+ /** flags for new FD (O_CLOEXEC, etc) */
__u32 flags;
- /** @lessee_id: Return: unique identifier for lessee. */
+ /** Return: unique identifier for lessee. */
__u32 lessee_id;
- /** @fd: Return: file descriptor to new drm_master file */
+ /** Return: file descriptor to new drm_master file */
__u32 fd;
};
/**
* struct drm_mode_list_lessees - List lessees
- *
- * List lesses from a drm_master.
+ * @count_lessees: Number of lessees.
+ * @pad: pad.
+ * @lessees_ptr: Pointer to lessess.
+ * List lesses from a drm_master
*/
struct drm_mode_list_lessees {
- /**
- * @count_lessees: Number of lessees.
- *
+ /** Number of lessees.
* On input, provides length of the array.
* On output, provides total number. No
* more than the input number will be written
@@ -1055,26 +974,23 @@ struct drm_mode_list_lessees {
* the size and then the data.
*/
__u32 count_lessees;
- /** @pad: Padding. */
__u32 pad;
- /**
- * @lessees_ptr: Pointer to lessees.
- *
- * Pointer to __u64 array of lessee ids
+ /** Pointer to lessees.
+ * pointer to __u64 array of lessee ids
*/
__u64 lessees_ptr;
};
/**
* struct drm_mode_get_lease - Get Lease
- *
- * Get leased objects.
+ * @count_objects: Number of leased objects.
+ * @pad: pad.
+ * @objects_ptr: Pointer to objects.
+ * Get leased objects
*/
struct drm_mode_get_lease {
- /**
- * @count_objects: Number of leased objects.
- *
+ /** Number of leased objects.
* On input, provides length of the array.
* On output, provides total number. No
* more than the input number will be written
@@ -1082,22 +998,22 @@ struct drm_mode_get_lease {
* the size and then the data.
*/
__u32 count_objects;
- /** @pad: Padding. */
__u32 pad;
- /**
- * @objects_ptr: Pointer to objects.
- *
- * Pointer to __u32 array of object ids.
+ /** Pointer to objects.
+ * pointer to __u32 array of object ids
*/
__u64 objects_ptr;
};
/**
* struct drm_mode_revoke_lease - Revoke lease
+ * @lessee_id: Unique ID of lessee.
+ * Revoke lease
*/
struct drm_mode_revoke_lease {
- /** @lessee_id: Unique ID of lessee */
+ /** Unique ID of lessee
+ */
__u32 lessee_id;
};
diff --git a/original/uapi/drm/exynos_drm.h b/original/uapi/drm/exynos_drm.h
index a51aa1c..45c6582 100644
--- a/original/uapi/drm/exynos_drm.h
+++ b/original/uapi/drm/exynos_drm.h
@@ -394,7 +394,7 @@ struct drm_exynos_ioctl_ipp_commit {
#define DRM_IOCTL_EXYNOS_IPP_COMMIT DRM_IOWR(DRM_COMMAND_BASE + \
DRM_EXYNOS_IPP_COMMIT, struct drm_exynos_ioctl_ipp_commit)
-/* Exynos specific events */
+/* EXYNOS specific events */
#define DRM_EXYNOS_G2D_EVENT 0x80000000
#define DRM_EXYNOS_IPP_EVENT 0x80000002
diff --git a/original/uapi/drm/i915_drm.h b/original/uapi/drm/i915_drm.h
index 1987e2e..5400d7e 100644
--- a/original/uapi/drm/i915_drm.h
+++ b/original/uapi/drm/i915_drm.h
@@ -55,7 +55,7 @@ extern "C" {
* cause the related events to not be seen.
*
* I915_RESET_UEVENT - Event is generated just before an attempt to reset the
- * GPU. The value supplied with the event is always 1. NOTE: Disable
+ * the GPU. The value supplied with the event is always 1. NOTE: Disable
* reset via module parameter will cause this event to not be seen.
*/
#define I915_L3_PARITY_UEVENT "L3_PARITY_ERROR"
@@ -177,9 +177,8 @@ enum drm_i915_pmu_engine_sample {
#define I915_PMU_REQUESTED_FREQUENCY __I915_PMU_OTHER(1)
#define I915_PMU_INTERRUPTS __I915_PMU_OTHER(2)
#define I915_PMU_RC6_RESIDENCY __I915_PMU_OTHER(3)
-#define I915_PMU_SOFTWARE_GT_AWAKE_TIME __I915_PMU_OTHER(4)
-#define I915_PMU_LAST /* Deprecated - do not use */ I915_PMU_RC6_RESIDENCY
+#define I915_PMU_LAST I915_PMU_RC6_RESIDENCY
/* Each region is a minimum of 16k, and there are at most 255 of them.
*/
@@ -396,7 +395,6 @@ typedef struct _drm_i915_sarea {
#define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
#define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
#define DRM_IOCTL_I915_GEM_MMAP_GTT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt)
-#define DRM_IOCTL_I915_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_offset)
#define DRM_IOCTL_I915_GEM_SET_DOMAIN DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain)
#define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
@@ -620,12 +618,6 @@ typedef struct drm_i915_irq_wait {
*/
#define I915_PARAM_PERF_REVISION 54
-/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
- * timeline syncobj through drm_i915_gem_execbuffer_ext_timeline_fences. See
- * I915_EXEC_USE_EXTENSIONS.
- */
-#define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
-
/* Must be kept compact -- no holes and well documented */
typedef struct drm_i915_getparam {
@@ -801,37 +793,6 @@ struct drm_i915_gem_mmap_gtt {
__u64 offset;
};
-struct drm_i915_gem_mmap_offset {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /**
- * Fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-
- /**
- * Flags for extended behaviour.
- *
- * It is mandatory that one of the MMAP_OFFSET types
- * (GTT, WC, WB, UC, etc) should be included.
- */
- __u64 flags;
-#define I915_MMAP_OFFSET_GTT 0
-#define I915_MMAP_OFFSET_WC 1
-#define I915_MMAP_OFFSET_WB 2
-#define I915_MMAP_OFFSET_UC 3
-
- /*
- * Zero-terminated chain of extensions.
- *
- * No current extensions defined; mbz.
- */
- __u64 extensions;
-};
-
struct drm_i915_gem_set_domain {
/** Handle for the object */
__u32 handle;
@@ -1053,38 +1014,6 @@ struct drm_i915_gem_exec_fence {
__u32 flags;
};
-/**
- * See drm_i915_gem_execbuffer_ext_timeline_fences.
- */
-#define DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES 0
-
-/**
- * This structure describes an array of drm_syncobj and associated points for
- * timeline variants of drm_syncobj. It is invalid to append this structure to
- * the execbuf if I915_EXEC_FENCE_ARRAY is set.
- */
-struct drm_i915_gem_execbuffer_ext_timeline_fences {
- struct i915_user_extension base;
-
- /**
- * Number of element in the handles_ptr & value_ptr arrays.
- */
- __u64 fence_count;
-
- /**
- * Pointer to an array of struct drm_i915_gem_exec_fence of length
- * fence_count.
- */
- __u64 handles_ptr;
-
- /**
- * Pointer to an array of u64 values of length fence_count. Values
- * must be 0 for a binary drm_syncobj. A Value of 0 for a timeline
- * drm_syncobj is invalid as it turns a drm_syncobj into a binary one.
- */
- __u64 values_ptr;
-};
-
struct drm_i915_gem_execbuffer2 {
/**
* List of gem_exec_object2 structs
@@ -1101,14 +1030,8 @@ struct drm_i915_gem_execbuffer2 {
__u32 num_cliprects;
/**
* This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
- * & I915_EXEC_USE_EXTENSIONS are not set.
- *
- * If I915_EXEC_FENCE_ARRAY is set, then this is a pointer to an array
- * of struct drm_i915_gem_exec_fence and num_cliprects is the length
- * of the array.
- *
- * If I915_EXEC_USE_EXTENSIONS is set, then this is a pointer to a
- * single struct i915_user_extension and num_cliprects is 0.
+ * is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a
+ * struct drm_i915_gem_exec_fence *fences.
*/
__u64 cliprects_ptr;
#define I915_EXEC_RING_MASK (0x3f)
@@ -1226,16 +1149,7 @@ struct drm_i915_gem_execbuffer2 {
*/
#define I915_EXEC_FENCE_SUBMIT (1 << 20)
-/*
- * Setting I915_EXEC_USE_EXTENSIONS implies that
- * drm_i915_gem_execbuffer2.cliprects_ptr is treated as a pointer to an linked
- * list of i915_user_extension. Each i915_user_extension node is the base of a
- * larger structure. The list of supported structures are listed in the
- * drm_i915_gem_execbuffer_ext enum.
- */
-#define I915_EXEC_USE_EXTENSIONS (1 << 21)
-
-#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_USE_EXTENSIONS << 1))
+#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_SUBMIT << 1))
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
#define i915_execbuffer2_set_context_id(eb2, context) \
@@ -1673,27 +1587,6 @@ struct drm_i915_gem_context_param {
* By default, new contexts allow persistence.
*/
#define I915_CONTEXT_PARAM_PERSISTENCE 0xb
-
-/*
- * I915_CONTEXT_PARAM_RINGSIZE:
- *
- * Sets the size of the CS ringbuffer to use for logical ring contexts. This
- * applies a limit of how many batches can be queued to HW before the caller
- * is blocked due to lack of space for more commands.
- *
- * Only reliably possible to be set prior to first use, i.e. during
- * construction. At any later point, the current execution must be flushed as
- * the ring can only be changed while the context is idle. Note, the ringsize
- * can be specified as a constructor property, see
- * I915_CONTEXT_CREATE_EXT_SETPARAM, but can also be set later if required.
- *
- * Only applies to the current set of engine and lost when those engines
- * are replaced by a new mapping (see I915_CONTEXT_PARAM_ENGINES).
- *
- * Must be between 4 - 512 KiB, in intervals of page size [4 KiB].
- * Default is 16 KiB.
- */
-#define I915_CONTEXT_PARAM_RINGSIZE 0xc
/* Must be kept compact -- no holes and well documented */
__u64 value;
@@ -1988,7 +1881,7 @@ enum drm_i915_perf_property_id {
/**
* The value specifies which set of OA unit metrics should be
- * configured, defining the contents of any OA unit reports.
+ * be configured, defining the contents of any OA unit reports.
*
* This property is available in perf revision 1.
*/
@@ -2023,30 +1916,6 @@ enum drm_i915_perf_property_id {
*/
DRM_I915_PERF_PROP_HOLD_PREEMPTION,
- /**
- * Specifying this pins all contexts to the specified SSEU power
- * configuration for the duration of the recording.
- *
- * This parameter's value is a pointer to a struct
- * drm_i915_gem_context_param_sseu.
- *
- * This property is available in perf revision 4.
- */
- DRM_I915_PERF_PROP_GLOBAL_SSEU,
-
- /**
- * This optional parameter specifies the timer interval in nanoseconds
- * at which the i915 driver will check the OA buffer for available data.
- * Minimum allowed value is 100 microseconds. A default value is used by
- * the driver if this parameter is not specified. Note that larger timer
- * values will reduce cpu consumption during OA perf captures. However,
- * excessively large values would potentially result in OA buffer
- * overwrites as captures reach end of the OA buffer.
- *
- * This property is available in perf revision 5.
- */
- DRM_I915_PERF_PROP_POLL_OA_PERIOD,
-
DRM_I915_PERF_PROP_MAX /* non-ABI */
};
diff --git a/original/uapi/drm/lima_drm.h b/original/uapi/drm/lima_drm.h
index 1ec58d6..95a00fb 100644
--- a/original/uapi/drm/lima_drm.h
+++ b/original/uapi/drm/lima_drm.h
@@ -32,19 +32,12 @@ struct drm_lima_get_param {
__u64 value; /* out, parameter value */
};
-/*
- * heap buffer dynamically increase backup memory size when GP task fail
- * due to lack of heap memory. size field of heap buffer is an up bound of
- * the backup memory which can be set to a fairly large value.
- */
-#define LIMA_BO_FLAG_HEAP (1 << 0)
-
/**
* create a buffer for used by GPU
*/
struct drm_lima_gem_create {
__u32 size; /* in, buffer size */
- __u32 flags; /* in, buffer flags */
+ __u32 flags; /* in, currently no flags, must be zero */
__u32 handle; /* out, GEM buffer handle */
__u32 pad; /* pad, must be zero */
};
diff --git a/original/uapi/drm/msm_drm.h b/original/uapi/drm/msm_drm.h
index a6c1f3e..0b85ed6 100644
--- a/original/uapi/drm/msm_drm.h
+++ b/original/uapi/drm/msm_drm.h
@@ -217,28 +217,13 @@ struct drm_msm_gem_submit_bo {
#define MSM_SUBMIT_FENCE_FD_IN 0x40000000 /* enable input fence_fd */
#define MSM_SUBMIT_FENCE_FD_OUT 0x20000000 /* enable output fence_fd */
#define MSM_SUBMIT_SUDO 0x10000000 /* run submitted cmds from RB */
-#define MSM_SUBMIT_SYNCOBJ_IN 0x08000000 /* enable input syncobj */
-#define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000 /* enable output syncobj */
#define MSM_SUBMIT_FLAGS ( \
MSM_SUBMIT_NO_IMPLICIT | \
MSM_SUBMIT_FENCE_FD_IN | \
MSM_SUBMIT_FENCE_FD_OUT | \
MSM_SUBMIT_SUDO | \
- MSM_SUBMIT_SYNCOBJ_IN | \
- MSM_SUBMIT_SYNCOBJ_OUT | \
0)
-#define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001 /* Reset syncobj after wait. */
-#define MSM_SUBMIT_SYNCOBJ_FLAGS ( \
- MSM_SUBMIT_SYNCOBJ_RESET | \
- 0)
-
-struct drm_msm_gem_submit_syncobj {
- __u32 handle; /* in, syncobj handle. */
- __u32 flags; /* in, from MSM_SUBMIT_SYNCOBJ_FLAGS */
- __u64 point; /* in, timepoint for timeline syncobjs. */
-};
-
/* Each cmdstream submit consists of a table of buffers involved, and
* one or more cmdstream buffers. This allows for conditional execution
* (context-restore), and IB buffers needed for per tile/bin draw cmds.
@@ -251,14 +236,7 @@ struct drm_msm_gem_submit {
__u64 bos; /* in, ptr to array of submit_bo's */
__u64 cmds; /* in, ptr to array of submit_cmd's */
__s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */
- __u32 queueid; /* in, submitqueue id */
- __u64 in_syncobjs; /* in, ptr to array of drm_msm_gem_submit_syncobj */
- __u64 out_syncobjs; /* in, ptr to array of drm_msm_gem_submit_syncobj */
- __u32 nr_in_syncobjs; /* in, number of entries in in_syncobj */
- __u32 nr_out_syncobjs; /* in, number of entries in out_syncobj. */
- __u32 syncobj_stride; /* in, stride of syncobj arrays. */
- __u32 pad; /*in, reserved for future use, always 0. */
-
+ __u32 queueid; /* in, submitqueue id */
};
/* The normal way to synchronize with the GPU is just to CPU_PREP on
diff --git a/original/uapi/drm/nouveau_drm.h b/original/uapi/drm/nouveau_drm.h
index 853a327..9459a6e 100644
--- a/original/uapi/drm/nouveau_drm.h
+++ b/original/uapi/drm/nouveau_drm.h
@@ -110,7 +110,6 @@ struct drm_nouveau_gem_pushbuf {
__u64 push;
__u32 suffix0;
__u32 suffix1;
-#define NOUVEAU_GEM_PUSHBUF_SYNC (1ULL << 0)
__u64 vram_available;
__u64 gart_available;
};
diff --git a/original/uapi/drm/virtgpu_drm.h b/original/uapi/drm/virtgpu_drm.h
index b9ec26e..f06a789 100644
--- a/original/uapi/drm/virtgpu_drm.h
+++ b/original/uapi/drm/virtgpu_drm.h
@@ -46,7 +46,6 @@ extern "C" {
#define DRM_VIRTGPU_TRANSFER_TO_HOST 0x07
#define DRM_VIRTGPU_WAIT 0x08
#define DRM_VIRTGPU_GET_CAPS 0x09
-#define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
#define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
#define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
@@ -72,9 +71,6 @@ struct drm_virtgpu_execbuffer {
#define VIRTGPU_PARAM_3D_FEATURES 1 /* do we have 3D features in the hw */
#define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2 /* do we have the capset fix */
-#define VIRTGPU_PARAM_RESOURCE_BLOB 3 /* DRM_VIRTGPU_RESOURCE_CREATE_BLOB */
-#define VIRTGPU_PARAM_HOST_VISIBLE 4 /* Host blob resources are mappable */
-#define VIRTGPU_PARAM_CROSS_DEVICE 5 /* Cross virtio-device resource sharing */
struct drm_virtgpu_getparam {
__u64 param;
@@ -104,7 +100,7 @@ struct drm_virtgpu_resource_info {
__u32 bo_handle;
__u32 res_handle;
__u32 size;
- __u32 blob_mem;
+ __u32 stride;
};
struct drm_virtgpu_3d_box {
@@ -121,8 +117,6 @@ struct drm_virtgpu_3d_transfer_to_host {
struct drm_virtgpu_3d_box box;
__u32 level;
__u32 offset;
- __u32 stride;
- __u32 layer_stride;
};
struct drm_virtgpu_3d_transfer_from_host {
@@ -130,8 +124,6 @@ struct drm_virtgpu_3d_transfer_from_host {
struct drm_virtgpu_3d_box box;
__u32 level;
__u32 offset;
- __u32 stride;
- __u32 layer_stride;
};
#define VIRTGPU_WAIT_NOWAIT 1 /* like it */
@@ -148,31 +140,6 @@ struct drm_virtgpu_get_caps {
__u32 pad;
};
-struct drm_virtgpu_resource_create_blob {
-#define VIRTGPU_BLOB_MEM_GUEST 0x0001
-#define VIRTGPU_BLOB_MEM_HOST3D 0x0002
-#define VIRTGPU_BLOB_MEM_HOST3D_GUEST 0x0003
-
-#define VIRTGPU_BLOB_FLAG_USE_MAPPABLE 0x0001
-#define VIRTGPU_BLOB_FLAG_USE_SHAREABLE 0x0002
-#define VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004
- /* zero is invalid blob_mem */
- __u32 blob_mem;
- __u32 blob_flags;
- __u32 bo_handle;
- __u32 res_handle;
- __u64 size;
-
- /*
- * for 3D contexts with VIRTGPU_BLOB_MEM_HOST3D_GUEST and
- * VIRTGPU_BLOB_MEM_HOST3D otherwise, must be zero.
- */
- __u32 pad;
- __u32 cmd_size;
- __u64 cmd;
- __u64 blob_id;
-};
-
#define DRM_IOCTL_VIRTGPU_MAP \
DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
@@ -208,10 +175,6 @@ struct drm_virtgpu_resource_create_blob {
DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, \
struct drm_virtgpu_get_caps)
-#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, \
- struct drm_virtgpu_resource_create_blob)
-
#if defined(__cplusplus)
}
#endif
diff --git a/original/uapi/drm/vmwgfx_drm.h b/original/uapi/drm/vmwgfx_drm.h
index 02e9175..02cab33 100644
--- a/original/uapi/drm/vmwgfx_drm.h
+++ b/original/uapi/drm/vmwgfx_drm.h
@@ -71,7 +71,6 @@ extern "C" {
#define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
#define DRM_VMW_GB_SURFACE_CREATE_EXT 27
#define DRM_VMW_GB_SURFACE_REF_EXT 28
-#define DRM_VMW_MSG 29
/*************************************************************************/
/**
@@ -86,9 +85,6 @@ extern "C" {
*
* DRM_VMW_PARAM_SM4_1
* SM4_1 support is enabled.
- *
- * DRM_VMW_PARAM_SM5
- * SM5 support is enabled.
*/
#define DRM_VMW_PARAM_NUM_STREAMS 0
@@ -106,7 +102,6 @@ extern "C" {
#define DRM_VMW_PARAM_DX 12
#define DRM_VMW_PARAM_HW_CAPS2 13
#define DRM_VMW_PARAM_SM4_1 14
-#define DRM_VMW_PARAM_SM5 15
/**
* enum drm_vmw_handle_type - handle type for ref ioctls
@@ -1137,7 +1132,7 @@ struct drm_vmw_handle_close_arg {
* svga3d surface flags split into 2, upper half and lower half.
*/
enum drm_vmw_surface_version {
- drm_vmw_gb_surface_v1,
+ drm_vmw_gb_surface_v1
};
/**
@@ -1148,7 +1143,6 @@ enum drm_vmw_surface_version {
* @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags.
* @multisample_pattern: Multisampling pattern when msaa is supported.
* @quality_level: Precision settings for each sample.
- * @buffer_byte_stride: Buffer byte stride.
* @must_be_zero: Reserved for future usage.
*
* Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl.
@@ -1157,11 +1151,10 @@ enum drm_vmw_surface_version {
struct drm_vmw_gb_surface_create_ext_req {
struct drm_vmw_gb_surface_create_req base;
enum drm_vmw_surface_version version;
- __u32 svga3d_flags_upper_32_bits;
- __u32 multisample_pattern;
- __u32 quality_level;
- __u32 buffer_byte_stride;
- __u32 must_be_zero;
+ uint32_t svga3d_flags_upper_32_bits;
+ SVGA3dMSPattern multisample_pattern;
+ SVGA3dMSQualityLevel quality_level;
+ uint64_t must_be_zero;
};
/**
@@ -1220,22 +1213,6 @@ union drm_vmw_gb_surface_reference_ext_arg {
struct drm_vmw_surface_arg req;
};
-/**
- * struct drm_vmw_msg_arg
- *
- * @send: Pointer to user-space msg string (null terminated).
- * @receive: Pointer to user-space receive buffer.
- * @send_only: Boolean whether this is only sending or receiving too.
- *
- * Argument to the DRM_VMW_MSG ioctl.
- */
-struct drm_vmw_msg_arg {
- __u64 send;
- __u64 receive;
- __s32 send_only;
- __u32 receive_len;
-};
-
#if defined(__cplusplus)
}
#endif
diff --git a/original/uapi/linux/acct.h b/original/uapi/linux/acct.h
index 985b890..0e72172 100644
--- a/original/uapi/linux/acct.h
+++ b/original/uapi/linux/acct.h
@@ -49,7 +49,6 @@ struct acct
__u16 ac_uid16; /* LSB of Real User ID */
__u16 ac_gid16; /* LSB of Real Group ID */
__u16 ac_tty; /* Control Terminal */
- /* __u32 range means times from 1970 to 2106 */
__u32 ac_btime; /* Process Creation Time */
comp_t ac_utime; /* User Time */
comp_t ac_stime; /* System Time */
@@ -82,7 +81,6 @@ struct acct_v3
__u32 ac_gid; /* Real Group ID */
__u32 ac_pid; /* Process ID */
__u32 ac_ppid; /* Parent Process ID */
- /* __u32 range means times from 1970 to 2106 */
__u32 ac_btime; /* Process Creation Time */
#ifdef __KERNEL__
__u32 ac_etime; /* Elapsed Time */
diff --git a/original/uapi/linux/acrn.h b/original/uapi/linux/acrn.h
deleted file mode 100644
index 353b2a2..0000000
--- a/original/uapi/linux/acrn.h
+++ /dev/null
@@ -1,580 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Userspace interface for /dev/acrn_hsm - ACRN Hypervisor Service Module
- *
- * This file can be used by applications that need to communicate with the HSM
- * via the ioctl interface.
- *
- * Copyright (C) 2021 Intel Corporation. All rights reserved.
- */
-
-#ifndef _UAPI_ACRN_H
-#define _UAPI_ACRN_H
-
-#include <linux/types.h>
-#include <linux/uuid.h>
-
-#define ACRN_IO_REQUEST_MAX 16
-
-#define ACRN_IOREQ_STATE_PENDING 0
-#define ACRN_IOREQ_STATE_COMPLETE 1
-#define ACRN_IOREQ_STATE_PROCESSING 2
-#define ACRN_IOREQ_STATE_FREE 3
-
-#define ACRN_IOREQ_TYPE_PORTIO 0
-#define ACRN_IOREQ_TYPE_MMIO 1
-#define ACRN_IOREQ_TYPE_PCICFG 2
-
-#define ACRN_IOREQ_DIR_READ 0
-#define ACRN_IOREQ_DIR_WRITE 1
-
-/**
- * struct acrn_mmio_request - Info of a MMIO I/O request
- * @direction: Access direction of this request (ACRN_IOREQ_DIR_*)
- * @reserved: Reserved for alignment and should be 0
- * @address: Access address of this MMIO I/O request
- * @size: Access size of this MMIO I/O request
- * @value: Read/write value of this MMIO I/O request
- */
-struct acrn_mmio_request {
- __u32 direction;
- __u32 reserved;
- __u64 address;
- __u64 size;
- __u64 value;
-};
-
-/**
- * struct acrn_pio_request - Info of a PIO I/O request
- * @direction: Access direction of this request (ACRN_IOREQ_DIR_*)
- * @reserved: Reserved for alignment and should be 0
- * @address: Access address of this PIO I/O request
- * @size: Access size of this PIO I/O request
- * @value: Read/write value of this PIO I/O request
- */
-struct acrn_pio_request {
- __u32 direction;
- __u32 reserved;
- __u64 address;
- __u64 size;
- __u32 value;
-};
-
-/**
- * struct acrn_pci_request - Info of a PCI I/O request
- * @direction: Access direction of this request (ACRN_IOREQ_DIR_*)
- * @reserved: Reserved for alignment and should be 0
- * @size: Access size of this PCI I/O request
- * @value: Read/write value of this PIO I/O request
- * @bus: PCI bus value of this PCI I/O request
- * @dev: PCI device value of this PCI I/O request
- * @func: PCI function value of this PCI I/O request
- * @reg: PCI config space offset of this PCI I/O request
- *
- * Need keep same header layout with &struct acrn_pio_request.
- */
-struct acrn_pci_request {
- __u32 direction;
- __u32 reserved[3];
- __u64 size;
- __u32 value;
- __u32 bus;
- __u32 dev;
- __u32 func;
- __u32 reg;
-};
-
-/**
- * struct acrn_io_request - 256-byte ACRN I/O request
- * @type: Type of this request (ACRN_IOREQ_TYPE_*).
- * @completion_polling: Polling flag. Hypervisor will poll completion of the
- * I/O request if this flag set.
- * @reserved0: Reserved fields.
- * @reqs: Union of different types of request. Byte offset: 64.
- * @reqs.pio_request: PIO request data of the I/O request.
- * @reqs.pci_request: PCI configuration space request data of the I/O request.
- * @reqs.mmio_request: MMIO request data of the I/O request.
- * @reqs.data: Raw data of the I/O request.
- * @reserved1: Reserved fields.
- * @kernel_handled: Flag indicates this request need be handled in kernel.
- * @processed: The status of this request (ACRN_IOREQ_STATE_*).
- *
- * The state transitions of ACRN I/O request:
- *
- * FREE -> PENDING -> PROCESSING -> COMPLETE -> FREE -> ...
- *
- * An I/O request in COMPLETE or FREE state is owned by the hypervisor. HSM and
- * ACRN userspace are in charge of processing the others.
- *
- * On basis of the states illustrated above, a typical lifecycle of ACRN IO
- * request would look like:
- *
- * Flow (assume the initial state is FREE)
- * |
- * | Service VM vCPU 0 Service VM vCPU x User vCPU y
- * |
- * | hypervisor:
- * | fills in type, addr, etc.
- * | pauses the User VM vCPU y
- * | sets the state to PENDING (a)
- * | fires an upcall to Service VM
- * |
- * | HSM:
- * | scans for PENDING requests
- * | sets the states to PROCESSING (b)
- * | assigns the requests to clients (c)
- * V
- * | client:
- * | scans for the assigned requests
- * | handles the requests (d)
- * | HSM:
- * | sets states to COMPLETE
- * | notifies the hypervisor
- * |
- * | hypervisor:
- * | resumes User VM vCPU y (e)
- * |
- * | hypervisor:
- * | post handling (f)
- * V sets states to FREE
- *
- * Note that the procedures (a) to (f) in the illustration above require to be
- * strictly processed in the order. One vCPU cannot trigger another request of
- * I/O emulation before completing the previous one.
- *
- * Atomic and barriers are required when HSM and hypervisor accessing the state
- * of &struct acrn_io_request.
- *
- */
-struct acrn_io_request {
- __u32 type;
- __u32 completion_polling;
- __u32 reserved0[14];
- union {
- struct acrn_pio_request pio_request;
- struct acrn_pci_request pci_request;
- struct acrn_mmio_request mmio_request;
- __u64 data[8];
- } reqs;
- __u32 reserved1;
- __u32 kernel_handled;
- __u32 processed;
-} __attribute__((aligned(256)));
-
-struct acrn_io_request_buffer {
- union {
- struct acrn_io_request req_slot[ACRN_IO_REQUEST_MAX];
- __u8 reserved[4096];
- };
-};
-
-/**
- * struct acrn_ioreq_notify - The structure of ioreq completion notification
- * @vmid: User VM ID
- * @reserved: Reserved and should be 0
- * @vcpu: vCPU ID
- */
-struct acrn_ioreq_notify {
- __u16 vmid;
- __u16 reserved;
- __u32 vcpu;
-};
-
-/**
- * struct acrn_vm_creation - Info to create a User VM
- * @vmid: User VM ID returned from the hypervisor
- * @reserved0: Reserved and must be 0
- * @vcpu_num: Number of vCPU in the VM. Return from hypervisor.
- * @reserved1: Reserved and must be 0
- * @uuid: UUID of the VM. Pass to hypervisor directly.
- * @vm_flag: Flag of the VM creating. Pass to hypervisor directly.
- * @ioreq_buf: Service VM GPA of I/O request buffer. Pass to
- * hypervisor directly.
- * @cpu_affinity: CPU affinity of the VM. Pass to hypervisor directly.
- * It's a bitmap which indicates CPUs used by the VM.
- */
-struct acrn_vm_creation {
- __u16 vmid;
- __u16 reserved0;
- __u16 vcpu_num;
- __u16 reserved1;
- guid_t uuid;
- __u64 vm_flag;
- __u64 ioreq_buf;
- __u64 cpu_affinity;
-};
-
-/**
- * struct acrn_gp_regs - General registers of a User VM
- * @rax: Value of register RAX
- * @rcx: Value of register RCX
- * @rdx: Value of register RDX
- * @rbx: Value of register RBX
- * @rsp: Value of register RSP
- * @rbp: Value of register RBP
- * @rsi: Value of register RSI
- * @rdi: Value of register RDI
- * @r8: Value of register R8
- * @r9: Value of register R9
- * @r10: Value of register R10
- * @r11: Value of register R11
- * @r12: Value of register R12
- * @r13: Value of register R13
- * @r14: Value of register R14
- * @r15: Value of register R15
- */
-struct acrn_gp_regs {
- __le64 rax;
- __le64 rcx;
- __le64 rdx;
- __le64 rbx;
- __le64 rsp;
- __le64 rbp;
- __le64 rsi;
- __le64 rdi;
- __le64 r8;
- __le64 r9;
- __le64 r10;
- __le64 r11;
- __le64 r12;
- __le64 r13;
- __le64 r14;
- __le64 r15;
-};
-
-/**
- * struct acrn_descriptor_ptr - Segment descriptor table of a User VM.
- * @limit: Limit field.
- * @base: Base field.
- * @reserved: Reserved and must be 0.
- */
-struct acrn_descriptor_ptr {
- __le16 limit;
- __le64 base;
- __le16 reserved[3];
-} __attribute__ ((__packed__));
-
-/**
- * struct acrn_regs - Registers structure of a User VM
- * @gprs: General registers
- * @gdt: Global Descriptor Table
- * @idt: Interrupt Descriptor Table
- * @rip: Value of register RIP
- * @cs_base: Base of code segment selector
- * @cr0: Value of register CR0
- * @cr4: Value of register CR4
- * @cr3: Value of register CR3
- * @ia32_efer: Value of IA32_EFER MSR
- * @rflags: Value of regsiter RFLAGS
- * @reserved_64: Reserved and must be 0
- * @cs_ar: Attribute field of code segment selector
- * @cs_limit: Limit field of code segment selector
- * @reserved_32: Reserved and must be 0
- * @cs_sel: Value of code segment selector
- * @ss_sel: Value of stack segment selector
- * @ds_sel: Value of data segment selector
- * @es_sel: Value of extra segment selector
- * @fs_sel: Value of FS selector
- * @gs_sel: Value of GS selector
- * @ldt_sel: Value of LDT descriptor selector
- * @tr_sel: Value of TSS descriptor selector
- */
-struct acrn_regs {
- struct acrn_gp_regs gprs;
- struct acrn_descriptor_ptr gdt;
- struct acrn_descriptor_ptr idt;
-
- __le64 rip;
- __le64 cs_base;
- __le64 cr0;
- __le64 cr4;
- __le64 cr3;
- __le64 ia32_efer;
- __le64 rflags;
- __le64 reserved_64[4];
-
- __le32 cs_ar;
- __le32 cs_limit;
- __le32 reserved_32[3];
-
- __le16 cs_sel;
- __le16 ss_sel;
- __le16 ds_sel;
- __le16 es_sel;
- __le16 fs_sel;
- __le16 gs_sel;
- __le16 ldt_sel;
- __le16 tr_sel;
-};
-
-/**
- * struct acrn_vcpu_regs - Info of vCPU registers state
- * @vcpu_id: vCPU ID
- * @reserved: Reserved and must be 0
- * @vcpu_regs: vCPU registers state
- *
- * This structure will be passed to hypervisor directly.
- */
-struct acrn_vcpu_regs {
- __u16 vcpu_id;
- __u16 reserved[3];
- struct acrn_regs vcpu_regs;
-};
-
-#define ACRN_MEM_ACCESS_RIGHT_MASK 0x00000007U
-#define ACRN_MEM_ACCESS_READ 0x00000001U
-#define ACRN_MEM_ACCESS_WRITE 0x00000002U
-#define ACRN_MEM_ACCESS_EXEC 0x00000004U
-#define ACRN_MEM_ACCESS_RWX (ACRN_MEM_ACCESS_READ | \
- ACRN_MEM_ACCESS_WRITE | \
- ACRN_MEM_ACCESS_EXEC)
-
-#define ACRN_MEM_TYPE_MASK 0x000007C0U
-#define ACRN_MEM_TYPE_WB 0x00000040U
-#define ACRN_MEM_TYPE_WT 0x00000080U
-#define ACRN_MEM_TYPE_UC 0x00000100U
-#define ACRN_MEM_TYPE_WC 0x00000200U
-#define ACRN_MEM_TYPE_WP 0x00000400U
-
-/* Memory mapping types */
-#define ACRN_MEMMAP_RAM 0
-#define ACRN_MEMMAP_MMIO 1
-
-/**
- * struct acrn_vm_memmap - A EPT memory mapping info for a User VM.
- * @type: Type of the memory mapping (ACRM_MEMMAP_*).
- * Pass to hypervisor directly.
- * @attr: Attribute of the memory mapping.
- * Pass to hypervisor directly.
- * @user_vm_pa: Physical address of User VM.
- * Pass to hypervisor directly.
- * @service_vm_pa: Physical address of Service VM.
- * Pass to hypervisor directly.
- * @vma_base: VMA address of Service VM. Pass to hypervisor directly.
- * @len: Length of the memory mapping.
- * Pass to hypervisor directly.
- */
-struct acrn_vm_memmap {
- __u32 type;
- __u32 attr;
- __u64 user_vm_pa;
- union {
- __u64 service_vm_pa;
- __u64 vma_base;
- };
- __u64 len;
-};
-
-/* Type of interrupt of a passthrough device */
-#define ACRN_PTDEV_IRQ_INTX 0
-#define ACRN_PTDEV_IRQ_MSI 1
-#define ACRN_PTDEV_IRQ_MSIX 2
-/**
- * struct acrn_ptdev_irq - Interrupt data of a passthrough device.
- * @type: Type (ACRN_PTDEV_IRQ_*)
- * @virt_bdf: Virtual Bus/Device/Function
- * @phys_bdf: Physical Bus/Device/Function
- * @intx: Info of interrupt
- * @intx.virt_pin: Virtual IOAPIC pin
- * @intx.phys_pin: Physical IOAPIC pin
- * @intx.is_pic_pin: Is PIC pin or not
- *
- * This structure will be passed to hypervisor directly.
- */
-struct acrn_ptdev_irq {
- __u32 type;
- __u16 virt_bdf;
- __u16 phys_bdf;
-
- struct {
- __u32 virt_pin;
- __u32 phys_pin;
- __u32 is_pic_pin;
- } intx;
-};
-
-/* Type of PCI device assignment */
-#define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0)
-
-#define ACRN_PCI_NUM_BARS 6
-/**
- * struct acrn_pcidev - Info for assigning or de-assigning a PCI device
- * @type: Type of the assignment
- * @virt_bdf: Virtual Bus/Device/Function
- * @phys_bdf: Physical Bus/Device/Function
- * @intr_line: PCI interrupt line
- * @intr_pin: PCI interrupt pin
- * @bar: PCI BARs.
- *
- * This structure will be passed to hypervisor directly.
- */
-struct acrn_pcidev {
- __u32 type;
- __u16 virt_bdf;
- __u16 phys_bdf;
- __u8 intr_line;
- __u8 intr_pin;
- __u32 bar[ACRN_PCI_NUM_BARS];
-};
-
-/**
- * struct acrn_msi_entry - Info for injecting a MSI interrupt to a VM
- * @msi_addr: MSI addr[19:12] with dest vCPU ID
- * @msi_data: MSI data[7:0] with vector
- */
-struct acrn_msi_entry {
- __u64 msi_addr;
- __u64 msi_data;
-};
-
-struct acrn_acpi_generic_address {
- __u8 space_id;
- __u8 bit_width;
- __u8 bit_offset;
- __u8 access_size;
- __u64 address;
-} __attribute__ ((__packed__));
-
-/**
- * struct acrn_cstate_data - A C state package defined in ACPI
- * @cx_reg: Register of the C state object
- * @type: Type of the C state object
- * @latency: The worst-case latency to enter and exit this C state
- * @power: The average power consumption when in this C state
- */
-struct acrn_cstate_data {
- struct acrn_acpi_generic_address cx_reg;
- __u8 type;
- __u32 latency;
- __u64 power;
-};
-
-/**
- * struct acrn_pstate_data - A P state package defined in ACPI
- * @core_frequency: CPU frequency (in MHz).
- * @power: Power dissipation (in milliwatts).
- * @transition_latency: The worst-case latency in microseconds that CPU is
- * unavailable during a transition from any P state to
- * this P state.
- * @bus_master_latency: The worst-case latency in microseconds that Bus Masters
- * are prevented from accessing memory during a transition
- * from any P state to this P state.
- * @control: The value to be written to Performance Control Register
- * @status: Transition status.
- */
-struct acrn_pstate_data {
- __u64 core_frequency;
- __u64 power;
- __u64 transition_latency;
- __u64 bus_master_latency;
- __u64 control;
- __u64 status;
-};
-
-#define PMCMD_TYPE_MASK 0x000000ff
-enum acrn_pm_cmd_type {
- ACRN_PMCMD_GET_PX_CNT,
- ACRN_PMCMD_GET_PX_DATA,
- ACRN_PMCMD_GET_CX_CNT,
- ACRN_PMCMD_GET_CX_DATA,
-};
-
-#define ACRN_IOEVENTFD_FLAG_PIO 0x01
-#define ACRN_IOEVENTFD_FLAG_DATAMATCH 0x02
-#define ACRN_IOEVENTFD_FLAG_DEASSIGN 0x04
-/**
- * struct acrn_ioeventfd - Data to operate a &struct hsm_ioeventfd
- * @fd: The fd of eventfd associated with a hsm_ioeventfd
- * @flags: Logical-OR of ACRN_IOEVENTFD_FLAG_*
- * @addr: The start address of IO range of ioeventfd
- * @len: The length of IO range of ioeventfd
- * @reserved: Reserved and should be 0
- * @data: Data for data matching
- *
- * Without flag ACRN_IOEVENTFD_FLAG_DEASSIGN, ioctl ACRN_IOCTL_IOEVENTFD
- * creates a &struct hsm_ioeventfd with properties originated from &struct
- * acrn_ioeventfd. With flag ACRN_IOEVENTFD_FLAG_DEASSIGN, ioctl
- * ACRN_IOCTL_IOEVENTFD destroys the &struct hsm_ioeventfd matching the fd.
- */
-struct acrn_ioeventfd {
- __u32 fd;
- __u32 flags;
- __u64 addr;
- __u32 len;
- __u32 reserved;
- __u64 data;
-};
-
-#define ACRN_IRQFD_FLAG_DEASSIGN 0x01
-/**
- * struct acrn_irqfd - Data to operate a &struct hsm_irqfd
- * @fd: The fd of eventfd associated with a hsm_irqfd
- * @flags: Logical-OR of ACRN_IRQFD_FLAG_*
- * @msi: Info of MSI associated with the irqfd
- */
-struct acrn_irqfd {
- __s32 fd;
- __u32 flags;
- struct acrn_msi_entry msi;
-};
-
-/* The ioctl type, documented in ioctl-number.rst */
-#define ACRN_IOCTL_TYPE 0xA2
-
-/*
- * Common IOCTL IDs definition for ACRN userspace
- */
-#define ACRN_IOCTL_CREATE_VM \
- _IOWR(ACRN_IOCTL_TYPE, 0x10, struct acrn_vm_creation)
-#define ACRN_IOCTL_DESTROY_VM \
- _IO(ACRN_IOCTL_TYPE, 0x11)
-#define ACRN_IOCTL_START_VM \
- _IO(ACRN_IOCTL_TYPE, 0x12)
-#define ACRN_IOCTL_PAUSE_VM \
- _IO(ACRN_IOCTL_TYPE, 0x13)
-#define ACRN_IOCTL_RESET_VM \
- _IO(ACRN_IOCTL_TYPE, 0x15)
-#define ACRN_IOCTL_SET_VCPU_REGS \
- _IOW(ACRN_IOCTL_TYPE, 0x16, struct acrn_vcpu_regs)
-
-#define ACRN_IOCTL_INJECT_MSI \
- _IOW(ACRN_IOCTL_TYPE, 0x23, struct acrn_msi_entry)
-#define ACRN_IOCTL_VM_INTR_MONITOR \
- _IOW(ACRN_IOCTL_TYPE, 0x24, unsigned long)
-#define ACRN_IOCTL_SET_IRQLINE \
- _IOW(ACRN_IOCTL_TYPE, 0x25, __u64)
-
-#define ACRN_IOCTL_NOTIFY_REQUEST_FINISH \
- _IOW(ACRN_IOCTL_TYPE, 0x31, struct acrn_ioreq_notify)
-#define ACRN_IOCTL_CREATE_IOREQ_CLIENT \
- _IO(ACRN_IOCTL_TYPE, 0x32)
-#define ACRN_IOCTL_ATTACH_IOREQ_CLIENT \
- _IO(ACRN_IOCTL_TYPE, 0x33)
-#define ACRN_IOCTL_DESTROY_IOREQ_CLIENT \
- _IO(ACRN_IOCTL_TYPE, 0x34)
-#define ACRN_IOCTL_CLEAR_VM_IOREQ \
- _IO(ACRN_IOCTL_TYPE, 0x35)
-
-#define ACRN_IOCTL_SET_MEMSEG \
- _IOW(ACRN_IOCTL_TYPE, 0x41, struct acrn_vm_memmap)
-#define ACRN_IOCTL_UNSET_MEMSEG \
- _IOW(ACRN_IOCTL_TYPE, 0x42, struct acrn_vm_memmap)
-
-#define ACRN_IOCTL_SET_PTDEV_INTR \
- _IOW(ACRN_IOCTL_TYPE, 0x53, struct acrn_ptdev_irq)
-#define ACRN_IOCTL_RESET_PTDEV_INTR \
- _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq)
-#define ACRN_IOCTL_ASSIGN_PCIDEV \
- _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
-#define ACRN_IOCTL_DEASSIGN_PCIDEV \
- _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
-
-#define ACRN_IOCTL_PM_GET_CPU_STATE \
- _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
-
-#define ACRN_IOCTL_IOEVENTFD \
- _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
-#define ACRN_IOCTL_IRQFD \
- _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
-
-#endif /* _UAPI_ACRN_H */
diff --git a/original/uapi/linux/android/binder.h b/original/uapi/linux/android/binder.h
index 8e5b929..11babae 100644
--- a/original/uapi/linux/android/binder.h
+++ b/original/uapi/linux/android/binder.h
@@ -296,7 +296,6 @@ enum transaction_flags {
TF_ROOT_OBJECT = 0x04, /* contents are the component's root object */
TF_STATUS_CODE = 0x08, /* contents are a 32-bit status code */
TF_ACCEPT_FDS = 0x10, /* allow replies with file descriptors */
- TF_CLEAR_BUF = 0x20, /* clear buffer on txn complete */
};
struct binder_transaction_data {
@@ -453,7 +452,7 @@ enum binder_driver_return_protocol {
BR_FAILED_REPLY = _IO('r', 17),
/*
- * The last transaction (either a bcTRANSACTION or
+ * The the last transaction (either a bcTRANSACTION or
* a bcATTEMPT_ACQUIRE) failed (e.g. out of memory). No parameters.
*/
};
diff --git a/original/uapi/linux/atmioc.h b/original/uapi/linux/atmioc.h
index a9030bc..cd7655e 100644
--- a/original/uapi/linux/atmioc.h
+++ b/original/uapi/linux/atmioc.h
@@ -5,7 +5,7 @@
/*
- * See https://icawww1.epfl.ch/linux-atm/magic.html for the complete list of
+ * See http://icawww1.epfl.ch/linux-atm/magic.html for the complete list of
* "magic" ioctl numbers.
*/
diff --git a/original/uapi/linux/audit.h b/original/uapi/linux/audit.h
index cd2d827..3ad9355 100644
--- a/original/uapi/linux/audit.h
+++ b/original/uapi/linux/audit.h
@@ -116,8 +116,6 @@
#define AUDIT_FANOTIFY 1331 /* Fanotify access decision */
#define AUDIT_TIME_INJOFFSET 1332 /* Timekeeping offset injected */
#define AUDIT_TIME_ADJNTPVAL 1333 /* NTP value adjustment */
-#define AUDIT_BPF 1334 /* BPF subsystem */
-#define AUDIT_EVENT_LISTENER 1335 /* Task joined multicast read socket */
#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */
#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */
@@ -333,15 +331,14 @@ enum {
};
/* Status symbols */
- /* Mask values */
-#define AUDIT_STATUS_ENABLED 0x0001
-#define AUDIT_STATUS_FAILURE 0x0002
-#define AUDIT_STATUS_PID 0x0004
+ /* Mask values */
+#define AUDIT_STATUS_ENABLED 0x0001
+#define AUDIT_STATUS_FAILURE 0x0002
+#define AUDIT_STATUS_PID 0x0004
#define AUDIT_STATUS_RATE_LIMIT 0x0008
-#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
-#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020
-#define AUDIT_STATUS_LOST 0x0040
-#define AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL 0x0080
+#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
+#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020
+#define AUDIT_STATUS_LOST 0x0040
#define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001
#define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002
@@ -468,9 +465,6 @@ struct audit_status {
__u32 feature_bitmap; /* bitmap of kernel audit features */
};
__u32 backlog_wait_time;/* message queue wait timeout */
- __u32 backlog_wait_time_actual;/* time spent waiting while
- * message limit exceeded
- */
};
struct audit_features {
diff --git a/original/uapi/linux/auto_dev-ioctl.h b/original/uapi/linux/auto_dev-ioctl.h
index 62e6253..3747426 100644
--- a/original/uapi/linux/auto_dev-ioctl.h
+++ b/original/uapi/linux/auto_dev-ioctl.h
@@ -82,7 +82,7 @@ struct args_ismountpoint {
/*
* All the ioctls use this structure.
* When sending a path size must account for the total length
- * of the chunk of memory otherwise it is the size of the
+ * of the chunk of memory otherwise is is the size of the
* structure.
*/
diff --git a/original/uapi/linux/b1lli.h b/original/uapi/linux/b1lli.h
new file mode 100644
index 0000000..4ae6ac9
--- /dev/null
+++ b/original/uapi/linux/b1lli.h
@@ -0,0 +1,74 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* $Id: b1lli.h,v 1.8.8.3 2001/09/23 22:25:05 kai Exp $
+ *
+ * ISDN lowlevel-module for AVM B1-card.
+ *
+ * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de)
+ *
+ * This software may be used and distributed according to the terms
+ * of the GNU General Public License, incorporated herein by reference.
+ *
+ */
+
+#ifndef _B1LLI_H_
+#define _B1LLI_H_
+/*
+ * struct for loading t4 file
+ */
+typedef struct avmb1_t4file {
+ int len;
+ unsigned char *data;
+} avmb1_t4file;
+
+typedef struct avmb1_loaddef {
+ int contr;
+ avmb1_t4file t4file;
+} avmb1_loaddef;
+
+typedef struct avmb1_loadandconfigdef {
+ int contr;
+ avmb1_t4file t4file;
+ avmb1_t4file t4config;
+} avmb1_loadandconfigdef;
+
+typedef struct avmb1_resetdef {
+ int contr;
+} avmb1_resetdef;
+
+typedef struct avmb1_getdef {
+ int contr;
+ int cardtype;
+ int cardstate;
+} avmb1_getdef;
+
+/*
+ * struct for adding new cards
+ */
+typedef struct avmb1_carddef {
+ int port;
+ int irq;
+} avmb1_carddef;
+
+#define AVM_CARDTYPE_B1 0
+#define AVM_CARDTYPE_T1 1
+#define AVM_CARDTYPE_M1 2
+#define AVM_CARDTYPE_M2 3
+
+typedef struct avmb1_extcarddef {
+ int port;
+ int irq;
+ int cardtype;
+ int cardnr; /* for HEMA/T1 */
+} avmb1_extcarddef;
+
+#define AVMB1_LOAD 0 /* load image to card */
+#define AVMB1_ADDCARD 1 /* add a new card - OBSOLETE */
+#define AVMB1_RESETCARD 2 /* reset a card */
+#define AVMB1_LOAD_AND_CONFIG 3 /* load image and config to card */
+#define AVMB1_ADDCARD_WITH_TYPE 4 /* add a new card, with cardtype */
+#define AVMB1_GET_CARDINFO 5 /* get cardtype */
+#define AVMB1_REMOVECARD 6 /* remove a card - OBSOLETE */
+
+#define AVMB1_REGISTERCARD_IS_OBSOLETE
+
+#endif /* _B1LLI_H_ */
diff --git a/original/uapi/linux/batadv_packet.h b/original/uapi/linux/batadv_packet.h
index ea4692c..2a15f01 100644
--- a/original/uapi/linux/batadv_packet.h
+++ b/original/uapi/linux/batadv_packet.h
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */
-/* Copyright (C) B.A.T.M.A.N. contributors:
+/* Copyright (C) 2007-2019 B.A.T.M.A.N. contributors:
*
* Marek Lindner, Simon Wunderlich
*/
@@ -72,8 +72,8 @@ enum batadv_subtype {
/**
* enum batadv_iv_flags - flags used in B.A.T.M.A.N. IV OGM packets
- * @BATADV_NOT_BEST_NEXT_HOP: flag is set when the ogm packet is forwarded and
- * was previously received from someone other than the best neighbor.
+ * @BATADV_NOT_BEST_NEXT_HOP: flag is set when ogm packet is forwarded and was
+ * previously received from someone else than the best neighbor.
* @BATADV_PRIMARIES_FIRST_HOP: flag unused.
* @BATADV_DIRECTLINK: flag is for the first hop or if rebroadcasted from a
* one hop neighbor on the interface where it was originally received.
@@ -195,8 +195,8 @@ struct batadv_bla_claim_dst {
/**
* struct batadv_ogm_packet - ogm (routing protocol) packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @flags: contains routing relevant flags - see enum batadv_iv_flags
* @seqno: sequence identification
* @orig: address of the source node
@@ -247,7 +247,7 @@ struct batadv_ogm2_packet {
/**
* struct batadv_elp_packet - elp (neighbor discovery) packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
* @orig: originator mac address
* @seqno: sequence number
* @elp_interval: currently used ELP sending interval in ms
@@ -265,15 +265,15 @@ struct batadv_elp_packet {
/**
* struct batadv_icmp_header - common members among all the ICMP packets
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @msg_type: ICMP packet type
* @dst: address of the destination node
* @orig: address of the source node
* @uid: local ICMP socket identifier
* @align: not used - useful for alignment purposes only
*
- * This structure is used for ICMP packet parsing only and it is never sent
+ * This structure is used for ICMP packets parsing only and it is never sent
* over the wire. The alignment field at the end is there to ensure that
* members are padded the same way as they are in real packets.
*/
@@ -291,8 +291,8 @@ struct batadv_icmp_header {
/**
* struct batadv_icmp_packet - ICMP packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @msg_type: ICMP packet type
* @dst: address of the destination node
* @orig: address of the source node
@@ -315,8 +315,8 @@ struct batadv_icmp_packet {
/**
* struct batadv_icmp_tp_packet - ICMP TP Meter packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @msg_type: ICMP packet type
* @dst: address of the destination node
* @orig: address of the source node
@@ -358,8 +358,8 @@ enum batadv_icmp_tp_subtype {
/**
* struct batadv_icmp_packet_rr - ICMP RouteRecord packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @msg_type: ICMP packet type
* @dst: address of the destination node
* @orig: address of the source node
@@ -397,8 +397,8 @@ struct batadv_icmp_packet_rr {
/**
* struct batadv_unicast_packet - unicast packet for network payload
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @ttvn: translation table version number
* @dest: originator destination of the unicast packet
*/
@@ -433,8 +433,8 @@ struct batadv_unicast_4addr_packet {
/**
* struct batadv_frag_packet - fragmented packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @dest: final destination used when routing fragments
* @orig: originator of the fragment used when merging the packet
* @no: fragment number within this sequence
@@ -467,8 +467,8 @@ struct batadv_frag_packet {
/**
* struct batadv_bcast_packet - broadcast packet for network payload
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @reserved: reserved byte for alignment
* @seqno: sequence identification
* @orig: originator of the broadcast packet
@@ -488,10 +488,10 @@ struct batadv_bcast_packet {
/**
* struct batadv_coded_packet - network coded packet
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @first_source: original source of first included packet
- * @first_orig_dest: original destination of first included packet
+ * @first_orig_dest: original destinal of first included packet
* @first_crc: checksum of first included packet
* @first_ttvn: tt-version number of first included packet
* @second_ttl: ttl of second packet
@@ -523,8 +523,8 @@ struct batadv_coded_packet {
/**
* struct batadv_unicast_tvlv_packet - generic unicast packet with tvlv payload
* @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the general header
- * @ttl: time to live for this packet, part of the general header
+ * @version: batman-adv protocol version, part of the genereal header
+ * @ttl: time to live for this packet, part of the genereal header
* @reserved: reserved field (for packet alignment)
* @src: address of the source
* @dst: address of the destination
diff --git a/original/uapi/linux/batman_adv.h b/original/uapi/linux/batman_adv.h
index 35dc016..67f4636 100644
--- a/original/uapi/linux/batman_adv.h
+++ b/original/uapi/linux/batman_adv.h
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: MIT */
-/* Copyright (C) B.A.T.M.A.N. contributors:
+/* Copyright (C) 2016-2019 B.A.T.M.A.N. contributors:
*
* Matthias Schiffer
*/
@@ -69,7 +69,7 @@ enum batadv_tt_client_flags {
/**
* @BATADV_TT_CLIENT_TEMP: this global client has been detected to be
- * part of the network but no node has already announced it
+ * part of the network but no nnode has already announced it
*/
BATADV_TT_CLIENT_TEMP = (1 << 11),
};
@@ -131,7 +131,7 @@ enum batadv_gw_modes {
/** @BATADV_GW_MODE_CLIENT: send DHCP requests to gw servers */
BATADV_GW_MODE_CLIENT,
- /** @BATADV_GW_MODE_SERVER: announce itself as gateway server */
+ /** @BATADV_GW_MODE_SERVER: announce itself as gatway server */
BATADV_GW_MODE_SERVER,
};
@@ -427,8 +427,7 @@ enum batadv_nl_attrs {
/**
* @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied
- * to an originator message's tq-field on every hop and/or per
- * hard interface
+ * to an originator message's tq-field on every hop.
*/
BATADV_ATTR_HOP_PENALTY,
@@ -675,30 +674,4 @@ enum batadv_tp_meter_reason {
BATADV_TP_REASON_TOO_MANY = 133,
};
-/**
- * enum batadv_ifla_attrs - batman-adv ifla nested attributes
- */
-enum batadv_ifla_attrs {
- /**
- * @IFLA_BATADV_UNSPEC: unspecified attribute which is not parsed by
- * rtnetlink
- */
- IFLA_BATADV_UNSPEC,
-
- /**
- * @IFLA_BATADV_ALGO_NAME: routing algorithm (name) which should be
- * used by the newly registered batadv net_device.
- */
- IFLA_BATADV_ALGO_NAME,
-
- /* add attributes above here, update the policy in soft-interface.c */
-
- /**
- * @__IFLA_BATADV_MAX: internal use
- */
- __IFLA_BATADV_MAX,
-};
-
-#define IFLA_BATADV_MAX (__IFLA_BATADV_MAX - 1)
-
#endif /* _UAPI_LINUX_BATMAN_ADV_H_ */
diff --git a/original/uapi/linux/bcache.h b/original/uapi/linux/bcache.h
index cf7399f..5d4f58e 100644
--- a/original/uapi/linux/bcache.h
+++ b/original/uapi/linux/bcache.h
@@ -141,16 +141,13 @@ static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys)
* Version 3: Cache device with new UUID format
* Version 4: Backing device with data offset
*/
-#define BCACHE_SB_VERSION_CDEV 0
-#define BCACHE_SB_VERSION_BDEV 1
-#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
-#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
-#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
-#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
-#define BCACHE_SB_MAX_VERSION 6
+#define BCACHE_SB_VERSION_CDEV 0
+#define BCACHE_SB_VERSION_BDEV 1
+#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
+#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
+#define BCACHE_SB_MAX_VERSION 4
#define SB_SECTOR 8
-#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT)
#define SB_SIZE 4096
#define SB_LABEL_SIZE 32
#define SB_JOURNAL_BUCKETS 256U
@@ -159,70 +156,8 @@ static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys)
#define BDEV_DATA_START_DEFAULT 16 /* sectors */
-struct cache_sb_disk {
- __le64 csum;
- __le64 offset; /* sector where this sb was written */
- __le64 version;
-
- __u8 magic[16];
-
- __u8 uuid[16];
- union {
- __u8 set_uuid[16];
- __le64 set_magic;
- };
- __u8 label[SB_LABEL_SIZE];
-
- __le64 flags;
- __le64 seq;
-
- __le64 feature_compat;
- __le64 feature_incompat;
- __le64 feature_ro_compat;
-
- __le64 pad[5];
-
- union {
- struct {
- /* Cache devices */
- __le64 nbuckets; /* device size */
-
- __le16 block_size; /* sectors */
- __le16 bucket_size; /* sectors */
-
- __le16 nr_in_set;
- __le16 nr_this_dev;
- };
- struct {
- /* Backing devices */
- __le64 data_offset;
-
- /*
- * block_size from the cache device section is still used by
- * backing devices, so don't add anything here until we fix
- * things to not need it for backing devices anymore
- */
- };
- };
-
- __le32 last_mount; /* time overflow in y2106 */
-
- __le16 first_bucket;
- union {
- __le16 njournal_buckets;
- __le16 keys;
- };
- __le64 d[SB_JOURNAL_BUCKETS]; /* journal buckets */
- __le16 obso_bucket_size_hi; /* obsoleted */
-};
-
-/*
- * This is for in-memory bcache super block.
- * NOTE: cache_sb is NOT exactly mapping to cache_sb_disk, the member
- * size, ordering and even whole struct size may be different
- * from cache_sb_disk.
- */
struct cache_sb {
+ __u64 csum;
__u64 offset; /* sector where this sb was written */
__u64 version;
@@ -237,10 +172,7 @@ struct cache_sb {
__u64 flags;
__u64 seq;
-
- __u64 feature_compat;
- __u64 feature_incompat;
- __u64 feature_ro_compat;
+ __u64 pad[8];
union {
struct {
@@ -248,9 +180,10 @@ struct cache_sb {
__u64 nbuckets; /* device size */
__u16 block_size; /* sectors */
+ __u16 bucket_size; /* sectors */
+
__u16 nr_in_set;
__u16 nr_this_dev;
- __u32 bucket_size; /* sectors */
};
struct {
/* Backing devices */
@@ -277,8 +210,7 @@ struct cache_sb {
static inline _Bool SB_IS_BDEV(const struct cache_sb *sb)
{
return sb->version == BCACHE_SB_VERSION_BDEV
- || sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET
- || sb->version == BCACHE_SB_VERSION_BDEV_WITH_FEATURES;
+ || sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET;
}
BITMASK(CACHE_SYNC, struct cache_sb, flags, 0, 1);
diff --git a/original/uapi/linux/binfmts.h b/original/uapi/linux/binfmts.h
index c6f9450..689025d 100644
--- a/original/uapi/linux/binfmts.h
+++ b/original/uapi/linux/binfmts.h
@@ -18,8 +18,4 @@ struct pt_regs;
/* sizeof(linux_binprm->buf) */
#define BINPRM_BUF_SIZE 256
-/* preserve argv0 for the interpreter */
-#define AT_FLAGS_PRESERVE_ARGV0_BIT 0
-#define AT_FLAGS_PRESERVE_ARGV0 (1 << AT_FLAGS_PRESERVE_ARGV0_BIT)
-
#endif /* _UAPI_LINUX_BINFMTS_H */
diff --git a/original/uapi/linux/blkpg.h b/original/uapi/linux/blkpg.h
index d0a64ee..ac6474e 100644
--- a/original/uapi/linux/blkpg.h
+++ b/original/uapi/linux/blkpg.h
@@ -2,6 +2,29 @@
#ifndef _UAPI__LINUX_BLKPG_H
#define _UAPI__LINUX_BLKPG_H
+/*
+ * Partition table and disk geometry handling
+ *
+ * A single ioctl with lots of subfunctions:
+ *
+ * Device number stuff:
+ * get_whole_disk() (given the device number of a partition,
+ * find the device number of the encompassing disk)
+ * get_all_partitions() (given the device number of a disk, return the
+ * device numbers of all its known partitions)
+ *
+ * Partition stuff:
+ * add_partition()
+ * delete_partition()
+ * test_partition_in_use() (also for test_disk_in_use)
+ *
+ * Geometry stuff:
+ * get_geometry()
+ * set_geometry()
+ * get_bios_drivedata()
+ *
+ * For today, only the partition stuff - aeb, 990515
+ */
#include <linux/compiler.h>
#include <linux/ioctl.h>
@@ -29,8 +52,9 @@ struct blkpg_partition {
long long start; /* starting offset in bytes */
long long length; /* length in bytes */
int pno; /* partition number */
- char devname[BLKPG_DEVNAMELTH]; /* unused / ignored */
- char volname[BLKPG_VOLNAMELTH]; /* unused / ignore */
+ char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2,
+ to be used in kernel messages */
+ char volname[BLKPG_VOLNAMELTH]; /* volume label */
};
#endif /* _UAPI__LINUX_BLKPG_H */
diff --git a/original/uapi/linux/blkzoned.h b/original/uapi/linux/blkzoned.h
index 656a326..0cdef67 100644
--- a/original/uapi/linux/blkzoned.h
+++ b/original/uapi/linux/blkzoned.h
@@ -74,15 +74,6 @@ enum blk_zone_cond {
};
/**
- * enum blk_zone_report_flags - Feature flags of reported zone descriptors.
- *
- * @BLK_ZONE_REP_CAPACITY: Zone descriptor has capacity field.
- */
-enum blk_zone_report_flags {
- BLK_ZONE_REP_CAPACITY = (1 << 0),
-};
-
-/**
* struct blk_zone - Zone descriptor for BLKREPORTZONE ioctl.
*
* @start: Zone start in 512 B sector units
@@ -93,15 +84,12 @@ enum blk_zone_report_flags {
* @non_seq: Flag indicating that the zone is using non-sequential resources
* (for host-aware zoned block devices only).
* @reset: Flag indicating that a zone reset is recommended.
- * @resv: Padding for 8B alignment.
- * @capacity: Zone usable capacity in 512 B sector units
- * @reserved: Padding to 64 B to match the ZBC, ZAC and ZNS defined zone
- * descriptor size.
+ * @reserved: Padding to 64 B to match the ZBC/ZAC defined zone descriptor size.
*
- * start, len, capacity and wp use the regular 512 B sector unit, regardless
- * of the device logical block size. The overall structure size is 64 B to
- * match the ZBC, ZAC and ZNS defined zone descriptor and allow support for
- * future additional zone information.
+ * start, len and wp use the regular 512 B sector unit, regardless of the
+ * device logical block size. The overall structure size is 64 B to match the
+ * ZBC/ZAC defined zone descriptor and allow support for future additional
+ * zone information.
*/
struct blk_zone {
__u64 start; /* Zone start sector */
@@ -111,9 +99,7 @@ struct blk_zone {
__u8 cond; /* Zone condition */
__u8 non_seq; /* Non-sequential write resources active */
__u8 reset; /* Reset write pointer recommended */
- __u8 resv[4];
- __u64 capacity; /* Zone capacity in number of sectors */
- __u8 reserved[24];
+ __u8 reserved[36];
};
/**
@@ -121,7 +107,7 @@ struct blk_zone {
*
* @sector: starting sector of report
* @nr_zones: IN maximum / OUT actual
- * @flags: one or more flags as defined by enum blk_zone_report_flags.
+ * @reserved: padding to 16 byte alignment
* @zones: Space to hold @nr_zones @zones entries on reply.
*
* The array of at most @nr_zones must follow this structure in memory.
@@ -129,7 +115,7 @@ struct blk_zone {
struct blk_zone_report {
__u64 sector;
__u32 nr_zones;
- __u32 flags;
+ __u8 reserved[4];
struct blk_zone zones[0];
};
diff --git a/original/uapi/linux/bpf.h b/original/uapi/linux/bpf.h
index 4ba4ef0..dbbcf0b 100644
--- a/original/uapi/linux/bpf.h
+++ b/original/uapi/linux/bpf.h
@@ -19,8 +19,7 @@
/* ld/ldx fields */
#define BPF_DW 0x18 /* double word (64-bit) */
-#define BPF_ATOMIC 0xc0 /* atomic memory ops - op type in immediate */
-#define BPF_XADD 0xc0 /* exclusive add - legacy name */
+#define BPF_XADD 0xc0 /* exclusive add */
/* alu/jmp fields */
#define BPF_MOV 0xb0 /* mov reg to reg */
@@ -44,11 +43,6 @@
#define BPF_CALL 0x80 /* function call */
#define BPF_EXIT 0x90 /* function return */
-/* atomic op type fields (stored in immediate) */
-#define BPF_FETCH 0x01 /* not an opcode on its own, used to build others */
-#define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */
-#define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
-
/* Register numbers */
enum {
BPF_REG_0 = 0,
@@ -87,12 +81,6 @@ struct bpf_cgroup_storage_key {
__u32 attach_type; /* program attach type */
};
-union bpf_iter_link_info {
- struct {
- __u32 map_fd;
- } map;
-};
-
/* BPF syscall commands, see bpf(2) man-page for details. */
enum bpf_cmd {
BPF_MAP_CREATE,
@@ -119,18 +107,6 @@ enum bpf_cmd {
BPF_MAP_LOOKUP_AND_DELETE_ELEM,
BPF_MAP_FREEZE,
BPF_BTF_GET_NEXT_ID,
- BPF_MAP_LOOKUP_BATCH,
- BPF_MAP_LOOKUP_AND_DELETE_BATCH,
- BPF_MAP_UPDATE_BATCH,
- BPF_MAP_DELETE_BATCH,
- BPF_LINK_CREATE,
- BPF_LINK_UPDATE,
- BPF_LINK_GET_FD_BY_ID,
- BPF_LINK_GET_NEXT_ID,
- BPF_ENABLE_STATS,
- BPF_ITER_CREATE,
- BPF_LINK_DETACH,
- BPF_PROG_BIND_MAP,
};
enum bpf_map_type {
@@ -160,10 +136,6 @@ enum bpf_map_type {
BPF_MAP_TYPE_STACK,
BPF_MAP_TYPE_SK_STORAGE,
BPF_MAP_TYPE_DEVMAP_HASH,
- BPF_MAP_TYPE_STRUCT_OPS,
- BPF_MAP_TYPE_RINGBUF,
- BPF_MAP_TYPE_INODE_STORAGE,
- BPF_MAP_TYPE_TASK_STORAGE,
};
/* Note that tracing related programs such as
@@ -202,10 +174,6 @@ enum bpf_prog_type {
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
BPF_PROG_TYPE_CGROUP_SOCKOPT,
BPF_PROG_TYPE_TRACING,
- BPF_PROG_TYPE_STRUCT_OPS,
- BPF_PROG_TYPE_EXT,
- BPF_PROG_TYPE_LSM,
- BPF_PROG_TYPE_SK_LOOKUP,
};
enum bpf_attach_type {
@@ -235,35 +203,11 @@ enum bpf_attach_type {
BPF_TRACE_RAW_TP,
BPF_TRACE_FENTRY,
BPF_TRACE_FEXIT,
- BPF_MODIFY_RETURN,
- BPF_LSM_MAC,
- BPF_TRACE_ITER,
- BPF_CGROUP_INET4_GETPEERNAME,
- BPF_CGROUP_INET6_GETPEERNAME,
- BPF_CGROUP_INET4_GETSOCKNAME,
- BPF_CGROUP_INET6_GETSOCKNAME,
- BPF_XDP_DEVMAP,
- BPF_CGROUP_INET_SOCK_RELEASE,
- BPF_XDP_CPUMAP,
- BPF_SK_LOOKUP,
- BPF_XDP,
__MAX_BPF_ATTACH_TYPE
};
#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
-enum bpf_link_type {
- BPF_LINK_TYPE_UNSPEC = 0,
- BPF_LINK_TYPE_RAW_TRACEPOINT = 1,
- BPF_LINK_TYPE_TRACING = 2,
- BPF_LINK_TYPE_CGROUP = 3,
- BPF_LINK_TYPE_ITER = 4,
- BPF_LINK_TYPE_NETNS = 5,
- BPF_LINK_TYPE_XDP = 6,
-
- MAX_BPF_LINK_TYPE,
-};
-
/* cgroup-bpf attach flags used in BPF_PROG_ATTACH command
*
* NONE(default): No further bpf programs allowed in the subtree.
@@ -287,11 +231,6 @@ enum bpf_link_type {
* When children program makes decision (like picking TCP CA or sock bind)
* parent program has a chance to override it.
*
- * With BPF_F_ALLOW_MULTI a new program is added to the end of the list of
- * programs for a cgroup. Though it's possible to replace an old program at
- * any position by also specifying BPF_F_REPLACE flag and position itself in
- * replace_bpf_fd attribute. Old program at this position will be released.
- *
* A cgroup with MULTI or OVERRIDE flag allows any attach flags in sub-cgroups.
* A cgroup with NONE doesn't allow any programs in sub-cgroups.
* Ex1:
@@ -310,7 +249,6 @@ enum bpf_link_type {
*/
#define BPF_F_ALLOW_OVERRIDE (1U << 0)
#define BPF_F_ALLOW_MULTI (1U << 1)
-#define BPF_F_REPLACE (1U << 2)
/* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
* verifier will perform strict alignment checking as if the kernel
@@ -354,45 +292,19 @@ enum bpf_link_type {
/* The verifier internal test flag. Behavior is undefined */
#define BPF_F_TEST_STATE_FREQ (1U << 3)
-/* If BPF_F_SLEEPABLE is used in BPF_PROG_LOAD command, the verifier will
- * restrict map and helper usage for such programs. Sleepable BPF programs can
- * only be attached to hooks where kernel execution context allows sleeping.
- * Such programs are allowed to use helpers that may sleep like
- * bpf_copy_from_user().
- */
-#define BPF_F_SLEEPABLE (1U << 4)
-
/* When BPF ldimm64's insn[0].src_reg != 0 then this can have
- * the following extensions:
- *
- * insn[0].src_reg: BPF_PSEUDO_MAP_FD
- * insn[0].imm: map fd
- * insn[1].imm: 0
- * insn[0].off: 0
- * insn[1].off: 0
- * ldimm64 rewrite: address of map
- * verifier type: CONST_PTR_TO_MAP
+ * two extensions:
+ *
+ * insn[0].src_reg: BPF_PSEUDO_MAP_FD BPF_PSEUDO_MAP_VALUE
+ * insn[0].imm: map fd map fd
+ * insn[1].imm: 0 offset into value
+ * insn[0].off: 0 0
+ * insn[1].off: 0 0
+ * ldimm64 rewrite: address of map address of map[0]+offset
+ * verifier type: CONST_PTR_TO_MAP PTR_TO_MAP_VALUE
*/
#define BPF_PSEUDO_MAP_FD 1
-/* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE
- * insn[0].imm: map fd
- * insn[1].imm: offset into value
- * insn[0].off: 0
- * insn[1].off: 0
- * ldimm64 rewrite: address of map[0]+offset
- * verifier type: PTR_TO_MAP_VALUE
- */
#define BPF_PSEUDO_MAP_VALUE 2
-/* insn[0].src_reg: BPF_PSEUDO_BTF_ID
- * insn[0].imm: kernel btd id of VAR
- * insn[1].imm: 0
- * insn[0].off: 0
- * insn[1].off: 0
- * ldimm64 rewrite: address of the kernel variable
- * verifier type: PTR_TO_BTF_ID or PTR_TO_MEM, depending on whether the var
- * is struct/union.
- */
-#define BPF_PSEUDO_BTF_ID 3
/* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative
* offset to another bpf function
@@ -400,72 +312,48 @@ enum bpf_link_type {
#define BPF_PSEUDO_CALL 1
/* flags for BPF_MAP_UPDATE_ELEM command */
-enum {
- BPF_ANY = 0, /* create new element or update existing */
- BPF_NOEXIST = 1, /* create new element if it didn't exist */
- BPF_EXIST = 2, /* update existing element */
- BPF_F_LOCK = 4, /* spin_lock-ed map_lookup/map_update */
-};
+#define BPF_ANY 0 /* create new element or update existing */
+#define BPF_NOEXIST 1 /* create new element if it didn't exist */
+#define BPF_EXIST 2 /* update existing element */
+#define BPF_F_LOCK 4 /* spin_lock-ed map_lookup/map_update */
/* flags for BPF_MAP_CREATE command */
-enum {
- BPF_F_NO_PREALLOC = (1U << 0),
+#define BPF_F_NO_PREALLOC (1U << 0)
/* Instead of having one common LRU list in the
* BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list
* which can scale and perform better.
* Note, the LRU nodes (including free nodes) cannot be moved
* across different LRU lists.
*/
- BPF_F_NO_COMMON_LRU = (1U << 1),
+#define BPF_F_NO_COMMON_LRU (1U << 1)
/* Specify numa node during map creation */
- BPF_F_NUMA_NODE = (1U << 2),
+#define BPF_F_NUMA_NODE (1U << 2)
+
+#define BPF_OBJ_NAME_LEN 16U
/* Flags for accessing BPF object from syscall side. */
- BPF_F_RDONLY = (1U << 3),
- BPF_F_WRONLY = (1U << 4),
+#define BPF_F_RDONLY (1U << 3)
+#define BPF_F_WRONLY (1U << 4)
/* Flag for stack_map, store build_id+offset instead of pointer */
- BPF_F_STACK_BUILD_ID = (1U << 5),
+#define BPF_F_STACK_BUILD_ID (1U << 5)
/* Zero-initialize hash function seed. This should only be used for testing. */
- BPF_F_ZERO_SEED = (1U << 6),
+#define BPF_F_ZERO_SEED (1U << 6)
/* Flags for accessing BPF object from program side. */
- BPF_F_RDONLY_PROG = (1U << 7),
- BPF_F_WRONLY_PROG = (1U << 8),
+#define BPF_F_RDONLY_PROG (1U << 7)
+#define BPF_F_WRONLY_PROG (1U << 8)
/* Clone map from listener for newly accepted socket */
- BPF_F_CLONE = (1U << 9),
+#define BPF_F_CLONE (1U << 9)
/* Enable memory-mapping BPF map */
- BPF_F_MMAPABLE = (1U << 10),
-
-/* Share perf_event among processes */
- BPF_F_PRESERVE_ELEMS = (1U << 11),
-
-/* Create a map that is suitable to be an inner map with dynamic max entries */
- BPF_F_INNER_MAP = (1U << 12),
-};
+#define BPF_F_MMAPABLE (1U << 10)
-/* Flags for BPF_PROG_QUERY. */
-
-/* Query effective (directly attached + inherited from ancestor cgroups)
- * programs that will be executed for events within a cgroup.
- * attach_flags with this flag are returned only for directly attached programs.
- */
+/* flags for BPF_PROG_QUERY */
#define BPF_F_QUERY_EFFECTIVE (1U << 0)
-/* Flags for BPF_PROG_TEST_RUN */
-
-/* If set, run the test on the cpu specified by bpf_attr.test.cpu */
-#define BPF_F_TEST_RUN_ON_CPU (1U << 0)
-
-/* type for BPF_ENABLE_STATS */
-enum bpf_stats_type {
- /* enabled run_time_ns and run_cnt */
- BPF_STATS_RUN_TIME = 0,
-};
-
enum bpf_stack_build_id_status {
/* user space need an empty entry to identify end of a trace */
BPF_STACK_BUILD_ID_EMPTY = 0,
@@ -485,8 +373,6 @@ struct bpf_stack_build_id {
};
};
-#define BPF_OBJ_NAME_LEN 16U
-
union bpf_attr {
struct { /* anonymous struct used by BPF_MAP_CREATE command */
__u32 map_type; /* one of enum bpf_map_type */
@@ -505,10 +391,6 @@ union bpf_attr {
__u32 btf_fd; /* fd pointing to a BTF type data */
__u32 btf_key_type_id; /* BTF type_id of the key */
__u32 btf_value_type_id; /* BTF type_id of the value */
- __u32 btf_vmlinux_value_type_id;/* BTF type_id of a kernel-
- * struct stored as the
- * map value
- */
};
struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
@@ -521,23 +403,6 @@ union bpf_attr {
__u64 flags;
};
- struct { /* struct used by BPF_MAP_*_BATCH commands */
- __aligned_u64 in_batch; /* start batch,
- * NULL to start from beginning
- */
- __aligned_u64 out_batch; /* output: next start batch */
- __aligned_u64 keys;
- __aligned_u64 values;
- __u32 count; /* input/output:
- * input: # of key/value
- * elements
- * output: # of filled elements
- */
- __u32 map_fd;
- __u64 elem_flags;
- __u64 flags;
- } batch;
-
struct { /* anonymous struct used by BPF_PROG_LOAD command */
__u32 prog_type; /* one of enum bpf_prog_type */
__u32 insn_cnt;
@@ -563,12 +428,7 @@ union bpf_attr {
__aligned_u64 line_info; /* line info */
__u32 line_info_cnt; /* number of bpf_line_info records */
__u32 attach_btf_id; /* in-kernel BTF type id to attach to */
- union {
- /* valid prog_fd to attach to bpf prog */
- __u32 attach_prog_fd;
- /* or valid module BTF object fd or 0 to attach to vmlinux */
- __u32 attach_btf_obj_fd;
- };
+ __u32 attach_prog_fd; /* 0 to attach to vmlinux */
};
struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -582,10 +442,6 @@ union bpf_attr {
__u32 attach_bpf_fd; /* eBPF program to attach */
__u32 attach_type;
__u32 attach_flags;
- __u32 replace_bpf_fd; /* previously attached eBPF
- * program to replace if
- * BPF_F_REPLACE is used
- */
};
struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
@@ -607,8 +463,6 @@ union bpf_attr {
*/
__aligned_u64 ctx_in;
__aligned_u64 ctx_out;
- __u32 flags;
- __u32 cpu;
} test;
struct { /* anonymous struct used by BPF_*_GET_*_ID */
@@ -617,7 +471,6 @@ union bpf_attr {
__u32 prog_id;
__u32 map_id;
__u32 btf_id;
- __u32 link_id;
};
__u32 next_id;
__u32 open_flags;
@@ -638,7 +491,7 @@ union bpf_attr {
__u32 prog_cnt;
} query;
- struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
+ struct {
__u64 name;
__u32 prog_fd;
} raw_tracepoint;
@@ -666,53 +519,6 @@ union bpf_attr {
__u64 probe_offset; /* output: probe_offset */
__u64 probe_addr; /* output: probe_addr */
} task_fd_query;
-
- struct { /* struct used by BPF_LINK_CREATE command */
- __u32 prog_fd; /* eBPF program to attach */
- union {
- __u32 target_fd; /* object to attach to */
- __u32 target_ifindex; /* target ifindex */
- };
- __u32 attach_type; /* attach type */
- __u32 flags; /* extra flags */
- union {
- __u32 target_btf_id; /* btf_id of target to attach to */
- struct {
- __aligned_u64 iter_info; /* extra bpf_iter_link_info */
- __u32 iter_info_len; /* iter_info length */
- };
- };
- } link_create;
-
- struct { /* struct used by BPF_LINK_UPDATE command */
- __u32 link_fd; /* link fd */
- /* new program fd to update link with */
- __u32 new_prog_fd;
- __u32 flags; /* extra flags */
- /* expected link's program fd; is specified only if
- * BPF_F_REPLACE flag is set in flags */
- __u32 old_prog_fd;
- } link_update;
-
- struct {
- __u32 link_fd;
- } link_detach;
-
- struct { /* struct used by BPF_ENABLE_STATS command */
- __u32 type;
- } enable_stats;
-
- struct { /* struct used by BPF_ITER_CREATE command */
- __u32 link_fd;
- __u32 flags;
- } iter_create;
-
- struct { /* struct used by BPF_PROG_BIND_MAP command */
- __u32 prog_fd;
- __u32 map_fd;
- __u32 flags; /* extra flags */
- } prog_bind_map;
-
} __attribute__((aligned(8)));
/* The description below is an attempt at providing documentation to eBPF
@@ -739,7 +545,7 @@ union bpf_attr {
* Map value associated to *key*, or **NULL** if no entry was
* found.
*
- * long bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
+ * int bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
* Description
* Add or update the value of the entry associated to *key* in
* *map* with *value*. *flags* is one of:
@@ -757,31 +563,29 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_map_delete_elem(struct bpf_map *map, const void *key)
+ * int bpf_map_delete_elem(struct bpf_map *map, const void *key)
* Description
* Delete entry with *key* from *map*.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
+ * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
* Description
* For tracing programs, safely attempt to read *size* bytes from
* kernel space address *unsafe_ptr* and store the data in *dst*.
*
- * Generally, use **bpf_probe_read_user**\ () or
- * **bpf_probe_read_kernel**\ () instead.
+ * Generally, use bpf_probe_read_user() or bpf_probe_read_kernel()
+ * instead.
* Return
* 0 on success, or a negative error in case of failure.
*
* u64 bpf_ktime_get_ns(void)
* Description
* Return the time elapsed since system boot, in nanoseconds.
- * Does not include time the system was suspended.
- * See: **clock_gettime**\ (**CLOCK_MONOTONIC**)
* Return
* Current *ktime*.
*
- * long bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
+ * int bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
* Description
* This helper is a "printk()-like" facility for debugging. It
* prints a message defined by format *fmt* (of size *fmt_size*)
@@ -831,7 +635,7 @@ union bpf_attr {
*
* Also, note that **bpf_trace_printk**\ () is slow, and should
* only be used for debugging purposes. For this reason, a notice
- * block (spanning several lines) is printed to kernel logs and
+ * bloc (spanning several lines) is printed to kernel logs and
* states that the helper should not be used "for production use"
* the first time this helper is used (or more precisely, when
* **trace_printk**\ () buffers are allocated). For passing values
@@ -861,7 +665,7 @@ union bpf_attr {
* Return
* The SMP id of the processor running the program.
*
- * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
+ * int bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
* Description
* Store *len* bytes from address *from* into the packet
* associated to *skb*, at *offset*. *flags* are a combination of
@@ -878,7 +682,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size)
+ * int bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size)
* Description
* Recompute the layer 3 (e.g. IP) checksum for the packet
* associated to *skb*. Computation is incremental, so the helper
@@ -903,7 +707,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags)
+ * int bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags)
* Description
* Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the
* packet associated to *skb*. Computation is incremental, so the
@@ -935,7 +739,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index)
+ * int bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index)
* Description
* This special helper is used to trigger a "tail call", or in
* other words, to jump into another eBPF program. The same stack
@@ -966,7 +770,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags)
+ * int bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags)
* Description
* Clone and redirect the packet associated to *skb* to another
* net device of index *ifindex*. Both ingress and egress
@@ -1002,7 +806,7 @@ union bpf_attr {
* A 64-bit integer containing the current GID and UID, and
* created as such: *current_gid* **<< 32 \|** *current_uid*.
*
- * long bpf_get_current_comm(void *buf, u32 size_of_buf)
+ * int bpf_get_current_comm(void *buf, u32 size_of_buf)
* Description
* Copy the **comm** attribute of the current task into *buf* of
* *size_of_buf*. The **comm** attribute contains the name of
@@ -1039,7 +843,7 @@ union bpf_attr {
* Return
* The classid, or 0 for the default unconfigured classid.
*
- * long bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
+ * int bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
* Description
* Push a *vlan_tci* (VLAN tag control information) of protocol
* *vlan_proto* to the packet associated to *skb*, then update
@@ -1055,7 +859,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_vlan_pop(struct sk_buff *skb)
+ * int bpf_skb_vlan_pop(struct sk_buff *skb)
* Description
* Pop a VLAN header from the packet associated to *skb*.
*
@@ -1067,7 +871,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
+ * int bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
* Description
* Get tunnel metadata. This helper takes a pointer *key* to an
* empty **struct bpf_tunnel_key** of **size**, that will be
@@ -1097,14 +901,14 @@ union bpf_attr {
*
* int ret;
* struct bpf_tunnel_key key = {};
- *
+ *
* ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key), 0);
* if (ret < 0)
* return TC_ACT_SHOT; // drop packet
- *
+ *
* if (key.remote_ipv4 != 0x0a000001)
* return TC_ACT_SHOT; // drop packet
- *
+ *
* return TC_ACT_OK; // accept packet
*
* This interface can also be used with all encapsulation devices
@@ -1118,7 +922,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
+ * int bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
* Description
* Populate tunnel metadata for packet associated to *skb.* The
* tunnel metadata is set to the contents of *key*, of *size*. The
@@ -1184,7 +988,7 @@ union bpf_attr {
* The value of the perf event counter read from the map, or a
* negative error code in case of failure.
*
- * long bpf_redirect(u32 ifindex, u64 flags)
+ * int bpf_redirect(u32 ifindex, u64 flags)
* Description
* Redirect the packet to another net device of index *ifindex*.
* This helper is somewhat similar to **bpf_clone_redirect**\
@@ -1198,9 +1002,9 @@ union bpf_attr {
* supports redirection to the egress interface, and accepts no
* flag at all.
*
- * The same effect can also be attained with the more generic
- * **bpf_redirect_map**\ (), which uses a BPF map to store the
- * redirect target instead of providing it directly to the helper.
+ * The same effect can be attained with the more generic
+ * **bpf_redirect_map**\ (), which requires specific maps to be
+ * used but offers better performance.
* Return
* For XDP, the helper returns **XDP_REDIRECT** on success or
* **XDP_ABORTED** on error. For other program types, the values
@@ -1211,7 +1015,7 @@ union bpf_attr {
* Description
* Retrieve the realm or the route, that is to say the
* **tclassid** field of the destination for the *skb*. The
- * identifier retrieved is a user-provided tag, similar to the
+ * indentifier retrieved is a user-provided tag, similar to the
* one used with the net_cls cgroup (see description for
* **bpf_get_cgroup_classid**\ () helper), but here this tag is
* held by a route (a destination entry), not by a task.
@@ -1231,7 +1035,7 @@ union bpf_attr {
* The realm of the route for the packet associated to *skb*, or 0
* if none was found.
*
- * long bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
* Description
* Write raw *data* blob into a special BPF perf event held by
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -1276,7 +1080,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
+ * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
* Description
* This helper was provided as an easy way to load data from a
* packet. It can be used to load *len* bytes from *offset* from
@@ -1293,7 +1097,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
+ * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
* Description
* Walk a user or a kernel stack and return its id. To achieve
* this, the helper needs *ctx*, which is a pointer to the context
@@ -1362,7 +1166,7 @@ union bpf_attr {
* The checksum result, or a negative error code in case of
* failure.
*
- * long bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
+ * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
* Description
* Retrieve tunnel options metadata for the packet associated to
* *skb*, and store the raw tunnel option data to the buffer *opt*
@@ -1380,7 +1184,7 @@ union bpf_attr {
* Return
* The size of the option data retrieved.
*
- * long bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
+ * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
* Description
* Set tunnel options metadata for the packet associated to *skb*
* to the option data contained in the raw buffer *opt* of *size*.
@@ -1390,7 +1194,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags)
+ * int bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags)
* Description
* Change the protocol of the *skb* to *proto*. Currently
* supported are transition from IPv4 to IPv6, and from IPv6 to
@@ -1417,7 +1221,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_change_type(struct sk_buff *skb, u32 type)
+ * int bpf_skb_change_type(struct sk_buff *skb, u32 type)
* Description
* Change the packet type for the packet associated to *skb*. This
* comes down to setting *skb*\ **->pkt_type** to *type*, except
@@ -1444,7 +1248,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index)
+ * int bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index)
* Description
* Check whether *skb* is a descendant of the cgroup2 held by
* *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*.
@@ -1475,7 +1279,7 @@ union bpf_attr {
* Return
* A pointer to the current task struct.
*
- * long bpf_probe_write_user(void *dst, const void *src, u32 len)
+ * int bpf_probe_write_user(void *dst, const void *src, u32 len)
* Description
* Attempt in a safe way to write *len* bytes from the buffer
* *src* to *dst* in memory. It only works for threads that are in
@@ -1494,7 +1298,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_current_task_under_cgroup(struct bpf_map *map, u32 index)
+ * int bpf_current_task_under_cgroup(struct bpf_map *map, u32 index)
* Description
* Check whether the probe is being run is the context of a given
* subset of the cgroup2 hierarchy. The cgroup2 to test is held by
@@ -1502,11 +1306,11 @@ union bpf_attr {
* Return
* The return value depends on the result of the test, and can be:
*
- * * 0, if current task belongs to the cgroup2.
- * * 1, if current task does not belong to the cgroup2.
+ * * 0, if the *skb* task belongs to the cgroup2.
+ * * 1, if the *skb* task does not belong to the cgroup2.
* * A negative error code, if an error occurred.
*
- * long bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
+ * int bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
* Description
* Resize (trim or grow) the packet associated to *skb* to the
* new *len*. The *flags* are reserved for future usage, and must
@@ -1530,7 +1334,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_pull_data(struct sk_buff *skb, u32 len)
+ * int bpf_skb_pull_data(struct sk_buff *skb, u32 len)
* Description
* Pull in non-linear data in case the *skb* is non-linear and not
* all of *len* are part of the linear section. Make *len* bytes
@@ -1586,7 +1390,7 @@ union bpf_attr {
* recalculation the next time the kernel tries to access this
* hash or when the **bpf_get_hash_recalc**\ () helper is called.
*
- * long bpf_get_numa_node_id(void)
+ * int bpf_get_numa_node_id(void)
* Description
* Return the id of the current NUMA node. The primary use case
* for this helper is the selection of sockets for the local NUMA
@@ -1597,7 +1401,7 @@ union bpf_attr {
* Return
* The id of current NUMA node.
*
- * long bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags)
+ * int bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags)
* Description
* Grows headroom of packet associated to *skb* and adjusts the
* offset of the MAC header accordingly, adding *len* bytes of
@@ -1618,7 +1422,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta)
+ * int bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta)
* Description
* Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that
* it is possible to use a negative value for *delta*. This helper
@@ -1633,14 +1437,14 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
+ * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
* Description
* Copy a NUL terminated string from an unsafe kernel address
- * *unsafe_ptr* to *dst*. See **bpf_probe_read_kernel_str**\ () for
+ * *unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for
* more details.
*
- * Generally, use **bpf_probe_read_user_str**\ () or
- * **bpf_probe_read_kernel_str**\ () instead.
+ * Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str()
+ * instead.
* Return
* On success, the strictly positive length of the string,
* including the trailing NUL character. On error, a negative
@@ -1656,30 +1460,22 @@ union bpf_attr {
* networking traffic statistics as it provides a global socket
* identifier that can be assumed unique.
* Return
- * A 8-byte long unique number on success, or 0 if the socket
- * field is missing inside *skb*.
+ * A 8-byte long non-decreasing number on success, or 0 if the
+ * socket field is missing inside *skb*.
*
* u64 bpf_get_socket_cookie(struct bpf_sock_addr *ctx)
* Description
* Equivalent to bpf_get_socket_cookie() helper that accepts
* *skb*, but gets socket from **struct bpf_sock_addr** context.
* Return
- * A 8-byte long unique number.
+ * A 8-byte long non-decreasing number.
*
* u64 bpf_get_socket_cookie(struct bpf_sock_ops *ctx)
* Description
- * Equivalent to **bpf_get_socket_cookie**\ () helper that accepts
+ * Equivalent to bpf_get_socket_cookie() helper that accepts
* *skb*, but gets socket from **struct bpf_sock_ops** context.
* Return
- * A 8-byte long unique number.
- *
- * u64 bpf_get_socket_cookie(struct sock *sk)
- * Description
- * Equivalent to **bpf_get_socket_cookie**\ () helper that accepts
- * *sk*, but gets socket from a BTF **struct sock**. This helper
- * also works for sleepable programs.
- * Return
- * A 8-byte long unique number or 0 if *sk* is NULL.
+ * A 8-byte long non-decreasing number.
*
* u32 bpf_get_socket_uid(struct sk_buff *skb)
* Return
@@ -1689,14 +1485,14 @@ union bpf_attr {
* is returned (note that **overflowuid** might also be the actual
* UID value for the socket).
*
- * long bpf_set_hash(struct sk_buff *skb, u32 hash)
+ * u32 bpf_set_hash(struct sk_buff *skb, u32 hash)
* Description
* Set the full hash for *skb* (set the field *skb*\ **->hash**)
* to value *hash*.
* Return
* 0
*
- * long bpf_setsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
+ * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
* Description
* Emulate a call to **setsockopt()** on the socket associated to
* *bpf_socket*, which must be a full socket. The *level* at
@@ -1704,41 +1500,25 @@ union bpf_attr {
* must be specified, see **setsockopt(2)** for more information.
* The option value of length *optlen* is pointed by *optval*.
*
- * *bpf_socket* should be one of the following:
- *
- * * **struct bpf_sock_ops** for **BPF_PROG_TYPE_SOCK_OPS**.
- * * **struct bpf_sock_addr** for **BPF_CGROUP_INET4_CONNECT**
- * and **BPF_CGROUP_INET6_CONNECT**.
- *
* This helper actually implements a subset of **setsockopt()**.
* It supports the following *level*\ s:
*
* * **SOL_SOCKET**, which supports the following *optname*\ s:
* **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**,
- * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**,
- * **SO_BINDTODEVICE**, **SO_KEEPALIVE**.
+ * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**.
* * **IPPROTO_TCP**, which supports the following *optname*\ s:
* **TCP_CONGESTION**, **TCP_BPF_IW**,
- * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**,
- * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**,
- * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**.
+ * **TCP_BPF_SNDCWND_CLAMP**.
* * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
* * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
+ * int bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
* Description
* Grow or shrink the room for data in the packet associated to
* *skb* by *len_diff*, and according to the selected *mode*.
*
- * By default, the helper will reset any offloaded checksum
- * indicator of the skb to CHECKSUM_NONE. This can be avoided
- * by the following flag:
- *
- * * **BPF_F_ADJ_ROOM_NO_CSUM_RESET**: Do not reset offloaded
- * checksum data of the skb to CHECKSUM_NONE.
- *
* There are two supported modes at this time:
*
* * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer
@@ -1773,7 +1553,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
+ * int bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
* Description
* Redirect the packet to the endpoint referenced by *map* at
* index *key*. Depending on its type, this *map* can contain
@@ -1784,17 +1564,19 @@ union bpf_attr {
*
* The lower two bits of *flags* are used as the return code if
* the map lookup fails. This is so that the return value can be
- * one of the XDP program return codes up to **XDP_TX**, as chosen
- * by the caller. Any higher bits in the *flags* argument must be
+ * one of the XDP program return codes up to XDP_TX, as chosen by
+ * the caller. Any higher bits in the *flags* argument must be
* unset.
*
- * See also **bpf_redirect**\ (), which only supports redirecting
- * to an ifindex, but doesn't require a map to do so.
+ * When used to redirect packets to net devices, this helper
+ * provides a high performance increase over **bpf_redirect**\ ().
+ * This is due to various implementation details of the underlying
+ * mechanisms, one of which is the fact that **bpf_redirect_map**\
+ * () tries to send packet as a "bulk" to the device.
* Return
- * **XDP_REDIRECT** on success, or the value of the two lower bits
- * of the *flags* argument on error.
+ * **XDP_REDIRECT** on success, or **XDP_ABORTED** on error.
*
- * long bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
+ * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
* Description
* Redirect the packet to the socket referenced by *map* (of type
* **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@@ -1805,7 +1587,7 @@ union bpf_attr {
* Return
* **SK_PASS** on success, or **SK_DROP** on error.
*
- * long bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
* Description
* Add an entry to, or update a *map* referencing sockets. The
* *skops* is used as a new value for the entry associated to
@@ -1824,7 +1606,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta)
+ * int bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta)
* Description
* Adjust the address pointed by *xdp_md*\ **->data_meta** by
* *delta* (which can be positive or negative). Note that this
@@ -1853,7 +1635,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size)
+ * int bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size)
* Description
* Read the value of a perf event counter, and store it into *buf*
* of size *buf_size*. This helper relies on a *map* of type
@@ -1897,13 +1679,13 @@ union bpf_attr {
* the time running for event since last normalization. The
* enabled and running times are accumulated since the perf event
* open. To achieve scaling factor between two invocations of an
- * eBPF program, users can use CPU id as the key (which is
+ * eBPF program, users can can use CPU id as the key (which is
* typical for perf array usage model) to remember the previous
* value and do the calculation inside the eBPF program.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size)
+ * int bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size)
* Description
* For en eBPF program attached to a perf event, retrieve the
* value of the event counter associated to *ctx* and store it in
@@ -1914,7 +1696,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_getsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
+ * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
* Description
* Emulate a call to **getsockopt()** on the socket associated to
* *bpf_socket*, which must be a full socket. The *level* at
@@ -1923,12 +1705,6 @@ union bpf_attr {
* The retrieved value is stored in the structure pointed by
* *opval* and of length *optlen*.
*
- * *bpf_socket* should be one of the following:
- *
- * * **struct bpf_sock_ops** for **BPF_PROG_TYPE_SOCK_OPS**.
- * * **struct bpf_sock_addr** for **BPF_CGROUP_INET4_CONNECT**
- * and **BPF_CGROUP_INET6_CONNECT**.
- *
* This helper actually implements a subset of **getsockopt()**.
* It supports the following *level*\ s:
*
@@ -1939,14 +1715,14 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_override_return(struct pt_regs *regs, u64 rc)
+ * int bpf_override_return(struct pt_regs *regs, u64 rc)
* Description
* Used for error injection, this helper uses kprobes to override
* the return value of the probed function, and to set it to *rc*.
* The first argument is the context *regs* on which the kprobe
* works.
*
- * This helper works by setting the PC (program counter)
+ * This helper works by setting setting the PC (program counter)
* to an override function which is run in place of the original
* probed function. This means the probed function is not run at
* all. The replacement function just returns with the required
@@ -1964,7 +1740,7 @@ union bpf_attr {
* Return
* 0
*
- * long bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval)
+ * int bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval)
* Description
* Attempt to set the value of the **bpf_sock_ops_cb_flags** field
* for the full TCP socket associated to *bpf_sock_ops* to
@@ -2008,7 +1784,7 @@ union bpf_attr {
* be set is returned (which comes down to 0 if all bits were set
* as required).
*
- * long bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags)
+ * int bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags)
* Description
* This helper is used in programs implementing policies at the
* socket level. If the message *msg* is allowed to pass (i.e. if
@@ -2022,7 +1798,7 @@ union bpf_attr {
* Return
* **SK_PASS** on success, or **SK_DROP** on error.
*
- * long bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes)
+ * int bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes)
* Description
* For socket policies, apply the verdict of the eBPF program to
* the next *bytes* (number of bytes) of message *msg*.
@@ -2056,7 +1832,7 @@ union bpf_attr {
* Return
* 0
*
- * long bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes)
+ * int bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes)
* Description
* For socket policies, prevent the execution of the verdict eBPF
* program for message *msg* until *bytes* (byte number) have been
@@ -2074,7 +1850,7 @@ union bpf_attr {
* Return
* 0
*
- * long bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags)
+ * int bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags)
* Description
* For socket policies, pull in non-linear data from user space
* for *msg* and set pointers *msg*\ **->data** and *msg*\
@@ -2105,7 +1881,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len)
+ * int bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len)
* Description
* Bind the socket associated to *ctx* to the address pointed by
* *addr*, of length *addr_len*. This allows for making outgoing
@@ -2115,19 +1891,18 @@ union bpf_attr {
*
* This helper works for IPv4 and IPv6, TCP and UDP sockets. The
* domain (*addr*\ **->sa_family**) must be **AF_INET** (or
- * **AF_INET6**). It's advised to pass zero port (**sin_port**
- * or **sin6_port**) which triggers IP_BIND_ADDRESS_NO_PORT-like
- * behavior and lets the kernel efficiently pick up an unused
- * port as long as 4-tuple is unique. Passing non-zero port might
- * lead to degraded performance.
+ * **AF_INET6**). Looking for a free port to bind to can be
+ * expensive, therefore binding to port is not permitted by the
+ * helper: *addr*\ **->sin_port** (or **sin6_port**, respectively)
+ * must be set to zero.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta)
+ * int bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta)
* Description
* Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is
- * possible to both shrink and grow the packet tail.
- * Shrink done via *delta* being a negative integer.
+ * only possible to shrink the packet as of this writing,
+ * therefore *delta* must be a negative integer.
*
* A call to this helper is susceptible to change the underlying
* packet buffer. Therefore, at load time, all checks on pointers
@@ -2137,7 +1912,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags)
+ * int bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags)
* Description
* Retrieve the XFRM state (IP transform framework, see also
* **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*.
@@ -2153,7 +1928,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
+ * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
* Description
* Return a user or a kernel stack in bpf program provided buffer.
* To achieve this, the helper needs *ctx*, which is a pointer
@@ -2186,7 +1961,7 @@ union bpf_attr {
* A non-negative value equal to or less than *size* on success,
* or a negative error in case of failure.
*
- * long bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
+ * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
* Description
* This helper is similar to **bpf_skb_load_bytes**\ () in that
* it provides an easy way to load *len* bytes from *offset*
@@ -2208,7 +1983,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags)
+ * int bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags)
* Description
* Do FIB lookup in kernel tables using parameters in *params*.
* If lookup is successful and result shows packet is to be
@@ -2239,10 +2014,7 @@ union bpf_attr {
* * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
* packet is not forwarded or needs assist from full stack
*
- * If lookup fails with BPF_FIB_LKUP_RET_FRAG_NEEDED, then the MTU
- * was exceeded and output params->mtu_result contains the MTU.
- *
- * long bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
* Description
* Add an entry to, or update a sockhash *map* referencing sockets.
* The *skops* is used as a new value for the entry associated to
@@ -2261,7 +2033,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags)
* Description
* This helper is used in programs implementing policies at the
* socket level. If the message *msg* is allowed to pass (i.e. if
@@ -2275,11 +2047,11 @@ union bpf_attr {
* Return
* **SK_PASS** on success, or **SK_DROP** on error.
*
- * long bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags)
* Description
* This helper is used in programs implementing policies at the
* skb socket level. If the sk_buff *skb* is allowed to pass (i.e.
- * if the verdict eBPF program returns **SK_PASS**), redirect it
+ * if the verdeict eBPF program returns **SK_PASS**), redirect it
* to the socket referenced by *map* (of type
* **BPF_MAP_TYPE_SOCKHASH**) using hash *key*. Both ingress and
* egress interfaces can be used for redirection. The
@@ -2289,7 +2061,7 @@ union bpf_attr {
* Return
* **SK_PASS** on success, or **SK_DROP** on error.
*
- * long bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len)
+ * int bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len)
* Description
* Encapsulate the packet associated to *skb* within a Layer 3
* protocol header. This header is provided in the buffer at
@@ -2326,7 +2098,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len)
+ * int bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len)
* Description
* Store *len* bytes from address *from* into the packet
* associated to *skb*, at *offset*. Only the flags, tag and TLVs
@@ -2341,7 +2113,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta)
+ * int bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta)
* Description
* Adjust the size allocated to TLVs in the outermost IPv6
* Segment Routing Header contained in the packet associated to
@@ -2357,7 +2129,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len)
+ * int bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len)
* Description
* Apply an IPv6 Segment Routing action of type *action* to the
* packet associated to *skb*. Each action takes a parameter
@@ -2386,7 +2158,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_rc_repeat(void *ctx)
+ * int bpf_rc_repeat(void *ctx)
* Description
* This helper is used in programs implementing IR decoding, to
* report a successfully decoded repeat key message. This delays
@@ -2405,7 +2177,7 @@ union bpf_attr {
* Return
* 0
*
- * long bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle)
+ * int bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle)
* Description
* This helper is used in programs implementing IR decoding, to
* report a successfully decoded key press with *scancode*,
@@ -2416,7 +2188,7 @@ union bpf_attr {
* **bpf_rc_keydown**\ () again with the same values, or calling
* **bpf_rc_repeat**\ ().
*
- * Some protocols include a toggle bit, in case the button was
+ * Some protocols include a toggle bit, in case the button was
* released and pressed again between consecutive scancodes.
*
* The *ctx* should point to the lirc sample as passed into
@@ -2465,12 +2237,12 @@ union bpf_attr {
* running simultaneously.
*
* A user should care about the synchronization by himself.
- * For example, by using the **BPF_ATOMIC** instructions to alter
+ * For example, by using the **BPF_STX_XADD** instruction to alter
* the shared data.
* Return
* A pointer to the local storage area.
*
- * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
* Description
* Select a **SO_REUSEPORT** socket from a
* **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
@@ -2515,7 +2287,7 @@ union bpf_attr {
* Look for an IPv6 socket.
*
* If the *netns* is a negative signed 32-bit integer, then the
- * socket lookup table in the netns associated with the *ctx*
+ * socket lookup table in the netns associated with the *ctx* will
* will be used. For the TC hooks, this is the netns of the device
* in the skb. For socket hooks, this is the netns of the socket.
* If *netns* is any other signed 32-bit value greater than or
@@ -2552,7 +2324,7 @@ union bpf_attr {
* Look for an IPv6 socket.
*
* If the *netns* is a negative signed 32-bit integer, then the
- * socket lookup table in the netns associated with the *ctx*
+ * socket lookup table in the netns associated with the *ctx* will
* will be used. For the TC hooks, this is the netns of the device
* in the skb. For socket hooks, this is the netns of the socket.
* If *netns* is any other signed 32-bit value greater than or
@@ -2571,7 +2343,7 @@ union bpf_attr {
* result is from *reuse*\ **->socks**\ [] using the hash of the
* tuple.
*
- * long bpf_sk_release(void *sock)
+ * int bpf_sk_release(struct bpf_sock *sock)
* Description
* Release the reference held by *sock*. *sock* must be a
* non-**NULL** pointer that was returned from
@@ -2579,7 +2351,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
+ * int bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
* Description
* Push an element *value* in *map*. *flags* is one of:
*
@@ -2589,19 +2361,19 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_map_pop_elem(struct bpf_map *map, void *value)
+ * int bpf_map_pop_elem(struct bpf_map *map, void *value)
* Description
* Pop an element from *map*.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_map_peek_elem(struct bpf_map *map, void *value)
+ * int bpf_map_peek_elem(struct bpf_map *map, void *value)
* Description
* Get an element from *map* without removing it.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
+ * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
* Description
* For socket policies, insert *len* bytes into *msg* at offset
* *start*.
@@ -2617,7 +2389,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
+ * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
* Description
* Will remove *len* bytes from a *msg* starting at byte *start*.
* This may result in **ENOMEM** errors under certain situations if
@@ -2629,7 +2401,7 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
+ * int bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
* Description
* This helper is used in programs implementing IR decoding, to
* report a successfully decoded pointer movement.
@@ -2643,7 +2415,7 @@ union bpf_attr {
* Return
* 0
*
- * long bpf_spin_lock(struct bpf_spin_lock *lock)
+ * int bpf_spin_lock(struct bpf_spin_lock *lock)
* Description
* Acquire a spinlock represented by the pointer *lock*, which is
* stored as part of a value of a map. Taking the lock allows to
@@ -2691,7 +2463,7 @@ union bpf_attr {
* Return
* 0
*
- * long bpf_spin_unlock(struct bpf_spin_lock *lock)
+ * int bpf_spin_unlock(struct bpf_spin_lock *lock)
* Description
* Release the *lock* previously locked by a call to
* **bpf_spin_lock**\ (\ *lock*\ ).
@@ -2714,7 +2486,7 @@ union bpf_attr {
* A **struct bpf_tcp_sock** pointer on success, or **NULL** in
* case of failure.
*
- * long bpf_skb_ecn_set_ce(struct sk_buff *skb)
+ * int bpf_skb_ecn_set_ce(struct sk_buff *skb)
* Description
* Set ECN (Explicit Congestion Notification) field of IP header
* to **CE** (Congestion Encountered) if current value is **ECT**
@@ -2751,7 +2523,7 @@ union bpf_attr {
* result is from *reuse*\ **->socks**\ [] using the hash of the
* tuple.
*
- * long bpf_tcp_check_syncookie(void *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
+ * int bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
* Description
* Check whether *iph* and *th* contain a valid SYN cookie ACK for
* the listening socket in *sk*.
@@ -2762,11 +2534,12 @@ union bpf_attr {
*
* *th* points to the start of the TCP header, while *th_len*
* contains **sizeof**\ (**struct tcphdr**).
+ *
* Return
* 0 if *iph* and *th* are a valid SYN cookie ACK, or a negative
* error otherwise.
*
- * long bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
+ * int bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
* Description
* Get name of sysctl in /proc/sys/ and copy it into provided by
* program buffer *buf* of size *buf_len*.
@@ -2782,7 +2555,7 @@ union bpf_attr {
* **-E2BIG** if the buffer wasn't big enough (*buf* will contain
* truncated name in this case).
*
- * long bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
+ * int bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
* Description
* Get current value of sysctl as it is presented in /proc/sys
* (incl. newline, etc), and copy it as a string into provided
@@ -2801,7 +2574,7 @@ union bpf_attr {
* **-EINVAL** if current value was unavailable, e.g. because
* sysctl is uninitialized and read returns -EIO for it.
*
- * long bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
+ * int bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
* Description
* Get new value being written by user space to sysctl (before
* the actual write happens) and copy it as a string into
@@ -2818,7 +2591,7 @@ union bpf_attr {
*
* **-EINVAL** if sysctl is being read.
*
- * long bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
+ * int bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
* Description
* Override new value being written by user space to sysctl with
* value provided by program in buffer *buf* of size *buf_len*.
@@ -2835,7 +2608,7 @@ union bpf_attr {
*
* **-EINVAL** if sysctl is being read.
*
- * long bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
+ * int bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
* Description
* Convert the initial part of the string from buffer *buf* of
* size *buf_len* to a long integer according to the given base
@@ -2859,7 +2632,7 @@ union bpf_attr {
*
* **-ERANGE** if resulting value was out of range.
*
- * long bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
+ * int bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
* Description
* Convert the initial part of the string from buffer *buf* of
* size *buf_len* to an unsigned long integer according to the
@@ -2882,7 +2655,7 @@ union bpf_attr {
*
* **-ERANGE** if resulting value was out of range.
*
- * void *bpf_sk_storage_get(struct bpf_map *map, void *sk, void *value, u64 flags)
+ * void *bpf_sk_storage_get(struct bpf_map *map, struct bpf_sock *sk, void *value, u64 flags)
* Description
* Get a bpf-local-storage from a *sk*.
*
@@ -2898,9 +2671,6 @@ union bpf_attr {
* "type". The bpf-local-storage "type" (i.e. the *map*) is
* searched against all bpf-local-storages residing at *sk*.
*
- * *sk* is a kernel **struct sock** pointer for LSM program.
- * *sk* is a **struct bpf_sock** pointer for other program types.
- *
* An optional *flags* (**BPF_SK_STORAGE_GET_F_CREATE**) can be
* used such that a new bpf-local-storage will be
* created if one does not exist. *value* can be used
@@ -2913,19 +2683,17 @@ union bpf_attr {
* **NULL** if not found or there was an error in adding
* a new bpf-local-storage.
*
- * long bpf_sk_storage_delete(struct bpf_map *map, void *sk)
+ * int bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
* Description
* Delete a bpf-local-storage from a *sk*.
* Return
* 0 on success.
*
* **-ENOENT** if the bpf-local-storage cannot be found.
- * **-EINVAL** if sk is not a fullsock (e.g. a request_sock).
*
- * long bpf_send_signal(u32 sig)
+ * int bpf_send_signal(u32 sig)
* Description
- * Send signal *sig* to the process of the current task.
- * The signal may be delivered to any of this process's threads.
+ * Send signal *sig* to the current task.
* Return
* 0 on success or successfully queued.
*
@@ -2937,7 +2705,7 @@ union bpf_attr {
*
* **-EAGAIN** if bpf program can try again.
*
- * s64 bpf_tcp_gen_syncookie(void *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
+ * s64 bpf_tcp_gen_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
* Description
* Try to issue a SYN cookie for the packet with corresponding
* IP/TCP headers, *iph* and *th*, on the listening socket in *sk*.
@@ -2948,6 +2716,7 @@ union bpf_attr {
*
* *th* points to the start of the TCP header, while *th_len*
* contains the length of the TCP header.
+ *
* Return
* On success, lower 32 bits hold the generated SYN cookie in
* followed by 16 bits which hold the MSS value for that cookie,
@@ -2963,7 +2732,7 @@ union bpf_attr {
*
* **-EPROTONOSUPPORT** IP packet version is not 4 or 6
*
- * long bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
* Description
* Write raw *data* blob into a special BPF perf event held by
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -2987,21 +2756,21 @@ union bpf_attr {
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
+ * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
* Description
* Safely attempt to read *size* bytes from user space address
* *unsafe_ptr* and store the data in *dst*.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
+ * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
* Description
* Safely attempt to read *size* bytes from kernel space address
* *unsafe_ptr* and store the data in *dst*.
* Return
* 0 on success, or a negative error in case of failure.
*
- * long bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
+ * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
* Description
* Copy a NUL terminated string from an unsafe user address
* *unsafe_ptr* to *dst*. The *size* should include the
@@ -3010,10 +2779,10 @@ union bpf_attr {
* string length is larger than *size*, just *size*-1 bytes are
* copied and the last byte is set to NUL.
*
- * On success, returns the number of bytes that were written,
- * including the terminal NUL. This makes this helper useful in
- * tracing programs for reading strings, and more importantly to
- * get its length at runtime. See the following snippet:
+ * On success, the length of the copied string is returned. This
+ * makes this helper useful in tracing programs for reading
+ * strings, and more importantly to get its length at runtime. See
+ * the following snippet:
*
* ::
*
@@ -3030,7 +2799,7 @@ union bpf_attr {
* // size, after checking its boundaries.
* }
*
- * In comparison, using **bpf_probe_read_user**\ () helper here
+ * In comparison, using **bpf_probe_read_user()** helper here
* instead to read the string would require to estimate the length
* at compile time, and would often result in copying more memory
* than necessary.
@@ -3041,880 +2810,17 @@ union bpf_attr {
* **->mm->env_start**: using this helper and the return value,
* one can quickly iterate at the right offset of the memory area.
* Return
- * On success, the strictly positive length of the output string,
+ * On success, the strictly positive length of the string,
* including the trailing NUL character. On error, a negative
* value.
*
- * long bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
+ * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
* Description
* Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
- * to *dst*. Same semantics as with **bpf_probe_read_user_str**\ () apply.
+ * to *dst*. Same semantics as with bpf_probe_read_user_str() apply.
* Return
- * On success, the strictly positive length of the string, including
+ * On success, the strictly positive length of the string, including
* the trailing NUL character. On error, a negative value.
- *
- * long bpf_tcp_send_ack(void *tp, u32 rcv_nxt)
- * Description
- * Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**.
- * *rcv_nxt* is the ack_seq to be sent out.
- * Return
- * 0 on success, or a negative error in case of failure.
- *
- * long bpf_send_signal_thread(u32 sig)
- * Description
- * Send signal *sig* to the thread corresponding to the current task.
- * Return
- * 0 on success or successfully queued.
- *
- * **-EBUSY** if work queue under nmi is full.
- *
- * **-EINVAL** if *sig* is invalid.
- *
- * **-EPERM** if no permission to send the *sig*.
- *
- * **-EAGAIN** if bpf program can try again.
- *
- * u64 bpf_jiffies64(void)
- * Description
- * Obtain the 64bit jiffies
- * Return
- * The 64 bit jiffies
- *
- * long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags)
- * Description
- * For an eBPF program attached to a perf event, retrieve the
- * branch records (**struct perf_branch_entry**) associated to *ctx*
- * and store it in the buffer pointed by *buf* up to size
- * *size* bytes.
- * Return
- * On success, number of bytes written to *buf*. On error, a
- * negative value.
- *
- * The *flags* can be set to **BPF_F_GET_BRANCH_RECORDS_SIZE** to
- * instead return the number of bytes required to store all the
- * branch entries. If this flag is set, *buf* may be NULL.
- *
- * **-EINVAL** if arguments invalid or **size** not a multiple
- * of **sizeof**\ (**struct perf_branch_entry**\ ).
- *
- * **-ENOENT** if architecture does not support branch records.
- *
- * long bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
- * Description
- * Returns 0 on success, values for *pid* and *tgid* as seen from the current
- * *namespace* will be returned in *nsdata*.
- * Return
- * 0 on success, or one of the following in case of failure:
- *
- * **-EINVAL** if dev and inum supplied don't match dev_t and inode number
- * with nsfs of current task, or if dev conversion to dev_t lost high bits.
- *
- * **-ENOENT** if pidns does not exists for the current task.
- *
- * long bpf_xdp_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
- * Description
- * Write raw *data* blob into a special BPF perf event held by
- * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
- * event must have the following attributes: **PERF_SAMPLE_RAW**
- * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and
- * **PERF_COUNT_SW_BPF_OUTPUT** as **config**.
- *
- * The *flags* are used to indicate the index in *map* for which
- * the value must be put, masked with **BPF_F_INDEX_MASK**.
- * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU**
- * to indicate that the index of the current CPU core should be
- * used.
- *
- * The value to write, of *size*, is passed through eBPF stack and
- * pointed by *data*.
- *
- * *ctx* is a pointer to in-kernel struct xdp_buff.
- *
- * This helper is similar to **bpf_perf_eventoutput**\ () but
- * restricted to raw_tracepoint bpf programs.
- * Return
- * 0 on success, or a negative error in case of failure.
- *
- * u64 bpf_get_netns_cookie(void *ctx)
- * Description
- * Retrieve the cookie (generated by the kernel) of the network
- * namespace the input *ctx* is associated with. The network
- * namespace cookie remains stable for its lifetime and provides
- * a global identifier that can be assumed unique. If *ctx* is
- * NULL, then the helper returns the cookie for the initial
- * network namespace. The cookie itself is very similar to that
- * of **bpf_get_socket_cookie**\ () helper, but for network
- * namespaces instead of sockets.
- * Return
- * A 8-byte long opaque number.
- *
- * u64 bpf_get_current_ancestor_cgroup_id(int ancestor_level)
- * Description
- * Return id of cgroup v2 that is ancestor of the cgroup associated
- * with the current task at the *ancestor_level*. The root cgroup
- * is at *ancestor_level* zero and each step down the hierarchy
- * increments the level. If *ancestor_level* == level of cgroup
- * associated with the current task, then return value will be the
- * same as that of **bpf_get_current_cgroup_id**\ ().
- *
- * The helper is useful to implement policies based on cgroups
- * that are upper in hierarchy than immediate cgroup associated
- * with the current task.
- *
- * The format of returned id and helper limitations are same as in
- * **bpf_get_current_cgroup_id**\ ().
- * Return
- * The id is returned or 0 in case the id could not be retrieved.
- *
- * long bpf_sk_assign(struct sk_buff *skb, void *sk, u64 flags)
- * Description
- * Helper is overloaded depending on BPF program type. This
- * description applies to **BPF_PROG_TYPE_SCHED_CLS** and
- * **BPF_PROG_TYPE_SCHED_ACT** programs.
- *
- * Assign the *sk* to the *skb*. When combined with appropriate
- * routing configuration to receive the packet towards the socket,
- * will cause *skb* to be delivered to the specified socket.
- * Subsequent redirection of *skb* via **bpf_redirect**\ (),
- * **bpf_clone_redirect**\ () or other methods outside of BPF may
- * interfere with successful delivery to the socket.
- *
- * This operation is only valid from TC ingress path.
- *
- * The *flags* argument must be zero.
- * Return
- * 0 on success, or a negative error in case of failure:
- *
- * **-EINVAL** if specified *flags* are not supported.
- *
- * **-ENOENT** if the socket is unavailable for assignment.
- *
- * **-ENETUNREACH** if the socket is unreachable (wrong netns).
- *
- * **-EOPNOTSUPP** if the operation is not supported, for example
- * a call from outside of TC ingress.
- *
- * **-ESOCKTNOSUPPORT** if the socket type is not supported
- * (reuseport).
- *
- * long bpf_sk_assign(struct bpf_sk_lookup *ctx, struct bpf_sock *sk, u64 flags)
- * Description
- * Helper is overloaded depending on BPF program type. This
- * description applies to **BPF_PROG_TYPE_SK_LOOKUP** programs.
- *
- * Select the *sk* as a result of a socket lookup.
- *
- * For the operation to succeed passed socket must be compatible
- * with the packet description provided by the *ctx* object.
- *
- * L4 protocol (**IPPROTO_TCP** or **IPPROTO_UDP**) must
- * be an exact match. While IP family (**AF_INET** or
- * **AF_INET6**) must be compatible, that is IPv6 sockets
- * that are not v6-only can be selected for IPv4 packets.
- *
- * Only TCP listeners and UDP unconnected sockets can be
- * selected. *sk* can also be NULL to reset any previous
- * selection.
- *
- * *flags* argument can combination of following values:
- *
- * * **BPF_SK_LOOKUP_F_REPLACE** to override the previous
- * socket selection, potentially done by a BPF program
- * that ran before us.
- *
- * * **BPF_SK_LOOKUP_F_NO_REUSEPORT** to skip
- * load-balancing within reuseport group for the socket
- * being selected.
- *
- * On success *ctx->sk* will point to the selected socket.
- *
- * Return
- * 0 on success, or a negative errno in case of failure.
- *
- * * **-EAFNOSUPPORT** if socket family (*sk->family*) is
- * not compatible with packet family (*ctx->family*).
- *
- * * **-EEXIST** if socket has been already selected,
- * potentially by another program, and
- * **BPF_SK_LOOKUP_F_REPLACE** flag was not specified.
- *
- * * **-EINVAL** if unsupported flags were specified.
- *
- * * **-EPROTOTYPE** if socket L4 protocol
- * (*sk->protocol*) doesn't match packet protocol
- * (*ctx->protocol*).
- *
- * * **-ESOCKTNOSUPPORT** if socket is not in allowed
- * state (TCP listening or UDP unconnected).
- *
- * u64 bpf_ktime_get_boot_ns(void)
- * Description
- * Return the time elapsed since system boot, in nanoseconds.
- * Does include the time the system was suspended.
- * See: **clock_gettime**\ (**CLOCK_BOOTTIME**)
- * Return
- * Current *ktime*.
- *
- * long bpf_seq_printf(struct seq_file *m, const char *fmt, u32 fmt_size, const void *data, u32 data_len)
- * Description
- * **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print
- * out the format string.
- * The *m* represents the seq_file. The *fmt* and *fmt_size* are for
- * the format string itself. The *data* and *data_len* are format string
- * arguments. The *data* are a **u64** array and corresponding format string
- * values are stored in the array. For strings and pointers where pointees
- * are accessed, only the pointer values are stored in the *data* array.
- * The *data_len* is the size of *data* in bytes.
- *
- * Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory.
- * Reading kernel memory may fail due to either invalid address or
- * valid address but requiring a major memory fault. If reading kernel memory
- * fails, the string for **%s** will be an empty string, and the ip
- * address for **%p{i,I}{4,6}** will be 0. Not returning error to
- * bpf program is consistent with what **bpf_trace_printk**\ () does for now.
- * Return
- * 0 on success, or a negative error in case of failure:
- *
- * **-EBUSY** if per-CPU memory copy buffer is busy, can try again
- * by returning 1 from bpf program.
- *
- * **-EINVAL** if arguments are invalid, or if *fmt* is invalid/unsupported.
- *
- * **-E2BIG** if *fmt* contains too many format specifiers.
- *
- * **-EOVERFLOW** if an overflow happened: The same object will be tried again.
- *
- * long bpf_seq_write(struct seq_file *m, const void *data, u32 len)
- * Description
- * **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data.
- * The *m* represents the seq_file. The *data* and *len* represent the
- * data to write in bytes.
- * Return
- * 0 on success, or a negative error in case of failure:
- *
- * **-EOVERFLOW** if an overflow happened: The same object will be tried again.
- *
- * u64 bpf_sk_cgroup_id(void *sk)
- * Description
- * Return the cgroup v2 id of the socket *sk*.
- *
- * *sk* must be a non-**NULL** pointer to a socket, e.g. one
- * returned from **bpf_sk_lookup_xxx**\ (),
- * **bpf_sk_fullsock**\ (), etc. The format of returned id is
- * same as in **bpf_skb_cgroup_id**\ ().
- *
- * This helper is available only if the kernel was compiled with
- * the **CONFIG_SOCK_CGROUP_DATA** configuration option.
- * Return
- * The id is returned or 0 in case the id could not be retrieved.
- *
- * u64 bpf_sk_ancestor_cgroup_id(void *sk, int ancestor_level)
- * Description
- * Return id of cgroup v2 that is ancestor of cgroup associated
- * with the *sk* at the *ancestor_level*. The root cgroup is at
- * *ancestor_level* zero and each step down the hierarchy
- * increments the level. If *ancestor_level* == level of cgroup
- * associated with *sk*, then return value will be same as that
- * of **bpf_sk_cgroup_id**\ ().
- *
- * The helper is useful to implement policies based on cgroups
- * that are upper in hierarchy than immediate cgroup associated
- * with *sk*.
- *
- * The format of returned id and helper limitations are same as in
- * **bpf_sk_cgroup_id**\ ().
- * Return
- * The id is returned or 0 in case the id could not be retrieved.
- *
- * long bpf_ringbuf_output(void *ringbuf, void *data, u64 size, u64 flags)
- * Description
- * Copy *size* bytes from *data* into a ring buffer *ringbuf*.
- * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification
- * of new data availability is sent.
- * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
- * of new data availability is sent unconditionally.
- * Return
- * 0 on success, or a negative error in case of failure.
- *
- * void *bpf_ringbuf_reserve(void *ringbuf, u64 size, u64 flags)
- * Description
- * Reserve *size* bytes of payload in a ring buffer *ringbuf*.
- * Return
- * Valid pointer with *size* bytes of memory available; NULL,
- * otherwise.
- *
- * void bpf_ringbuf_submit(void *data, u64 flags)
- * Description
- * Submit reserved ring buffer sample, pointed to by *data*.
- * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification
- * of new data availability is sent.
- * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
- * of new data availability is sent unconditionally.
- * Return
- * Nothing. Always succeeds.
- *
- * void bpf_ringbuf_discard(void *data, u64 flags)
- * Description
- * Discard reserved ring buffer sample, pointed to by *data*.
- * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification
- * of new data availability is sent.
- * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
- * of new data availability is sent unconditionally.
- * Return
- * Nothing. Always succeeds.
- *
- * u64 bpf_ringbuf_query(void *ringbuf, u64 flags)
- * Description
- * Query various characteristics of provided ring buffer. What
- * exactly is queries is determined by *flags*:
- *
- * * **BPF_RB_AVAIL_DATA**: Amount of data not yet consumed.
- * * **BPF_RB_RING_SIZE**: The size of ring buffer.
- * * **BPF_RB_CONS_POS**: Consumer position (can wrap around).
- * * **BPF_RB_PROD_POS**: Producer(s) position (can wrap around).
- *
- * Data returned is just a momentary snapshot of actual values
- * and could be inaccurate, so this facility should be used to
- * power heuristics and for reporting, not to make 100% correct
- * calculation.
- * Return
- * Requested value, or 0, if *flags* are not recognized.
- *
- * long bpf_csum_level(struct sk_buff *skb, u64 level)
- * Description
- * Change the skbs checksum level by one layer up or down, or
- * reset it entirely to none in order to have the stack perform
- * checksum validation. The level is applicable to the following
- * protocols: TCP, UDP, GRE, SCTP, FCOE. For example, a decap of
- * | ETH | IP | UDP | GUE | IP | TCP | into | ETH | IP | TCP |
- * through **bpf_skb_adjust_room**\ () helper with passing in
- * **BPF_F_ADJ_ROOM_NO_CSUM_RESET** flag would require one call
- * to **bpf_csum_level**\ () with **BPF_CSUM_LEVEL_DEC** since
- * the UDP header is removed. Similarly, an encap of the latter
- * into the former could be accompanied by a helper call to
- * **bpf_csum_level**\ () with **BPF_CSUM_LEVEL_INC** if the
- * skb is still intended to be processed in higher layers of the
- * stack instead of just egressing at tc.
- *
- * There are three supported level settings at this time:
- *
- * * **BPF_CSUM_LEVEL_INC**: Increases skb->csum_level for skbs
- * with CHECKSUM_UNNECESSARY.
- * * **BPF_CSUM_LEVEL_DEC**: Decreases skb->csum_level for skbs
- * with CHECKSUM_UNNECESSARY.
- * * **BPF_CSUM_LEVEL_RESET**: Resets skb->csum_level to 0 and
- * sets CHECKSUM_NONE to force checksum validation by the stack.
- * * **BPF_CSUM_LEVEL_QUERY**: No-op, returns the current
- * skb->csum_level.
- * Return
- * 0 on success, or a negative error in case of failure. In the
- * case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level
- * is returned or the error code -EACCES in case the skb is not
- * subject to CHECKSUM_UNNECESSARY.
- *
- * struct tcp6_sock *bpf_skc_to_tcp6_sock(void *sk)
- * Description
- * Dynamically cast a *sk* pointer to a *tcp6_sock* pointer.
- * Return
- * *sk* if casting is valid, or **NULL** otherwise.
- *
- * struct tcp_sock *bpf_skc_to_tcp_sock(void *sk)
- * Description
- * Dynamically cast a *sk* pointer to a *tcp_sock* pointer.
- * Return
- * *sk* if casting is valid, or **NULL** otherwise.
- *
- * struct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *sk)
- * Description
- * Dynamically cast a *sk* pointer to a *tcp_timewait_sock* pointer.
- * Return
- * *sk* if casting is valid, or **NULL** otherwise.
- *
- * struct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *sk)
- * Description
- * Dynamically cast a *sk* pointer to a *tcp_request_sock* pointer.
- * Return
- * *sk* if casting is valid, or **NULL** otherwise.
- *
- * struct udp6_sock *bpf_skc_to_udp6_sock(void *sk)
- * Description
- * Dynamically cast a *sk* pointer to a *udp6_sock* pointer.
- * Return
- * *sk* if casting is valid, or **NULL** otherwise.
- *
- * long bpf_get_task_stack(struct task_struct *task, void *buf, u32 size, u64 flags)
- * Description
- * Return a user or a kernel stack in bpf program provided buffer.
- * To achieve this, the helper needs *task*, which is a valid
- * pointer to **struct task_struct**. To store the stacktrace, the
- * bpf program provides *buf* with a nonnegative *size*.
- *
- * The last argument, *flags*, holds the number of stack frames to
- * skip (from 0 to 255), masked with
- * **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set
- * the following flags:
- *
- * **BPF_F_USER_STACK**
- * Collect a user space stack instead of a kernel stack.
- * **BPF_F_USER_BUILD_ID**
- * Collect buildid+offset instead of ips for user stack,
- * only valid if **BPF_F_USER_STACK** is also specified.
- *
- * **bpf_get_task_stack**\ () can collect up to
- * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject
- * to sufficient large buffer size. Note that
- * this limit can be controlled with the **sysctl** program, and
- * that it should be manually increased in order to profile long
- * user stacks (such as stacks for Java programs). To do so, use:
- *
- * ::
- *
- * # sysctl kernel.perf_event_max_stack=<new value>
- * Return
- * A non-negative value equal to or less than *size* on success,
- * or a negative error in case of failure.
- *
- * long bpf_load_hdr_opt(struct bpf_sock_ops *skops, void *searchby_res, u32 len, u64 flags)
- * Description
- * Load header option. Support reading a particular TCP header
- * option for bpf program (**BPF_PROG_TYPE_SOCK_OPS**).
- *
- * If *flags* is 0, it will search the option from the
- * *skops*\ **->skb_data**. The comment in **struct bpf_sock_ops**
- * has details on what skb_data contains under different
- * *skops*\ **->op**.
- *
- * The first byte of the *searchby_res* specifies the
- * kind that it wants to search.
- *
- * If the searching kind is an experimental kind
- * (i.e. 253 or 254 according to RFC6994). It also
- * needs to specify the "magic" which is either
- * 2 bytes or 4 bytes. It then also needs to
- * specify the size of the magic by using
- * the 2nd byte which is "kind-length" of a TCP
- * header option and the "kind-length" also
- * includes the first 2 bytes "kind" and "kind-length"
- * itself as a normal TCP header option also does.
- *
- * For example, to search experimental kind 254 with
- * 2 byte magic 0xeB9F, the searchby_res should be
- * [ 254, 4, 0xeB, 0x9F, 0, 0, .... 0 ].
- *
- * To search for the standard window scale option (3),
- * the *searchby_res* should be [ 3, 0, 0, .... 0 ].
- * Note, kind-length must be 0 for regular option.
- *
- * Searching for No-Op (0) and End-of-Option-List (1) are
- * not supported.
- *
- * *len* must be at least 2 bytes which is the minimal size
- * of a header option.
- *
- * Supported flags:
- *
- * * **BPF_LOAD_HDR_OPT_TCP_SYN** to search from the
- * saved_syn packet or the just-received syn packet.
- *
- * Return
- * > 0 when found, the header option is copied to *searchby_res*.
- * The return value is the total length copied. On failure, a
- * negative error code is returned:
- *
- * **-EINVAL** if a parameter is invalid.
- *
- * **-ENOMSG** if the option is not found.
- *
- * **-ENOENT** if no syn packet is available when
- * **BPF_LOAD_HDR_OPT_TCP_SYN** is used.
- *
- * **-ENOSPC** if there is not enough space. Only *len* number of
- * bytes are copied.
- *
- * **-EFAULT** on failure to parse the header options in the
- * packet.
- *
- * **-EPERM** if the helper cannot be used under the current
- * *skops*\ **->op**.
- *
- * long bpf_store_hdr_opt(struct bpf_sock_ops *skops, const void *from, u32 len, u64 flags)
- * Description
- * Store header option. The data will be copied
- * from buffer *from* with length *len* to the TCP header.
- *
- * The buffer *from* should have the whole option that
- * includes the kind, kind-length, and the actual
- * option data. The *len* must be at least kind-length
- * long. The kind-length does not have to be 4 byte
- * aligned. The kernel will take care of the padding
- * and setting the 4 bytes aligned value to th->doff.
- *
- * This helper will check for duplicated option
- * by searching the same option in the outgoing skb.
- *
- * This helper can only be called during
- * **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**.
- *
- * Return
- * 0 on success, or negative error in case of failure:
- *
- * **-EINVAL** If param is invalid.
- *
- * **-ENOSPC** if there is not enough space in the header.
- * Nothing has been written
- *
- * **-EEXIST** if the option already exists.
- *
- * **-EFAULT** on failrue to parse the existing header options.
- *
- * **-EPERM** if the helper cannot be used under the current
- * *skops*\ **->op**.
- *
- * long bpf_reserve_hdr_opt(struct bpf_sock_ops *skops, u32 len, u64 flags)
- * Description
- * Reserve *len* bytes for the bpf header option. The
- * space will be used by **bpf_store_hdr_opt**\ () later in
- * **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**.
- *
- * If **bpf_reserve_hdr_opt**\ () is called multiple times,
- * the total number of bytes will be reserved.
- *
- * This helper can only be called during
- * **BPF_SOCK_OPS_HDR_OPT_LEN_CB**.
- *
- * Return
- * 0 on success, or negative error in case of failure:
- *
- * **-EINVAL** if a parameter is invalid.
- *
- * **-ENOSPC** if there is not enough space in the header.
- *
- * **-EPERM** if the helper cannot be used under the current
- * *skops*\ **->op**.
- *
- * void *bpf_inode_storage_get(struct bpf_map *map, void *inode, void *value, u64 flags)
- * Description
- * Get a bpf_local_storage from an *inode*.
- *
- * Logically, it could be thought of as getting the value from
- * a *map* with *inode* as the **key**. From this
- * perspective, the usage is not much different from
- * **bpf_map_lookup_elem**\ (*map*, **&**\ *inode*) except this
- * helper enforces the key must be an inode and the map must also
- * be a **BPF_MAP_TYPE_INODE_STORAGE**.
- *
- * Underneath, the value is stored locally at *inode* instead of
- * the *map*. The *map* is used as the bpf-local-storage
- * "type". The bpf-local-storage "type" (i.e. the *map*) is
- * searched against all bpf_local_storage residing at *inode*.
- *
- * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be
- * used such that a new bpf_local_storage will be
- * created if one does not exist. *value* can be used
- * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify
- * the initial value of a bpf_local_storage. If *value* is
- * **NULL**, the new bpf_local_storage will be zero initialized.
- * Return
- * A bpf_local_storage pointer is returned on success.
- *
- * **NULL** if not found or there was an error in adding
- * a new bpf_local_storage.
- *
- * int bpf_inode_storage_delete(struct bpf_map *map, void *inode)
- * Description
- * Delete a bpf_local_storage from an *inode*.
- * Return
- * 0 on success.
- *
- * **-ENOENT** if the bpf_local_storage cannot be found.
- *
- * long bpf_d_path(struct path *path, char *buf, u32 sz)
- * Description
- * Return full path for given **struct path** object, which
- * needs to be the kernel BTF *path* object. The path is
- * returned in the provided buffer *buf* of size *sz* and
- * is zero terminated.
- *
- * Return
- * On success, the strictly positive length of the string,
- * including the trailing NUL character. On error, a negative
- * value.
- *
- * long bpf_copy_from_user(void *dst, u32 size, const void *user_ptr)
- * Description
- * Read *size* bytes from user space address *user_ptr* and store
- * the data in *dst*. This is a wrapper of **copy_from_user**\ ().
- * Return
- * 0 on success, or a negative error in case of failure.
- *
- * long bpf_snprintf_btf(char *str, u32 str_size, struct btf_ptr *ptr, u32 btf_ptr_size, u64 flags)
- * Description
- * Use BTF to store a string representation of *ptr*->ptr in *str*,
- * using *ptr*->type_id. This value should specify the type
- * that *ptr*->ptr points to. LLVM __builtin_btf_type_id(type, 1)
- * can be used to look up vmlinux BTF type ids. Traversing the
- * data structure using BTF, the type information and values are
- * stored in the first *str_size* - 1 bytes of *str*. Safe copy of
- * the pointer data is carried out to avoid kernel crashes during
- * operation. Smaller types can use string space on the stack;
- * larger programs can use map data to store the string
- * representation.
- *
- * The string can be subsequently shared with userspace via
- * bpf_perf_event_output() or ring buffer interfaces.
- * bpf_trace_printk() is to be avoided as it places too small
- * a limit on string size to be useful.
- *
- * *flags* is a combination of
- *
- * **BTF_F_COMPACT**
- * no formatting around type information
- * **BTF_F_NONAME**
- * no struct/union member names/types
- * **BTF_F_PTR_RAW**
- * show raw (unobfuscated) pointer values;
- * equivalent to printk specifier %px.
- * **BTF_F_ZERO**
- * show zero-valued struct/union members; they
- * are not displayed by default
- *
- * Return
- * The number of bytes that were written (or would have been
- * written if output had to be truncated due to string size),
- * or a negative error in cases of failure.
- *
- * long bpf_seq_printf_btf(struct seq_file *m, struct btf_ptr *ptr, u32 ptr_size, u64 flags)
- * Description
- * Use BTF to write to seq_write a string representation of
- * *ptr*->ptr, using *ptr*->type_id as per bpf_snprintf_btf().
- * *flags* are identical to those used for bpf_snprintf_btf.
- * Return
- * 0 on success or a negative error in case of failure.
- *
- * u64 bpf_skb_cgroup_classid(struct sk_buff *skb)
- * Description
- * See **bpf_get_cgroup_classid**\ () for the main description.
- * This helper differs from **bpf_get_cgroup_classid**\ () in that
- * the cgroup v1 net_cls class is retrieved only from the *skb*'s
- * associated socket instead of the current process.
- * Return
- * The id is returned or 0 in case the id could not be retrieved.
- *
- * long bpf_redirect_neigh(u32 ifindex, struct bpf_redir_neigh *params, int plen, u64 flags)
- * Description
- * Redirect the packet to another net device of index *ifindex*
- * and fill in L2 addresses from neighboring subsystem. This helper
- * is somewhat similar to **bpf_redirect**\ (), except that it
- * populates L2 addresses as well, meaning, internally, the helper
- * relies on the neighbor lookup for the L2 address of the nexthop.
- *
- * The helper will perform a FIB lookup based on the skb's
- * networking header to get the address of the next hop, unless
- * this is supplied by the caller in the *params* argument. The
- * *plen* argument indicates the len of *params* and should be set
- * to 0 if *params* is NULL.
- *
- * The *flags* argument is reserved and must be 0. The helper is
- * currently only supported for tc BPF program types, and enabled
- * for IPv4 and IPv6 protocols.
- * Return
- * The helper returns **TC_ACT_REDIRECT** on success or
- * **TC_ACT_SHOT** on error.
- *
- * void *bpf_per_cpu_ptr(const void *percpu_ptr, u32 cpu)
- * Description
- * Take a pointer to a percpu ksym, *percpu_ptr*, and return a
- * pointer to the percpu kernel variable on *cpu*. A ksym is an
- * extern variable decorated with '__ksym'. For ksym, there is a
- * global var (either static or global) defined of the same name
- * in the kernel. The ksym is percpu if the global var is percpu.
- * The returned pointer points to the global percpu var on *cpu*.
- *
- * bpf_per_cpu_ptr() has the same semantic as per_cpu_ptr() in the
- * kernel, except that bpf_per_cpu_ptr() may return NULL. This
- * happens if *cpu* is larger than nr_cpu_ids. The caller of
- * bpf_per_cpu_ptr() must check the returned value.
- * Return
- * A pointer pointing to the kernel percpu variable on *cpu*, or
- * NULL, if *cpu* is invalid.
- *
- * void *bpf_this_cpu_ptr(const void *percpu_ptr)
- * Description
- * Take a pointer to a percpu ksym, *percpu_ptr*, and return a
- * pointer to the percpu kernel variable on this cpu. See the
- * description of 'ksym' in **bpf_per_cpu_ptr**\ ().
- *
- * bpf_this_cpu_ptr() has the same semantic as this_cpu_ptr() in
- * the kernel. Different from **bpf_per_cpu_ptr**\ (), it would
- * never return NULL.
- * Return
- * A pointer pointing to the kernel percpu variable on this cpu.
- *
- * long bpf_redirect_peer(u32 ifindex, u64 flags)
- * Description
- * Redirect the packet to another net device of index *ifindex*.
- * This helper is somewhat similar to **bpf_redirect**\ (), except
- * that the redirection happens to the *ifindex*' peer device and
- * the netns switch takes place from ingress to ingress without
- * going through the CPU's backlog queue.
- *
- * The *flags* argument is reserved and must be 0. The helper is
- * currently only supported for tc BPF program types at the ingress
- * hook and for veth device types. The peer device must reside in a
- * different network namespace.
- * Return
- * The helper returns **TC_ACT_REDIRECT** on success or
- * **TC_ACT_SHOT** on error.
- *
- * void *bpf_task_storage_get(struct bpf_map *map, struct task_struct *task, void *value, u64 flags)
- * Description
- * Get a bpf_local_storage from the *task*.
- *
- * Logically, it could be thought of as getting the value from
- * a *map* with *task* as the **key**. From this
- * perspective, the usage is not much different from
- * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this
- * helper enforces the key must be an task_struct and the map must also
- * be a **BPF_MAP_TYPE_TASK_STORAGE**.
- *
- * Underneath, the value is stored locally at *task* instead of
- * the *map*. The *map* is used as the bpf-local-storage
- * "type". The bpf-local-storage "type" (i.e. the *map*) is
- * searched against all bpf_local_storage residing at *task*.
- *
- * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be
- * used such that a new bpf_local_storage will be
- * created if one does not exist. *value* can be used
- * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify
- * the initial value of a bpf_local_storage. If *value* is
- * **NULL**, the new bpf_local_storage will be zero initialized.
- * Return
- * A bpf_local_storage pointer is returned on success.
- *
- * **NULL** if not found or there was an error in adding
- * a new bpf_local_storage.
- *
- * long bpf_task_storage_delete(struct bpf_map *map, struct task_struct *task)
- * Description
- * Delete a bpf_local_storage from a *task*.
- * Return
- * 0 on success.
- *
- * **-ENOENT** if the bpf_local_storage cannot be found.
- *
- * struct task_struct *bpf_get_current_task_btf(void)
- * Description
- * Return a BTF pointer to the "current" task.
- * This pointer can also be used in helpers that accept an
- * *ARG_PTR_TO_BTF_ID* of type *task_struct*.
- * Return
- * Pointer to the current task.
- *
- * long bpf_bprm_opts_set(struct linux_binprm *bprm, u64 flags)
- * Description
- * Set or clear certain options on *bprm*:
- *
- * **BPF_F_BPRM_SECUREEXEC** Set the secureexec bit
- * which sets the **AT_SECURE** auxv for glibc. The bit
- * is cleared if the flag is not specified.
- * Return
- * **-EINVAL** if invalid *flags* are passed, zero otherwise.
- *
- * u64 bpf_ktime_get_coarse_ns(void)
- * Description
- * Return a coarse-grained version of the time elapsed since
- * system boot, in nanoseconds. Does not include time the system
- * was suspended.
- *
- * See: **clock_gettime**\ (**CLOCK_MONOTONIC_COARSE**)
- * Return
- * Current *ktime*.
- *
- * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size)
- * Description
- * Returns the stored IMA hash of the *inode* (if it's avaialable).
- * If the hash is larger than *size*, then only *size*
- * bytes will be copied to *dst*
- * Return
- * The **hash_algo** is returned on success,
- * **-EOPNOTSUP** if IMA is disabled or **-EINVAL** if
- * invalid arguments are passed.
- *
- * struct socket *bpf_sock_from_file(struct file *file)
- * Description
- * If the given file represents a socket, returns the associated
- * socket.
- * Return
- * A pointer to a struct socket on success or NULL if the file is
- * not a socket.
- *
- * long bpf_check_mtu(void *ctx, u32 ifindex, u32 *mtu_len, s32 len_diff, u64 flags)
- * Description
- * Check packet size against exceeding MTU of net device (based
- * on *ifindex*). This helper will likely be used in combination
- * with helpers that adjust/change the packet size.
- *
- * The argument *len_diff* can be used for querying with a planned
- * size change. This allows to check MTU prior to changing packet
- * ctx. Providing an *len_diff* adjustment that is larger than the
- * actual packet size (resulting in negative packet size) will in
- * principle not exceed the MTU, why it is not considered a
- * failure. Other BPF-helpers are needed for performing the
- * planned size change, why the responsability for catch a negative
- * packet size belong in those helpers.
- *
- * Specifying *ifindex* zero means the MTU check is performed
- * against the current net device. This is practical if this isn't
- * used prior to redirect.
- *
- * On input *mtu_len* must be a valid pointer, else verifier will
- * reject BPF program. If the value *mtu_len* is initialized to
- * zero then the ctx packet size is use. When value *mtu_len* is
- * provided as input this specify the L3 length that the MTU check
- * is done against. Remember XDP and TC length operate at L2, but
- * this value is L3 as this correlate to MTU and IP-header tot_len
- * values which are L3 (similar behavior as bpf_fib_lookup).
- *
- * The Linux kernel route table can configure MTUs on a more
- * specific per route level, which is not provided by this helper.
- * For route level MTU checks use the **bpf_fib_lookup**\ ()
- * helper.
- *
- * *ctx* is either **struct xdp_md** for XDP programs or
- * **struct sk_buff** for tc cls_act programs.
- *
- * The *flags* argument can be a combination of one or more of the
- * following values:
- *
- * **BPF_MTU_CHK_SEGS**
- * This flag will only works for *ctx* **struct sk_buff**.
- * If packet context contains extra packet segment buffers
- * (often knows as GSO skb), then MTU check is harder to
- * check at this point, because in transmit path it is
- * possible for the skb packet to get re-segmented
- * (depending on net device features). This could still be
- * a MTU violation, so this flag enables performing MTU
- * check against segments, with a different violation
- * return code to tell it apart. Check cannot use len_diff.
- *
- * On return *mtu_len* pointer contains the MTU value of the net
- * device. Remember the net device configured MTU is the L3 size,
- * which is returned here and XDP and TC length operate at L2.
- * Helper take this into account for you, but remember when using
- * MTU value in your BPF-code.
- *
- * Return
- * * 0 on success, and populate MTU value in *mtu_len* pointer.
- *
- * * < 0 if any input argument is invalid (*mtu_len* not updated)
- *
- * MTU violations return positive values, but also populate MTU
- * value in *mtu_len* pointer, as this can be needed for
- * implementing PMTU handing:
- *
- * * **BPF_MTU_CHK_RET_FRAG_NEEDED**
- * * **BPF_MTU_CHK_RET_SEGS_TOOBIG**
- *
*/
#define __BPF_FUNC_MAPPER(FN) \
FN(unspec), \
@@ -4032,56 +2938,7 @@ union bpf_attr {
FN(probe_read_user), \
FN(probe_read_kernel), \
FN(probe_read_user_str), \
- FN(probe_read_kernel_str), \
- FN(tcp_send_ack), \
- FN(send_signal_thread), \
- FN(jiffies64), \
- FN(read_branch_records), \
- FN(get_ns_current_pid_tgid), \
- FN(xdp_output), \
- FN(get_netns_cookie), \
- FN(get_current_ancestor_cgroup_id), \
- FN(sk_assign), \
- FN(ktime_get_boot_ns), \
- FN(seq_printf), \
- FN(seq_write), \
- FN(sk_cgroup_id), \
- FN(sk_ancestor_cgroup_id), \
- FN(ringbuf_output), \
- FN(ringbuf_reserve), \
- FN(ringbuf_submit), \
- FN(ringbuf_discard), \
- FN(ringbuf_query), \
- FN(csum_level), \
- FN(skc_to_tcp6_sock), \
- FN(skc_to_tcp_sock), \
- FN(skc_to_tcp_timewait_sock), \
- FN(skc_to_tcp_request_sock), \
- FN(skc_to_udp6_sock), \
- FN(get_task_stack), \
- FN(load_hdr_opt), \
- FN(store_hdr_opt), \
- FN(reserve_hdr_opt), \
- FN(inode_storage_get), \
- FN(inode_storage_delete), \
- FN(d_path), \
- FN(copy_from_user), \
- FN(snprintf_btf), \
- FN(seq_printf_btf), \
- FN(skb_cgroup_classid), \
- FN(redirect_neigh), \
- FN(per_cpu_ptr), \
- FN(this_cpu_ptr), \
- FN(redirect_peer), \
- FN(task_storage_get), \
- FN(task_storage_delete), \
- FN(get_current_task_btf), \
- FN(bprm_opts_set), \
- FN(ktime_get_coarse_ns), \
- FN(ima_inode_hash), \
- FN(sock_from_file), \
- FN(check_mtu), \
- /* */
+ FN(probe_read_kernel_str),
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call
@@ -4096,142 +2953,69 @@ enum bpf_func_id {
/* All flags used by eBPF helper functions, placed here. */
/* BPF_FUNC_skb_store_bytes flags. */
-enum {
- BPF_F_RECOMPUTE_CSUM = (1ULL << 0),
- BPF_F_INVALIDATE_HASH = (1ULL << 1),
-};
+#define BPF_F_RECOMPUTE_CSUM (1ULL << 0)
+#define BPF_F_INVALIDATE_HASH (1ULL << 1)
/* BPF_FUNC_l3_csum_replace and BPF_FUNC_l4_csum_replace flags.
* First 4 bits are for passing the header field size.
*/
-enum {
- BPF_F_HDR_FIELD_MASK = 0xfULL,
-};
+#define BPF_F_HDR_FIELD_MASK 0xfULL
/* BPF_FUNC_l4_csum_replace flags. */
-enum {
- BPF_F_PSEUDO_HDR = (1ULL << 4),
- BPF_F_MARK_MANGLED_0 = (1ULL << 5),
- BPF_F_MARK_ENFORCE = (1ULL << 6),
-};
+#define BPF_F_PSEUDO_HDR (1ULL << 4)
+#define BPF_F_MARK_MANGLED_0 (1ULL << 5)
+#define BPF_F_MARK_ENFORCE (1ULL << 6)
/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */
-enum {
- BPF_F_INGRESS = (1ULL << 0),
-};
+#define BPF_F_INGRESS (1ULL << 0)
/* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */
-enum {
- BPF_F_TUNINFO_IPV6 = (1ULL << 0),
-};
+#define BPF_F_TUNINFO_IPV6 (1ULL << 0)
/* flags for both BPF_FUNC_get_stackid and BPF_FUNC_get_stack. */
-enum {
- BPF_F_SKIP_FIELD_MASK = 0xffULL,
- BPF_F_USER_STACK = (1ULL << 8),
+#define BPF_F_SKIP_FIELD_MASK 0xffULL
+#define BPF_F_USER_STACK (1ULL << 8)
/* flags used by BPF_FUNC_get_stackid only. */
- BPF_F_FAST_STACK_CMP = (1ULL << 9),
- BPF_F_REUSE_STACKID = (1ULL << 10),
+#define BPF_F_FAST_STACK_CMP (1ULL << 9)
+#define BPF_F_REUSE_STACKID (1ULL << 10)
/* flags used by BPF_FUNC_get_stack only. */
- BPF_F_USER_BUILD_ID = (1ULL << 11),
-};
+#define BPF_F_USER_BUILD_ID (1ULL << 11)
/* BPF_FUNC_skb_set_tunnel_key flags. */
-enum {
- BPF_F_ZERO_CSUM_TX = (1ULL << 1),
- BPF_F_DONT_FRAGMENT = (1ULL << 2),
- BPF_F_SEQ_NUMBER = (1ULL << 3),
-};
+#define BPF_F_ZERO_CSUM_TX (1ULL << 1)
+#define BPF_F_DONT_FRAGMENT (1ULL << 2)
+#define BPF_F_SEQ_NUMBER (1ULL << 3)
/* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
* BPF_FUNC_perf_event_read_value flags.
*/
-enum {
- BPF_F_INDEX_MASK = 0xffffffffULL,
- BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK,
+#define BPF_F_INDEX_MASK 0xffffffffULL
+#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
/* BPF_FUNC_perf_event_output for sk_buff input context. */
- BPF_F_CTXLEN_MASK = (0xfffffULL << 32),
-};
+#define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
/* Current network namespace */
-enum {
- BPF_F_CURRENT_NETNS = (-1L),
-};
-
-/* BPF_FUNC_csum_level level values. */
-enum {
- BPF_CSUM_LEVEL_QUERY,
- BPF_CSUM_LEVEL_INC,
- BPF_CSUM_LEVEL_DEC,
- BPF_CSUM_LEVEL_RESET,
-};
+#define BPF_F_CURRENT_NETNS (-1L)
/* BPF_FUNC_skb_adjust_room flags. */
-enum {
- BPF_F_ADJ_ROOM_FIXED_GSO = (1ULL << 0),
- BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = (1ULL << 1),
- BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = (1ULL << 2),
- BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
- BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
- BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
-};
+#define BPF_F_ADJ_ROOM_FIXED_GSO (1ULL << 0)
-enum {
- BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
- BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56,
-};
+#define BPF_ADJ_ROOM_ENCAP_L2_MASK 0xff
+#define BPF_ADJ_ROOM_ENCAP_L2_SHIFT 56
+#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 (1ULL << 1)
+#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 (1ULL << 2)
+#define BPF_F_ADJ_ROOM_ENCAP_L4_GRE (1ULL << 3)
+#define BPF_F_ADJ_ROOM_ENCAP_L4_UDP (1ULL << 4)
#define BPF_F_ADJ_ROOM_ENCAP_L2(len) (((__u64)len & \
BPF_ADJ_ROOM_ENCAP_L2_MASK) \
<< BPF_ADJ_ROOM_ENCAP_L2_SHIFT)
/* BPF_FUNC_sysctl_get_name flags. */
-enum {
- BPF_F_SYSCTL_BASE_NAME = (1ULL << 0),
-};
-
-/* BPF_FUNC_<kernel_obj>_storage_get flags */
-enum {
- BPF_LOCAL_STORAGE_GET_F_CREATE = (1ULL << 0),
- /* BPF_SK_STORAGE_GET_F_CREATE is only kept for backward compatibility
- * and BPF_LOCAL_STORAGE_GET_F_CREATE must be used instead.
- */
- BPF_SK_STORAGE_GET_F_CREATE = BPF_LOCAL_STORAGE_GET_F_CREATE,
-};
+#define BPF_F_SYSCTL_BASE_NAME (1ULL << 0)
-/* BPF_FUNC_read_branch_records flags. */
-enum {
- BPF_F_GET_BRANCH_RECORDS_SIZE = (1ULL << 0),
-};
-
-/* BPF_FUNC_bpf_ringbuf_commit, BPF_FUNC_bpf_ringbuf_discard, and
- * BPF_FUNC_bpf_ringbuf_output flags.
- */
-enum {
- BPF_RB_NO_WAKEUP = (1ULL << 0),
- BPF_RB_FORCE_WAKEUP = (1ULL << 1),
-};
-
-/* BPF_FUNC_bpf_ringbuf_query flags */
-enum {
- BPF_RB_AVAIL_DATA = 0,
- BPF_RB_RING_SIZE = 1,
- BPF_RB_CONS_POS = 2,
- BPF_RB_PROD_POS = 3,
-};
-
-/* BPF ring buffer constants */
-enum {
- BPF_RINGBUF_BUSY_BIT = (1U << 31),
- BPF_RINGBUF_DISCARD_BIT = (1U << 30),
- BPF_RINGBUF_HDR_SZ = 8,
-};
-
-/* BPF_FUNC_sk_assign flags in bpf_sk_lookup context. */
-enum {
- BPF_SK_LOOKUP_F_REPLACE = (1ULL << 0),
- BPF_SK_LOOKUP_F_NO_REUSEPORT = (1ULL << 1),
-};
+/* BPF_FUNC_sk_storage_get flags */
+#define BPF_SK_STORAGE_GET_F_CREATE (1ULL << 0)
/* Mode for BPF_FUNC_skb_adjust_room helper. */
enum bpf_adj_room_mode {
@@ -4252,11 +3036,6 @@ enum bpf_lwt_encap_mode {
BPF_LWT_ENCAP_IP,
};
-/* Flags for bpf_bprm_opts_set helper */
-enum {
- BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
-};
-
#define __bpf_md_ptr(type, name) \
union { \
type name; \
@@ -4302,7 +3081,6 @@ struct __sk_buff {
__u32 wire_len;
__u32 gso_segs;
__bpf_md_ptr(struct bpf_sock *, sk);
- __u32 gso_size;
};
struct bpf_tunnel_key {
@@ -4370,7 +3148,6 @@ struct bpf_sock {
__u32 dst_ip4;
__u32 dst_ip6[4];
__u32 state;
- __s32 rx_queue_mapping;
};
struct bpf_tcp_sock {
@@ -4464,34 +3241,6 @@ struct xdp_md {
/* Below access go through struct xdp_rxq_info */
__u32 ingress_ifindex; /* rxq->dev->ifindex */
__u32 rx_queue_index; /* rxq->queue_index */
-
- __u32 egress_ifindex; /* txq->dev->ifindex */
-};
-
-/* DEVMAP map-value layout
- *
- * The struct data-layout of map-value is a configuration interface.
- * New members can only be added to the end of this structure.
- */
-struct bpf_devmap_val {
- __u32 ifindex; /* device index */
- union {
- int fd; /* prog fd on map write */
- __u32 id; /* prog id on map read */
- } bpf_prog;
-};
-
-/* CPUMAP map-value layout
- *
- * The struct data-layout of map-value is a configuration interface.
- * New members can only be added to the end of this structure.
- */
-struct bpf_cpumap_val {
- __u32 qsize; /* queue size to remote target CPU */
- union {
- int fd; /* prog fd on map write */
- __u32 id; /* prog id on map read */
- } bpf_prog;
};
enum sk_action {
@@ -4514,8 +3263,6 @@ struct sk_msg_md {
__u32 remote_port; /* Stored in network byte order */
__u32 local_port; /* stored in host byte order */
__u32 size; /* Total size of sk_msg */
-
- __bpf_md_ptr(struct bpf_sock *, sk); /* current socket */
};
struct sk_reuseport_md {
@@ -4581,7 +3328,6 @@ struct bpf_prog_info {
__aligned_u64 prog_tags;
__u64 run_time_ns;
__u64 run_cnt;
- __u64 recursion_misses;
} __attribute__((aligned(8)));
struct bpf_map_info {
@@ -4593,7 +3339,7 @@ struct bpf_map_info {
__u32 map_flags;
char name[BPF_OBJ_NAME_LEN];
__u32 ifindex;
- __u32 btf_vmlinux_value_type_id;
+ __u32 :32;
__u64 netns_dev;
__u64 netns_ino;
__u32 btf_id;
@@ -4605,49 +3351,11 @@ struct bpf_btf_info {
__aligned_u64 btf;
__u32 btf_size;
__u32 id;
- __aligned_u64 name;
- __u32 name_len;
- __u32 kernel_btf;
-} __attribute__((aligned(8)));
-
-struct bpf_link_info {
- __u32 type;
- __u32 id;
- __u32 prog_id;
- union {
- struct {
- __aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
- __u32 tp_name_len; /* in/out: tp_name buffer len */
- } raw_tracepoint;
- struct {
- __u32 attach_type;
- } tracing;
- struct {
- __u64 cgroup_id;
- __u32 attach_type;
- } cgroup;
- struct {
- __aligned_u64 target_name; /* in/out: target_name buffer ptr */
- __u32 target_name_len; /* in/out: target_name buffer len */
- union {
- struct {
- __u32 map_id;
- } map;
- };
- } iter;
- struct {
- __u32 netns_ino;
- __u32 attach_type;
- } netns;
- struct {
- __u32 ifindex;
- } xdp;
- };
} __attribute__((aligned(8)));
/* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
* by user and intended to be used by socket (e.g. to bind to, depends on
- * attach type).
+ * attach attach type).
*/
struct bpf_sock_addr {
__u32 user_family; /* Allows 4-byte read, but no write. */
@@ -4657,7 +3365,7 @@ struct bpf_sock_addr {
__u32 user_ip6[4]; /* Allows 1,2,4,8-byte read and 4,8-byte write.
* Stored in network byte order.
*/
- __u32 user_port; /* Allows 1,2,4-byte read and 4-byte write.
+ __u32 user_port; /* Allows 4-byte read and write.
* Stored in network byte order
*/
__u32 family; /* Allows 4-byte read, but no write */
@@ -4722,90 +3430,16 @@ struct bpf_sock_ops {
__u64 bytes_received;
__u64 bytes_acked;
__bpf_md_ptr(struct bpf_sock *, sk);
- /* [skb_data, skb_data_end) covers the whole TCP header.
- *
- * BPF_SOCK_OPS_PARSE_HDR_OPT_CB: The packet received
- * BPF_SOCK_OPS_HDR_OPT_LEN_CB: Not useful because the
- * header has not been written.
- * BPF_SOCK_OPS_WRITE_HDR_OPT_CB: The header and options have
- * been written so far.
- * BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: The SYNACK that concludes
- * the 3WHS.
- * BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: The ACK that concludes
- * the 3WHS.
- *
- * bpf_load_hdr_opt() can also be used to read a particular option.
- */
- __bpf_md_ptr(void *, skb_data);
- __bpf_md_ptr(void *, skb_data_end);
- __u32 skb_len; /* The total length of a packet.
- * It includes the header, options,
- * and payload.
- */
- __u32 skb_tcp_flags; /* tcp_flags of the header. It provides
- * an easy way to check for tcp_flags
- * without parsing skb_data.
- *
- * In particular, the skb_tcp_flags
- * will still be available in
- * BPF_SOCK_OPS_HDR_OPT_LEN even though
- * the outgoing header has not
- * been written yet.
- */
};
/* Definitions for bpf_sock_ops_cb_flags */
-enum {
- BPF_SOCK_OPS_RTO_CB_FLAG = (1<<0),
- BPF_SOCK_OPS_RETRANS_CB_FLAG = (1<<1),
- BPF_SOCK_OPS_STATE_CB_FLAG = (1<<2),
- BPF_SOCK_OPS_RTT_CB_FLAG = (1<<3),
- /* Call bpf for all received TCP headers. The bpf prog will be
- * called under sock_ops->op == BPF_SOCK_OPS_PARSE_HDR_OPT_CB
- *
- * Please refer to the comment in BPF_SOCK_OPS_PARSE_HDR_OPT_CB
- * for the header option related helpers that will be useful
- * to the bpf programs.
- *
- * It could be used at the client/active side (i.e. connect() side)
- * when the server told it that the server was in syncookie
- * mode and required the active side to resend the bpf-written
- * options. The active side can keep writing the bpf-options until
- * it received a valid packet from the server side to confirm
- * the earlier packet (and options) has been received. The later
- * example patch is using it like this at the active side when the
- * server is in syncookie mode.
- *
- * The bpf prog will usually turn this off in the common cases.
- */
- BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = (1<<4),
- /* Call bpf when kernel has received a header option that
- * the kernel cannot handle. The bpf prog will be called under
- * sock_ops->op == BPF_SOCK_OPS_PARSE_HDR_OPT_CB.
- *
- * Please refer to the comment in BPF_SOCK_OPS_PARSE_HDR_OPT_CB
- * for the header option related helpers that will be useful
- * to the bpf programs.
- */
- BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = (1<<5),
- /* Call bpf when the kernel is writing header options for the
- * outgoing packet. The bpf prog will first be called
- * to reserve space in a skb under
- * sock_ops->op == BPF_SOCK_OPS_HDR_OPT_LEN_CB. Then
- * the bpf prog will be called to write the header option(s)
- * under sock_ops->op == BPF_SOCK_OPS_WRITE_HDR_OPT_CB.
- *
- * Please refer to the comment in BPF_SOCK_OPS_HDR_OPT_LEN_CB
- * and BPF_SOCK_OPS_WRITE_HDR_OPT_CB for the header option
- * related helpers that will be useful to the bpf programs.
- *
- * The kernel gets its chance to reserve space and write
- * options first before the BPF program does.
- */
- BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = (1<<6),
-/* Mask of all currently supported cb flags */
- BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F,
-};
+#define BPF_SOCK_OPS_RTO_CB_FLAG (1<<0)
+#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1<<1)
+#define BPF_SOCK_OPS_STATE_CB_FLAG (1<<2)
+#define BPF_SOCK_OPS_RTT_CB_FLAG (1<<3)
+#define BPF_SOCK_OPS_ALL_CB_FLAGS 0xF /* Mask of all currently
+ * supported cb flags
+ */
/* List of known BPF sock_ops operators.
* New entries can only be added at the end
@@ -4860,63 +3494,6 @@ enum {
*/
BPF_SOCK_OPS_RTT_CB, /* Called on every RTT.
*/
- BPF_SOCK_OPS_PARSE_HDR_OPT_CB, /* Parse the header option.
- * It will be called to handle
- * the packets received at
- * an already established
- * connection.
- *
- * sock_ops->skb_data:
- * Referring to the received skb.
- * It covers the TCP header only.
- *
- * bpf_load_hdr_opt() can also
- * be used to search for a
- * particular option.
- */
- BPF_SOCK_OPS_HDR_OPT_LEN_CB, /* Reserve space for writing the
- * header option later in
- * BPF_SOCK_OPS_WRITE_HDR_OPT_CB.
- * Arg1: bool want_cookie. (in
- * writing SYNACK only)
- *
- * sock_ops->skb_data:
- * Not available because no header has
- * been written yet.
- *
- * sock_ops->skb_tcp_flags:
- * The tcp_flags of the
- * outgoing skb. (e.g. SYN, ACK, FIN).
- *
- * bpf_reserve_hdr_opt() should
- * be used to reserve space.
- */
- BPF_SOCK_OPS_WRITE_HDR_OPT_CB, /* Write the header options
- * Arg1: bool want_cookie. (in
- * writing SYNACK only)
- *
- * sock_ops->skb_data:
- * Referring to the outgoing skb.
- * It covers the TCP header
- * that has already been written
- * by the kernel and the
- * earlier bpf-progs.
- *
- * sock_ops->skb_tcp_flags:
- * The tcp_flags of the outgoing
- * skb. (e.g. SYN, ACK, FIN).
- *
- * bpf_store_hdr_opt() should
- * be used to write the
- * option.
- *
- * bpf_load_hdr_opt() can also
- * be used to search for a
- * particular option that
- * has already been written
- * by the kernel or the
- * earlier bpf-progs.
- */
};
/* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -4941,67 +3518,8 @@ enum {
BPF_TCP_MAX_STATES /* Leave at the end! */
};
-enum {
- TCP_BPF_IW = 1001, /* Set TCP initial congestion window */
- TCP_BPF_SNDCWND_CLAMP = 1002, /* Set sndcwnd_clamp */
- TCP_BPF_DELACK_MAX = 1003, /* Max delay ack in usecs */
- TCP_BPF_RTO_MIN = 1004, /* Min delay ack in usecs */
- /* Copy the SYN pkt to optval
- *
- * BPF_PROG_TYPE_SOCK_OPS only. It is similar to the
- * bpf_getsockopt(TCP_SAVED_SYN) but it does not limit
- * to only getting from the saved_syn. It can either get the
- * syn packet from:
- *
- * 1. the just-received SYN packet (only available when writing the
- * SYNACK). It will be useful when it is not necessary to
- * save the SYN packet for latter use. It is also the only way
- * to get the SYN during syncookie mode because the syn
- * packet cannot be saved during syncookie.
- *
- * OR
- *
- * 2. the earlier saved syn which was done by
- * bpf_setsockopt(TCP_SAVE_SYN).
- *
- * The bpf_getsockopt(TCP_BPF_SYN*) option will hide where the
- * SYN packet is obtained.
- *
- * If the bpf-prog does not need the IP[46] header, the
- * bpf-prog can avoid parsing the IP header by using
- * TCP_BPF_SYN. Otherwise, the bpf-prog can get both
- * IP[46] and TCP header by using TCP_BPF_SYN_IP.
- *
- * >0: Total number of bytes copied
- * -ENOSPC: Not enough space in optval. Only optlen number of
- * bytes is copied.
- * -ENOENT: The SYN skb is not available now and the earlier SYN pkt
- * is not saved by setsockopt(TCP_SAVE_SYN).
- */
- TCP_BPF_SYN = 1005, /* Copy the TCP header */
- TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */
- TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */
-};
-
-enum {
- BPF_LOAD_HDR_OPT_TCP_SYN = (1ULL << 0),
-};
-
-/* args[0] value during BPF_SOCK_OPS_HDR_OPT_LEN_CB and
- * BPF_SOCK_OPS_WRITE_HDR_OPT_CB.
- */
-enum {
- BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, /* Kernel is finding the
- * total option spaces
- * required for an established
- * sk in order to calculate the
- * MSS. No skb is actually
- * sent.
- */
- BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, /* Kernel is in syncookie mode
- * when sending a SYN.
- */
-};
+#define TCP_BPF_IW 1001 /* Set TCP initial congestion window */
+#define TCP_BPF_SNDCWND_CLAMP 1002 /* Set sndcwnd_clamp */
struct bpf_perf_event_value {
__u64 counter;
@@ -5009,16 +3527,12 @@ struct bpf_perf_event_value {
__u64 running;
};
-enum {
- BPF_DEVCG_ACC_MKNOD = (1ULL << 0),
- BPF_DEVCG_ACC_READ = (1ULL << 1),
- BPF_DEVCG_ACC_WRITE = (1ULL << 2),
-};
+#define BPF_DEVCG_ACC_MKNOD (1ULL << 0)
+#define BPF_DEVCG_ACC_READ (1ULL << 1)
+#define BPF_DEVCG_ACC_WRITE (1ULL << 2)
-enum {
- BPF_DEVCG_DEV_BLOCK = (1ULL << 0),
- BPF_DEVCG_DEV_CHAR = (1ULL << 1),
-};
+#define BPF_DEVCG_DEV_BLOCK (1ULL << 0)
+#define BPF_DEVCG_DEV_CHAR (1ULL << 1)
struct bpf_cgroup_dev_ctx {
/* access_type encoded as (BPF_DEVCG_ACC_* << 16) | BPF_DEVCG_DEV_* */
@@ -5034,10 +3548,8 @@ struct bpf_raw_tracepoint_args {
/* DIRECT: Skip the FIB rules and go to FIB table associated with device
* OUTPUT: Do lookup from egress perspective; default is ingress
*/
-enum {
- BPF_FIB_LOOKUP_DIRECT = (1U << 0),
- BPF_FIB_LOOKUP_OUTPUT = (1U << 1),
-};
+#define BPF_FIB_LOOKUP_DIRECT (1U << 0)
+#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)
enum {
BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
@@ -5062,13 +3574,9 @@ struct bpf_fib_lookup {
__be16 sport;
__be16 dport;
- union { /* used for MTU check */
- /* input to lookup */
- __u16 tot_len; /* L3 length from network hdr (iph->tot_len) */
+ /* total length of packet from network header - used for MTU check */
+ __u16 tot_len;
- /* output: MTU value */
- __u16 mtu_result;
- };
/* input: L3 device index for lookup
* output: device index from FIB lookup
*/
@@ -5104,27 +3612,6 @@ struct bpf_fib_lookup {
__u8 dmac[6]; /* ETH_ALEN */
};
-struct bpf_redir_neigh {
- /* network family for lookup (AF_INET, AF_INET6) */
- __u32 nh_family;
- /* network address of nexthop; skips fib lookup to find gateway */
- union {
- __be32 ipv4_nh;
- __u32 ipv6_nh[4]; /* in6_addr; network order */
- };
-};
-
-/* bpf_check_mtu flags*/
-enum bpf_check_mtu_flags {
- BPF_MTU_CHK_SEGS = (1U << 0),
-};
-
-enum bpf_check_mtu_ret {
- BPF_MTU_CHK_RET_SUCCESS, /* check and lookup successful */
- BPF_MTU_CHK_RET_FRAG_NEEDED, /* fragmentation required to fwd */
- BPF_MTU_CHK_RET_SEGS_TOOBIG, /* GSO re-segmentation needed to fwd */
-};
-
enum bpf_task_fd_type {
BPF_FD_TYPE_RAW_TRACEPOINT, /* tp name */
BPF_FD_TYPE_TRACEPOINT, /* tp name */
@@ -5134,11 +3621,9 @@ enum bpf_task_fd_type {
BPF_FD_TYPE_URETPROBE, /* filename + offset */
};
-enum {
- BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = (1U << 0),
- BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = (1U << 1),
- BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = (1U << 2),
-};
+#define BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG (1U << 0)
+#define BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL (1U << 1)
+#define BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP (1U << 2)
struct bpf_flow_keys {
__u16 nhoff;
@@ -5204,53 +3689,4 @@ struct bpf_sockopt {
__s32 retval;
};
-struct bpf_pidns_info {
- __u32 pid;
- __u32 tgid;
-};
-
-/* User accessible data for SK_LOOKUP programs. Add new fields at the end. */
-struct bpf_sk_lookup {
- __bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */
-
- __u32 family; /* Protocol family (AF_INET, AF_INET6) */
- __u32 protocol; /* IP protocol (IPPROTO_TCP, IPPROTO_UDP) */
- __u32 remote_ip4; /* Network byte order */
- __u32 remote_ip6[4]; /* Network byte order */
- __u32 remote_port; /* Network byte order */
- __u32 local_ip4; /* Network byte order */
- __u32 local_ip6[4]; /* Network byte order */
- __u32 local_port; /* Host byte order */
-};
-
-/*
- * struct btf_ptr is used for typed pointer representation; the
- * type id is used to render the pointer data as the appropriate type
- * via the bpf_snprintf_btf() helper described above. A flags field -
- * potentially to specify additional details about the BTF pointer
- * (rather than its mode of display) - is included for future use.
- * Display flags - BTF_F_* - are passed to bpf_snprintf_btf separately.
- */
-struct btf_ptr {
- void *ptr;
- __u32 type_id;
- __u32 flags; /* BTF ptr flags; unused at present. */
-};
-
-/*
- * Flags to control bpf_snprintf_btf() behaviour.
- * - BTF_F_COMPACT: no formatting around type information
- * - BTF_F_NONAME: no struct/union member names/types
- * - BTF_F_PTR_RAW: show raw (unobfuscated) pointer values;
- * equivalent to %px.
- * - BTF_F_ZERO: show zero-valued struct/union members; they
- * are not displayed by default
- */
-enum {
- BTF_F_COMPACT = (1ULL << 0),
- BTF_F_NONAME = (1ULL << 1),
- BTF_F_PTR_RAW = (1ULL << 2),
- BTF_F_ZERO = (1ULL << 3),
-};
-
#endif /* _UAPI__LINUX_BPF_H__ */
diff --git a/original/uapi/linux/btf.h b/original/uapi/linux/btf.h
index 5a66710..c02dec9 100644
--- a/original/uapi/linux/btf.h
+++ b/original/uapi/linux/btf.h
@@ -142,14 +142,7 @@ struct btf_param {
enum {
BTF_VAR_STATIC = 0,
- BTF_VAR_GLOBAL_ALLOCATED = 1,
- BTF_VAR_GLOBAL_EXTERN = 2,
-};
-
-enum btf_func_linkage {
- BTF_FUNC_STATIC = 0,
- BTF_FUNC_GLOBAL = 1,
- BTF_FUNC_EXTERN = 2,
+ BTF_VAR_GLOBAL_ALLOCATED,
};
/* BTF_KIND_VAR is followed by a single "struct btf_var" to describe
diff --git a/original/uapi/linux/btrfs.h b/original/uapi/linux/btrfs.h
index 5df7300..7a8bc8b 100644
--- a/original/uapi/linux/btrfs.h
+++ b/original/uapi/linux/btrfs.h
@@ -36,22 +36,17 @@ struct btrfs_ioctl_vol_args {
#define BTRFS_DEVICE_PATH_NAME_MAX 1024
#define BTRFS_SUBVOL_NAME_MAX 4039
-#ifndef __KERNEL__
-/* Deprecated since 5.7 */
-# define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
-#endif
+#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2)
#define BTRFS_DEVICE_SPEC_BY_ID (1ULL << 3)
-#define BTRFS_SUBVOL_SPEC_BY_ID (1ULL << 4)
-
#define BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED \
- (BTRFS_SUBVOL_RDONLY | \
+ (BTRFS_SUBVOL_CREATE_ASYNC | \
+ BTRFS_SUBVOL_RDONLY | \
BTRFS_SUBVOL_QGROUP_INHERIT | \
- BTRFS_DEVICE_SPEC_BY_ID | \
- BTRFS_SUBVOL_SPEC_BY_ID)
+ BTRFS_DEVICE_SPEC_BY_ID)
#define BTRFS_FSID_SIZE 16
#define BTRFS_UUID_SIZE 16
@@ -102,29 +97,16 @@ struct btrfs_ioctl_qgroup_limit_args {
};
/*
- * Arguments for specification of subvolumes or devices, supporting by-name or
- * by-id and flags
+ * flags for subvolumes
*
- * The set of supported flags depends on the ioctl
+ * Used by:
+ * struct btrfs_ioctl_vol_args_v2.flags
*
* BTRFS_SUBVOL_RDONLY is also provided/consumed by the following ioctls:
* - BTRFS_IOC_SUBVOL_GETFLAGS
* - BTRFS_IOC_SUBVOL_SETFLAGS
*/
-/* Supported flags for BTRFS_IOC_RM_DEV_V2 */
-#define BTRFS_DEVICE_REMOVE_ARGS_MASK \
- (BTRFS_DEVICE_SPEC_BY_ID)
-
-/* Supported flags for BTRFS_IOC_SNAP_CREATE_V2 and BTRFS_IOC_SUBVOL_CREATE_V2 */
-#define BTRFS_SUBVOL_CREATE_ARGS_MASK \
- (BTRFS_SUBVOL_RDONLY | \
- BTRFS_SUBVOL_QGROUP_INHERIT)
-
-/* Supported flags for BTRFS_IOC_SNAP_DESTROY_V2 */
-#define BTRFS_SUBVOL_DELETE_ARGS_MASK \
- (BTRFS_SUBVOL_SPEC_BY_ID)
-
struct btrfs_ioctl_vol_args_v2 {
__s64 fd;
__u64 transid;
@@ -139,7 +121,6 @@ struct btrfs_ioctl_vol_args_v2 {
union {
char name[BTRFS_SUBVOL_NAME_MAX + 1];
__u64 devid;
- __u64 subvolid;
};
};
@@ -243,18 +224,6 @@ struct btrfs_ioctl_dev_info_args {
__u8 path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */
};
-/*
- * Retrieve information about the filesystem
- */
-
-/* Request information about checksum type and size */
-#define BTRFS_FS_INFO_FLAG_CSUM_INFO (1 << 0)
-
-/* Request information about filesystem generation */
-#define BTRFS_FS_INFO_FLAG_GENERATION (1 << 1)
-/* Request information about filesystem metadata UUID */
-#define BTRFS_FS_INFO_FLAG_METADATA_UUID (1 << 2)
-
struct btrfs_ioctl_fs_info_args {
__u64 max_id; /* out */
__u64 num_devices; /* out */
@@ -262,13 +231,8 @@ struct btrfs_ioctl_fs_info_args {
__u32 nodesize; /* out */
__u32 sectorsize; /* out */
__u32 clone_alignment; /* out */
- /* See BTRFS_FS_INFO_FLAG_* */
- __u16 csum_type; /* out */
- __u16 csum_size; /* out */
- __u64 flags; /* in/out */
- __u64 generation; /* out */
- __u8 metadata_uuid[BTRFS_FSID_SIZE]; /* out */
- __u8 reserved[944]; /* pad to 1k */
+ __u32 reserved32;
+ __u64 reserved[122]; /* pad to 1k */
};
/*
@@ -307,7 +271,6 @@ struct btrfs_ioctl_fs_info_args {
#define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)
#define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10)
#define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11)
-#define BTRFS_FEATURE_INCOMPAT_ZONED (1ULL << 12)
struct btrfs_ioctl_feature_flags {
__u64 compat_flags;
@@ -986,7 +949,5 @@ enum btrfs_err_code {
struct btrfs_ioctl_get_subvol_rootref_args)
#define BTRFS_IOC_INO_LOOKUP_USER _IOWR(BTRFS_IOCTL_MAGIC, 62, \
struct btrfs_ioctl_ino_lookup_user_args)
-#define BTRFS_IOC_SNAP_DESTROY_V2 _IOW(BTRFS_IOCTL_MAGIC, 63, \
- struct btrfs_ioctl_vol_args_v2)
#endif /* _UAPI_LINUX_BTRFS_H */
diff --git a/original/uapi/linux/btrfs_tree.h b/original/uapi/linux/btrfs_tree.h
index 58d7cff..8e322e2 100644
--- a/original/uapi/linux/btrfs_tree.h
+++ b/original/uapi/linux/btrfs_tree.h
@@ -4,11 +4,6 @@
#include <linux/btrfs.h>
#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/stddef.h>
-#else
-#include <stddef.h>
-#endif
/*
* This header contains the structure definitions and constants used
@@ -299,8 +294,7 @@
*/
#define BTRFS_STRING_ITEM_KEY 253
-/* Maximum metadata block size (nodesize) */
-#define BTRFS_MAX_METADATA_BLOCKSIZE 65536
+
/* 32 bytes in various csum fields */
#define BTRFS_CSUM_SIZE 32
@@ -525,6 +519,15 @@ struct btrfs_extent_inline_ref {
__le64 offset;
} __attribute__ ((__packed__));
+/* old style backrefs item */
+struct btrfs_extent_ref_v0 {
+ __le64 root;
+ __le64 generation;
+ __le64 objectid;
+ __le32 count;
+} __attribute__ ((__packed__));
+
+
/* dev extents record free space on individual devices. The owner
* field points back to the chunk allocation mapping tree that allocated
* the extent. The chunk tree uuid field is a way to double check the owner
@@ -651,15 +654,6 @@ struct btrfs_root_item {
} __attribute__ ((__packed__));
/*
- * Btrfs root item used to be smaller than current size. The old format ends
- * at where member generation_v2 is.
- */
-static inline __u32 btrfs_legacy_root_item_size(void)
-{
- return offsetof(struct btrfs_root_item, generation_v2);
-}
-
-/*
* this is used for both forward and backward root refs
*/
struct btrfs_root_ref {
@@ -928,9 +922,9 @@ struct btrfs_free_space_info {
#define BTRFS_FREE_SPACE_USING_BITMAPS (1ULL << 0)
#define BTRFS_QGROUP_LEVEL_SHIFT 48
-static inline __u16 btrfs_qgroup_level(__u64 qgroupid)
+static inline __u64 btrfs_qgroup_level(__u64 qgroupid)
{
- return (__u16)(qgroupid >> BTRFS_QGROUP_LEVEL_SHIFT);
+ return qgroupid >> BTRFS_QGROUP_LEVEL_SHIFT;
}
/*
diff --git a/original/uapi/linux/caif/caif_socket.h b/original/uapi/linux/caif/caif_socket.h
index d9970bb..10ec1d1 100644
--- a/original/uapi/linux/caif/caif_socket.h
+++ b/original/uapi/linux/caif/caif_socket.h
@@ -169,7 +169,7 @@ struct sockaddr_caif {
* @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are
* available. Either a high bandwidth
* link can be selected (CAIF_LINK_HIGH_BANDW) or
- * a low latency link (CAIF_LINK_LOW_LATENCY).
+ * or a low latency link (CAIF_LINK_LOW_LATENCY).
* This option is of type __u32.
* Alternatively SO_BINDTODEVICE can be used.
*
diff --git a/original/uapi/linux/can.h b/original/uapi/linux/can.h
index c753535..6a6d2c7 100644
--- a/original/uapi/linux/can.h
+++ b/original/uapi/linux/can.h
@@ -84,7 +84,6 @@ typedef __u32 can_err_mask_t;
/* CAN payload length and DLC definitions according to ISO 11898-1 */
#define CAN_MAX_DLC 8
-#define CAN_MAX_RAW_DLC 15
#define CAN_MAX_DLEN 8
/* CAN FD payload length and DLC definitions according to ISO 11898-7 */
@@ -92,32 +91,23 @@ typedef __u32 can_err_mask_t;
#define CANFD_MAX_DLEN 64
/**
- * struct can_frame - Classical CAN frame structure (aka CAN 2.0B)
- * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition
- * @len: CAN frame payload length in byte (0 .. 8)
- * @can_dlc: deprecated name for CAN frame payload length in byte (0 .. 8)
- * @__pad: padding
- * @__res0: reserved / padding
- * @len8_dlc: optional DLC value (9 .. 15) at 8 byte payload length
- * len8_dlc contains values from 9 .. 15 when the payload length is
- * 8 bytes but the DLC value (see ISO 11898-1) is greater then 8.
- * CAN_CTRLMODE_CC_LEN8_DLC flag has to be enabled in CAN driver.
- * @data: CAN frame payload (up to 8 byte)
+ * struct can_frame - basic CAN frame structure
+ * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition
+ * @can_dlc: frame payload length in byte (0 .. 8) aka data length code
+ * N.B. the DLC field from ISO 11898-1 Chapter 8.4.2.3 has a 1:1
+ * mapping of the 'data length code' to the real payload length
+ * @__pad: padding
+ * @__res0: reserved / padding
+ * @__res1: reserved / padding
+ * @data: CAN frame payload (up to 8 byte)
*/
struct can_frame {
canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
- union {
- /* CAN frame payload length in byte (0 .. CAN_MAX_DLEN)
- * was previously named can_dlc so we need to carry that
- * name for legacy support
- */
- __u8 len;
- __u8 can_dlc; /* deprecated */
- } __attribute__((packed)); /* disable padding added in some ABIs */
- __u8 __pad; /* padding */
- __u8 __res0; /* reserved / padding */
- __u8 len8_dlc; /* optional DLC for 8 byte payload length (9 .. 15) */
- __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8)));
+ __u8 can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */
+ __u8 __pad; /* padding */
+ __u8 __res0; /* reserved / padding */
+ __u8 __res1; /* reserved / padding */
+ __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8)));
};
/*
diff --git a/original/uapi/linux/can/gw.h b/original/uapi/linux/can/gw.h
index e4f0957..c2190bb 100644
--- a/original/uapi/linux/can/gw.h
+++ b/original/uapi/linux/can/gw.h
@@ -98,8 +98,8 @@ enum {
/* CAN frame elements that are affected by curr. 3 CAN frame modifications */
#define CGW_MOD_ID 0x01
-#define CGW_MOD_DLC 0x02 /* Classical CAN data length code */
-#define CGW_MOD_LEN CGW_MOD_DLC /* CAN FD (plain) data length */
+#define CGW_MOD_DLC 0x02 /* contains the data length in bytes */
+#define CGW_MOD_LEN CGW_MOD_DLC /* CAN FD length representation */
#define CGW_MOD_DATA 0x04
#define CGW_MOD_FLAGS 0x08 /* CAN FD flags */
diff --git a/original/uapi/linux/can/isotp.h b/original/uapi/linux/can/isotp.h
deleted file mode 100644
index c55935b..0000000
--- a/original/uapi/linux/can/isotp.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
-/*
- * linux/can/isotp.h
- *
- * Definitions for isotp CAN sockets (ISO 15765-2:2016)
- *
- * Copyright (c) 2020 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Volkswagen nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * Alternatively, provided that this notice is retained in full, this
- * software may be distributed under the terms of the GNU General
- * Public License ("GPL") version 2, in which case the provisions of the
- * GPL apply INSTEAD OF those given above.
- *
- * The provided data structures and external interfaces from this code
- * are not restricted to be used by modules with a GPL compatible license.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- */
-
-#ifndef _UAPI_CAN_ISOTP_H
-#define _UAPI_CAN_ISOTP_H
-
-#include <linux/types.h>
-#include <linux/can.h>
-
-#define SOL_CAN_ISOTP (SOL_CAN_BASE + CAN_ISOTP)
-
-/* for socket options affecting the socket (not the global system) */
-
-#define CAN_ISOTP_OPTS 1 /* pass struct can_isotp_options */
-
-#define CAN_ISOTP_RECV_FC 2 /* pass struct can_isotp_fc_options */
-
-/* sockopts to force stmin timer values for protocol regression tests */
-
-#define CAN_ISOTP_TX_STMIN 3 /* pass __u32 value in nano secs */
- /* use this time instead of value */
- /* provided in FC from the receiver */
-
-#define CAN_ISOTP_RX_STMIN 4 /* pass __u32 value in nano secs */
- /* ignore received CF frames which */
- /* timestamps differ less than val */
-
-#define CAN_ISOTP_LL_OPTS 5 /* pass struct can_isotp_ll_options */
-
-struct can_isotp_options {
-
- __u32 flags; /* set flags for isotp behaviour. */
- /* __u32 value : flags see below */
-
- __u32 frame_txtime; /* frame transmission time (N_As/N_Ar) */
- /* __u32 value : time in nano secs */
-
- __u8 ext_address; /* set address for extended addressing */
- /* __u8 value : extended address */
-
- __u8 txpad_content; /* set content of padding byte (tx) */
- /* __u8 value : content on tx path */
-
- __u8 rxpad_content; /* set content of padding byte (rx) */
- /* __u8 value : content on rx path */
-
- __u8 rx_ext_address; /* set address for extended addressing */
- /* __u8 value : extended address (rx) */
-};
-
-struct can_isotp_fc_options {
-
- __u8 bs; /* blocksize provided in FC frame */
- /* __u8 value : blocksize. 0 = off */
-
- __u8 stmin; /* separation time provided in FC frame */
- /* __u8 value : */
- /* 0x00 - 0x7F : 0 - 127 ms */
- /* 0x80 - 0xF0 : reserved */
- /* 0xF1 - 0xF9 : 100 us - 900 us */
- /* 0xFA - 0xFF : reserved */
-
- __u8 wftmax; /* max. number of wait frame transmiss. */
- /* __u8 value : 0 = omit FC N_PDU WT */
-};
-
-struct can_isotp_ll_options {
-
- __u8 mtu; /* generated & accepted CAN frame type */
- /* __u8 value : */
- /* CAN_MTU (16) -> standard CAN 2.0 */
- /* CANFD_MTU (72) -> CAN FD frame */
-
- __u8 tx_dl; /* tx link layer data length in bytes */
- /* (configured maximum payload length) */
- /* __u8 value : 8,12,16,20,24,32,48,64 */
- /* => rx path supports all LL_DL values */
-
- __u8 tx_flags; /* set into struct canfd_frame.flags */
- /* at frame creation: e.g. CANFD_BRS */
- /* Obsolete when the BRS flag is fixed */
- /* by the CAN netdriver configuration */
-};
-
-/* flags for isotp behaviour */
-
-#define CAN_ISOTP_LISTEN_MODE 0x001 /* listen only (do not send FC) */
-#define CAN_ISOTP_EXTEND_ADDR 0x002 /* enable extended addressing */
-#define CAN_ISOTP_TX_PADDING 0x004 /* enable CAN frame padding tx path */
-#define CAN_ISOTP_RX_PADDING 0x008 /* enable CAN frame padding rx path */
-#define CAN_ISOTP_CHK_PAD_LEN 0x010 /* check received CAN frame padding */
-#define CAN_ISOTP_CHK_PAD_DATA 0x020 /* check received CAN frame padding */
-#define CAN_ISOTP_HALF_DUPLEX 0x040 /* half duplex error state handling */
-#define CAN_ISOTP_FORCE_TXSTMIN 0x080 /* ignore stmin from received FC */
-#define CAN_ISOTP_FORCE_RXSTMIN 0x100 /* ignore CFs depending on rx stmin */
-#define CAN_ISOTP_RX_EXT_ADDR 0x200 /* different rx extended addressing */
-#define CAN_ISOTP_WAIT_TX_DONE 0x400 /* wait for tx completion */
-#define CAN_ISOTP_SF_BROADCAST 0x800 /* 1-to-N functional addressing */
-
-/* default values */
-
-#define CAN_ISOTP_DEFAULT_FLAGS 0
-#define CAN_ISOTP_DEFAULT_EXT_ADDRESS 0x00
-#define CAN_ISOTP_DEFAULT_PAD_CONTENT 0xCC /* prevent bit-stuffing */
-#define CAN_ISOTP_DEFAULT_FRAME_TXTIME 0
-#define CAN_ISOTP_DEFAULT_RECV_BS 0
-#define CAN_ISOTP_DEFAULT_RECV_STMIN 0x00
-#define CAN_ISOTP_DEFAULT_RECV_WFTMAX 0
-
-#define CAN_ISOTP_DEFAULT_LL_MTU CAN_MTU
-#define CAN_ISOTP_DEFAULT_LL_TX_DL CAN_MAX_DLEN
-#define CAN_ISOTP_DEFAULT_LL_TX_FLAGS 0
-
-/*
- * Remark on CAN_ISOTP_DEFAULT_RECV_* values:
- *
- * We can strongly assume, that the Linux Kernel implementation of
- * CAN_ISOTP is capable to run with BS=0, STmin=0 and WFTmax=0.
- * But as we like to be able to behave as a commonly available ECU,
- * these default settings can be changed via sockopts.
- * For that reason the STmin value is intentionally _not_ checked for
- * consistency and copied directly into the flow control (FC) frame.
- */
-
-#endif /* !_UAPI_CAN_ISOTP_H */
diff --git a/original/uapi/linux/can/netlink.h b/original/uapi/linux/can/netlink.h
index f730d44..6f598b7 100644
--- a/original/uapi/linux/can/netlink.h
+++ b/original/uapi/linux/can/netlink.h
@@ -100,7 +100,6 @@ struct can_ctrlmode {
#define CAN_CTRLMODE_FD 0x20 /* CAN FD mode */
#define CAN_CTRLMODE_PRESUME_ACK 0x40 /* Ignore missing CAN ACKs */
#define CAN_CTRLMODE_FD_NON_ISO 0x80 /* CAN FD in non-ISO mode */
-#define CAN_CTRLMODE_CC_LEN8_DLC 0x100 /* Classic CAN DLC option */
/*
* CAN device statistics
diff --git a/original/uapi/linux/can/raw.h b/original/uapi/linux/can/raw.h
index 3386aa8..6a11d30 100644
--- a/original/uapi/linux/can/raw.h
+++ b/original/uapi/linux/can/raw.h
@@ -49,9 +49,6 @@
#include <linux/can.h>
#define SOL_CAN_RAW (SOL_CAN_BASE + CAN_RAW)
-enum {
- SCM_CAN_RAW_ERRQUEUE = 1,
-};
/* for socket options affecting the socket (not the global system) */
diff --git a/original/uapi/linux/capability.h b/original/uapi/linux/capability.h
index 741985d..240fdb9 100644
--- a/original/uapi/linux/capability.h
+++ b/original/uapi/linux/capability.h
@@ -274,7 +274,6 @@ struct vfs_ns_cap_data {
arbitrary SCSI commands */
/* Allow setting encryption key on loopback filesystem */
/* Allow setting zone reclaim policy */
-/* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */
#define CAP_SYS_ADMIN 21
@@ -302,7 +301,6 @@ struct vfs_ns_cap_data {
/* Allow more than 64hz interrupts from the real-time clock */
/* Override max number of consoles on console allocation */
/* Override max number of keymaps */
-/* Control memory reclaim behavior */
#define CAP_SYS_RESOURCE 24
@@ -333,9 +331,6 @@ struct vfs_ns_cap_data {
#define CAP_AUDIT_CONTROL 30
-/* Set or remove capabilities on files.
- Map uid=0 into a child user namespace. */
-
#define CAP_SETFCAP 31
/* Override MAC access.
@@ -371,52 +366,8 @@ struct vfs_ns_cap_data {
#define CAP_AUDIT_READ 37
-/*
- * Allow system performance and observability privileged operations
- * using perf_events, i915_perf and other kernel subsystems
- */
-
-#define CAP_PERFMON 38
-
-/*
- * CAP_BPF allows the following BPF operations:
- * - Creating all types of BPF maps
- * - Advanced verifier features
- * - Indirect variable access
- * - Bounded loops
- * - BPF to BPF function calls
- * - Scalar precision tracking
- * - Larger complexity limits
- * - Dead code elimination
- * - And potentially other features
- * - Loading BPF Type Format (BTF) data
- * - Retrieve xlated and JITed code of BPF programs
- * - Use bpf_spin_lock() helper
- *
- * CAP_PERFMON relaxes the verifier checks further:
- * - BPF progs can use of pointer-to-integer conversions
- * - speculation attack hardening measures are bypassed
- * - bpf_probe_read to read arbitrary kernel memory is allowed
- * - bpf_trace_printk to print kernel memory is allowed
- *
- * CAP_SYS_ADMIN is required to use bpf_probe_write_user.
- *
- * CAP_SYS_ADMIN is required to iterate system wide loaded
- * programs, maps, links, BTFs and convert their IDs to file descriptors.
- *
- * CAP_PERFMON and CAP_BPF are required to load tracing programs.
- * CAP_NET_ADMIN and CAP_BPF are required to load networking programs.
- */
-#define CAP_BPF 39
-
-
-/* Allow checkpoint/restore related operations */
-/* Allow PID selection during clone3() */
-/* Allow writing to ns_last_pid */
-
-#define CAP_CHECKPOINT_RESTORE 40
-#define CAP_LAST_CAP CAP_CHECKPOINT_RESTORE
+#define CAP_LAST_CAP CAP_AUDIT_READ
#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
diff --git a/original/uapi/linux/ccs.h b/original/uapi/linux/ccs.h
deleted file mode 100644
index 2896d3b..0000000
--- a/original/uapi/linux/ccs.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
-/* Copyright (C) 2020 Intel Corporation */
-
-#ifndef __UAPI_CCS_H__
-#define __UAPI_CCS_H__
-
-#include <linux/v4l2-controls.h>
-
-#define V4L2_CID_CCS_ANALOGUE_GAIN_M0 (V4L2_CID_USER_CCS_BASE + 1)
-#define V4L2_CID_CCS_ANALOGUE_GAIN_C0 (V4L2_CID_USER_CCS_BASE + 2)
-#define V4L2_CID_CCS_ANALOGUE_GAIN_M1 (V4L2_CID_USER_CCS_BASE + 3)
-#define V4L2_CID_CCS_ANALOGUE_GAIN_C1 (V4L2_CID_USER_CCS_BASE + 4)
-#define V4L2_CID_CCS_ANALOGUE_LINEAR_GAIN (V4L2_CID_USER_CCS_BASE + 5)
-#define V4L2_CID_CCS_ANALOGUE_EXPONENTIAL_GAIN (V4L2_CID_USER_CCS_BASE + 6)
-#define V4L2_CID_CCS_SHADING_CORRECTION (V4L2_CID_USER_CCS_BASE + 8)
-#define V4L2_CID_CCS_LUMINANCE_CORRECTION_LEVEL (V4L2_CID_USER_CCS_BASE + 9)
-
-#endif
diff --git a/original/uapi/linux/cdrom.h b/original/uapi/linux/cdrom.h
index 6c34f6e..2817230 100644
--- a/original/uapi/linux/cdrom.h
+++ b/original/uapi/linux/cdrom.h
@@ -289,10 +289,7 @@ struct cdrom_generic_command
unsigned char data_direction;
int quiet;
int timeout;
- union {
- void __user *reserved[1]; /* unused, actually */
- void __user *unused;
- };
+ void __user *reserved[1]; /* unused, actually */
};
/*
diff --git a/original/uapi/linux/cfm_bridge.h b/original/uapi/linux/cfm_bridge.h
deleted file mode 100644
index 3c1cbd1..0000000
--- a/original/uapi/linux/cfm_bridge.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-
-#ifndef _UAPI_LINUX_CFM_BRIDGE_H_
-#define _UAPI_LINUX_CFM_BRIDGE_H_
-
-#include <linux/types.h>
-#include <linux/if_ether.h>
-
-#define ETHER_HEADER_LENGTH (6+6+4+2)
-#define CFM_MAID_LENGTH 48
-#define CFM_CCM_PDU_LENGTH 75
-#define CFM_PORT_STATUS_TLV_LENGTH 4
-#define CFM_IF_STATUS_TLV_LENGTH 4
-#define CFM_IF_STATUS_TLV_TYPE 4
-#define CFM_PORT_STATUS_TLV_TYPE 2
-#define CFM_ENDE_TLV_TYPE 0
-#define CFM_CCM_MAX_FRAME_LENGTH (ETHER_HEADER_LENGTH+\
- CFM_CCM_PDU_LENGTH+\
- CFM_PORT_STATUS_TLV_LENGTH+\
- CFM_IF_STATUS_TLV_LENGTH)
-#define CFM_FRAME_PRIO 7
-#define CFM_CCM_TLV_OFFSET 70
-#define CFM_CCM_PDU_MAID_OFFSET 10
-#define CFM_CCM_PDU_MEPID_OFFSET 8
-#define CFM_CCM_PDU_SEQNR_OFFSET 4
-#define CFM_CCM_PDU_TLV_OFFSET 74
-#define CFM_CCM_ITU_RESERVED_SIZE 16
-
-struct br_cfm_common_hdr {
- __u8 mdlevel_version;
- __u8 opcode;
- __u8 flags;
- __u8 tlv_offset;
-};
-
-enum br_cfm_opcodes {
- BR_CFM_OPCODE_CCM = 0x1,
-};
-
-/* MEP domain */
-enum br_cfm_domain {
- BR_CFM_PORT,
- BR_CFM_VLAN,
-};
-
-/* MEP direction */
-enum br_cfm_mep_direction {
- BR_CFM_MEP_DIRECTION_DOWN,
- BR_CFM_MEP_DIRECTION_UP,
-};
-
-/* CCM interval supported. */
-enum br_cfm_ccm_interval {
- BR_CFM_CCM_INTERVAL_NONE,
- BR_CFM_CCM_INTERVAL_3_3_MS,
- BR_CFM_CCM_INTERVAL_10_MS,
- BR_CFM_CCM_INTERVAL_100_MS,
- BR_CFM_CCM_INTERVAL_1_SEC,
- BR_CFM_CCM_INTERVAL_10_SEC,
- BR_CFM_CCM_INTERVAL_1_MIN,
- BR_CFM_CCM_INTERVAL_10_MIN,
-};
-
-#endif
diff --git a/original/uapi/linux/cifs/cifs_netlink.h b/original/uapi/linux/cifs/cifs_netlink.h
deleted file mode 100644
index da31075..0000000
--- a/original/uapi/linux/cifs/cifs_netlink.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
-/*
- * Netlink routines for CIFS
- *
- * Copyright (c) 2020 Samuel Cabrero <scabrero@suse.de>
- */
-
-
-#ifndef _UAPILINUX_CIFS_NETLINK_H
-#define _UAPILINUX_CIFS_NETLINK_H
-
-#define CIFS_GENL_NAME "cifs"
-#define CIFS_GENL_VERSION 0x1
-
-#define CIFS_GENL_MCGRP_SWN_NAME "cifs_mcgrp_swn"
-
-enum cifs_genl_multicast_groups {
- CIFS_GENL_MCGRP_SWN,
-};
-
-enum cifs_genl_attributes {
- CIFS_GENL_ATTR_UNSPEC,
- CIFS_GENL_ATTR_SWN_REGISTRATION_ID,
- CIFS_GENL_ATTR_SWN_NET_NAME,
- CIFS_GENL_ATTR_SWN_SHARE_NAME,
- CIFS_GENL_ATTR_SWN_IP,
- CIFS_GENL_ATTR_SWN_NET_NAME_NOTIFY,
- CIFS_GENL_ATTR_SWN_SHARE_NAME_NOTIFY,
- CIFS_GENL_ATTR_SWN_IP_NOTIFY,
- CIFS_GENL_ATTR_SWN_KRB_AUTH,
- CIFS_GENL_ATTR_SWN_USER_NAME,
- CIFS_GENL_ATTR_SWN_PASSWORD,
- CIFS_GENL_ATTR_SWN_DOMAIN_NAME,
- CIFS_GENL_ATTR_SWN_NOTIFICATION_TYPE,
- CIFS_GENL_ATTR_SWN_RESOURCE_STATE,
- CIFS_GENL_ATTR_SWN_RESOURCE_NAME,
- __CIFS_GENL_ATTR_MAX,
-};
-#define CIFS_GENL_ATTR_MAX (__CIFS_GENL_ATTR_MAX - 1)
-
-enum cifs_genl_commands {
- CIFS_GENL_CMD_UNSPEC,
- CIFS_GENL_CMD_SWN_REGISTER,
- CIFS_GENL_CMD_SWN_UNREGISTER,
- CIFS_GENL_CMD_SWN_NOTIFY,
- __CIFS_GENL_CMD_MAX
-};
-#define CIFS_GENL_CMD_MAX (__CIFS_GENL_CMD_MAX - 1)
-
-enum cifs_swn_notification_type {
- CIFS_SWN_NOTIFICATION_RESOURCE_CHANGE = 0x01,
- CIFS_SWN_NOTIFICATION_CLIENT_MOVE = 0x02,
- CIFS_SWN_NOTIFICATION_SHARE_MOVE = 0x03,
- CIFS_SWN_NOTIFICATION_IP_CHANGE = 0x04,
-};
-
-enum cifs_swn_resource_state {
- CIFS_SWN_RESOURCE_STATE_UNKNOWN = 0x00,
- CIFS_SWN_RESOURCE_STATE_AVAILABLE = 0x01,
- CIFS_SWN_RESOURCE_STATE_UNAVAILABLE = 0xFF
-};
-
-#endif /* _UAPILINUX_CIFS_NETLINK_H */
diff --git a/original/uapi/linux/close_range.h b/original/uapi/linux/close_range.h
deleted file mode 100644
index 2d80428..0000000
--- a/original/uapi/linux/close_range.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_LINUX_CLOSE_RANGE_H
-#define _UAPI_LINUX_CLOSE_RANGE_H
-
-/* Unshare the file descriptor table before closing file descriptors. */
-#define CLOSE_RANGE_UNSHARE (1U << 1)
-
-/* Set the FD_CLOEXEC bit instead of closing the file descriptor. */
-#define CLOSE_RANGE_CLOEXEC (1U << 2)
-
-#endif /* _UAPI_LINUX_CLOSE_RANGE_H */
-
diff --git a/original/uapi/linux/const.h b/original/uapi/linux/const.h
index af2a44c..5ed721a 100644
--- a/original/uapi/linux/const.h
+++ b/original/uapi/linux/const.h
@@ -28,9 +28,4 @@
#define _BITUL(x) (_UL(1) << (x))
#define _BITULL(x) (_ULL(1) << (x))
-#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
-#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
-
-#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
-
#endif /* _UAPI_LINUX_CONST_H */
diff --git a/original/uapi/linux/coresight-stm.h b/original/uapi/linux/coresight-stm.h
index 7ff3709..aac550a 100644
--- a/original/uapi/linux/coresight-stm.h
+++ b/original/uapi/linux/coresight-stm.h
@@ -2,11 +2,8 @@
#ifndef __UAPI_CORESIGHT_STM_H_
#define __UAPI_CORESIGHT_STM_H_
-#include <linux/const.h>
-
-#define STM_FLAG_TIMESTAMPED _BITUL(3)
-#define STM_FLAG_MARKED _BITUL(4)
-#define STM_FLAG_GUARANTEED _BITUL(7)
+#define STM_FLAG_TIMESTAMPED BIT(3)
+#define STM_FLAG_GUARANTEED BIT(7)
/*
* The CoreSight STM supports guaranteed and invariant timing
diff --git a/original/uapi/linux/cxl_mem.h b/original/uapi/linux/cxl_mem.h
deleted file mode 100644
index 3155382..0000000
--- a/original/uapi/linux/cxl_mem.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * CXL IOCTLs for Memory Devices
- */
-
-#ifndef _UAPI_CXL_MEM_H_
-#define _UAPI_CXL_MEM_H_
-
-#include <linux/types.h>
-
-/**
- * DOC: UAPI
- *
- * Not all of all commands that the driver supports are always available for use
- * by userspace. Userspace must check the results from the QUERY command in
- * order to determine the live set of commands.
- */
-
-#define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
-#define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-
-#define CXL_CMDS \
- ___C(INVALID, "Invalid Command"), \
- ___C(IDENTIFY, "Identify Command"), \
- ___C(RAW, "Raw device command"), \
- ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), \
- ___C(GET_FW_INFO, "Get FW Info"), \
- ___C(GET_PARTITION_INFO, "Get Partition Information"), \
- ___C(GET_LSA, "Get Label Storage Area"), \
- ___C(GET_HEALTH_INFO, "Get Health Info"), \
- ___C(GET_LOG, "Get Log"), \
- ___C(MAX, "invalid / last command")
-
-#define ___C(a, b) CXL_MEM_COMMAND_ID_##a
-enum { CXL_CMDS };
-
-#undef ___C
-#define ___C(a, b) { b }
-static const struct {
- const char *name;
-} cxl_command_names[] = { CXL_CMDS };
-
-/*
- * Here's how this actually breaks out:
- * cxl_command_names[] = {
- * [CXL_MEM_COMMAND_ID_INVALID] = { "Invalid Command" },
- * [CXL_MEM_COMMAND_ID_IDENTIFY] = { "Identify Command" },
- * ...
- * [CXL_MEM_COMMAND_ID_MAX] = { "invalid / last command" },
- * };
- */
-
-#undef ___C
-
-/**
- * struct cxl_command_info - Command information returned from a query.
- * @id: ID number for the command.
- * @flags: Flags that specify command behavior.
- * @size_in: Expected input size, or -1 if variable length.
- * @size_out: Expected output size, or -1 if variable length.
- *
- * Represents a single command that is supported by both the driver and the
- * hardware. This is returned as part of an array from the query ioctl. The
- * following would be a command that takes a variable length input and returns 0
- * bytes of output.
- *
- * - @id = 10
- * - @flags = 0
- * - @size_in = -1
- * - @size_out = 0
- *
- * See struct cxl_mem_query_commands.
- */
-struct cxl_command_info {
- __u32 id;
-
- __u32 flags;
-#define CXL_MEM_COMMAND_FLAG_MASK GENMASK(0, 0)
-
- __s32 size_in;
- __s32 size_out;
-};
-
-/**
- * struct cxl_mem_query_commands - Query supported commands.
- * @n_commands: In/out parameter. When @n_commands is > 0, the driver will
- * return min(num_support_commands, n_commands). When @n_commands
- * is 0, driver will return the number of total supported commands.
- * @rsvd: Reserved for future use.
- * @commands: Output array of supported commands. This array must be allocated
- * by userspace to be at least min(num_support_commands, @n_commands)
- *
- * Allow userspace to query the available commands supported by both the driver,
- * and the hardware. Commands that aren't supported by either the driver, or the
- * hardware are not returned in the query.
- *
- * Examples:
- *
- * - { .n_commands = 0 } // Get number of supported commands
- * - { .n_commands = 15, .commands = buf } // Return first 15 (or less)
- * supported commands
- *
- * See struct cxl_command_info.
- */
-struct cxl_mem_query_commands {
- /*
- * Input: Number of commands to return (space allocated by user)
- * Output: Number of commands supported by the driver/hardware
- *
- * If n_commands is 0, kernel will only return number of commands and
- * not try to populate commands[], thus allowing userspace to know how
- * much space to allocate
- */
- __u32 n_commands;
- __u32 rsvd;
-
- struct cxl_command_info __user commands[]; /* out: supported commands */
-};
-
-/**
- * struct cxl_send_command - Send a command to a memory device.
- * @id: The command to send to the memory device. This must be one of the
- * commands returned by the query command.
- * @flags: Flags for the command (input).
- * @raw: Special fields for raw commands
- * @raw.opcode: Opcode passed to hardware when using the RAW command.
- * @raw.rsvd: Must be zero.
- * @rsvd: Must be zero.
- * @retval: Return value from the memory device (output).
- * @in: Parameters associated with input payload.
- * @in.size: Size of the payload to provide to the device (input).
- * @in.rsvd: Must be zero.
- * @in.payload: Pointer to memory for payload input, payload is little endian.
- * @out: Parameters associated with output payload.
- * @out.size: Size of the payload received from the device (input/output). This
- * field is filled in by userspace to let the driver know how much
- * space was allocated for output. It is populated by the driver to
- * let userspace know how large the output payload actually was.
- * @out.rsvd: Must be zero.
- * @out.payload: Pointer to memory for payload output, payload is little endian.
- *
- * Mechanism for userspace to send a command to the hardware for processing. The
- * driver will do basic validation on the command sizes. In some cases even the
- * payload may be introspected. Userspace is required to allocate large enough
- * buffers for size_out which can be variable length in certain situations.
- */
-struct cxl_send_command {
- __u32 id;
- __u32 flags;
- union {
- struct {
- __u16 opcode;
- __u16 rsvd;
- } raw;
- __u32 rsvd;
- };
- __u32 retval;
-
- struct {
- __s32 size;
- __u32 rsvd;
- __u64 payload;
- } in;
-
- struct {
- __s32 size;
- __u32 rsvd;
- __u64 payload;
- } out;
-};
-
-#endif
diff --git a/original/uapi/linux/devlink.h b/original/uapi/linux/devlink.h
index f6008b2..ae37fd4 100644
--- a/original/uapi/linux/devlink.h
+++ b/original/uapi/linux/devlink.h
@@ -13,8 +13,6 @@
#ifndef _UAPI_LINUX_DEVLINK_H_
#define _UAPI_LINUX_DEVLINK_H_
-#include <linux/const.h>
-
#define DEVLINK_GENL_NAME "devlink"
#define DEVLINK_GENL_VERSION 0x1
#define DEVLINK_GENL_MCGRP_CONFIG_NAME "config"
@@ -119,13 +117,6 @@ enum devlink_command {
DEVLINK_CMD_TRAP_GROUP_NEW,
DEVLINK_CMD_TRAP_GROUP_DEL,
- DEVLINK_CMD_TRAP_POLICER_GET, /* can dump */
- DEVLINK_CMD_TRAP_POLICER_SET,
- DEVLINK_CMD_TRAP_POLICER_NEW,
- DEVLINK_CMD_TRAP_POLICER_DEL,
-
- DEVLINK_CMD_HEALTH_REPORTER_TEST,
-
/* add new commands above here */
__DEVLINK_CMD_MAX,
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -196,14 +187,6 @@ enum devlink_port_flavour {
* for the PCI VF. It is an internal
* port that faces the PCI VF.
*/
- DEVLINK_PORT_FLAVOUR_VIRTUAL, /* Any virtual port facing the user. */
- DEVLINK_PORT_FLAVOUR_UNUSED, /* Port which exists in the switch, but
- * is not used in any way.
- */
- DEVLINK_PORT_FLAVOUR_PCI_SF, /* Represents eswitch port
- * for the PCI SF. It is an internal
- * port that faces the PCI SF.
- */
};
enum devlink_param_cmode {
@@ -233,46 +216,20 @@ enum devlink_param_reset_dev_on_drv_probe_value {
enum {
DEVLINK_ATTR_STATS_RX_PACKETS, /* u64 */
DEVLINK_ATTR_STATS_RX_BYTES, /* u64 */
- DEVLINK_ATTR_STATS_RX_DROPPED, /* u64 */
__DEVLINK_ATTR_STATS_MAX,
DEVLINK_ATTR_STATS_MAX = __DEVLINK_ATTR_STATS_MAX - 1
};
-/* Specify what sections of a flash component can be overwritten when
- * performing an update. Overwriting of firmware binary sections is always
- * implicitly assumed to be allowed.
- *
- * Each section must be documented in
- * Documentation/networking/devlink/devlink-flash.rst
- *
- */
-enum {
- DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT,
- DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT,
-
- __DEVLINK_FLASH_OVERWRITE_MAX_BIT,
- DEVLINK_FLASH_OVERWRITE_MAX_BIT = __DEVLINK_FLASH_OVERWRITE_MAX_BIT - 1
-};
-
-#define DEVLINK_FLASH_OVERWRITE_SETTINGS _BITUL(DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT)
-#define DEVLINK_FLASH_OVERWRITE_IDENTIFIERS _BITUL(DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT)
-
-#define DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS \
- (_BITUL(__DEVLINK_FLASH_OVERWRITE_MAX_BIT) - 1)
-
/**
* enum devlink_trap_action - Packet trap action.
* @DEVLINK_TRAP_ACTION_DROP: Packet is dropped by the device and a copy is not
* sent to the CPU.
* @DEVLINK_TRAP_ACTION_TRAP: The sole copy of the packet is sent to the CPU.
- * @DEVLINK_TRAP_ACTION_MIRROR: Packet is forwarded by the device and a copy is
- * sent to the CPU.
*/
enum devlink_trap_action {
DEVLINK_TRAP_ACTION_DROP,
DEVLINK_TRAP_ACTION_TRAP,
- DEVLINK_TRAP_ACTION_MIRROR,
};
/**
@@ -286,48 +243,17 @@ enum devlink_trap_action {
* control plane for resolution. Trapped packets
* are processed by devlink and injected to
* the kernel's Rx path.
- * @DEVLINK_TRAP_TYPE_CONTROL: Packet was trapped because it is required for
- * the correct functioning of the control plane.
- * For example, an ARP request packet. Trapped
- * packets are injected to the kernel's Rx path,
- * but not reported to drop monitor.
*/
enum devlink_trap_type {
DEVLINK_TRAP_TYPE_DROP,
DEVLINK_TRAP_TYPE_EXCEPTION,
- DEVLINK_TRAP_TYPE_CONTROL,
};
enum {
/* Trap can report input port as metadata */
DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT,
- /* Trap can report flow action cookie as metadata */
- DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE,
-};
-
-enum devlink_reload_action {
- DEVLINK_RELOAD_ACTION_UNSPEC,
- DEVLINK_RELOAD_ACTION_DRIVER_REINIT, /* Driver entities re-instantiation */
- DEVLINK_RELOAD_ACTION_FW_ACTIVATE, /* FW activate */
-
- /* Add new reload actions above */
- __DEVLINK_RELOAD_ACTION_MAX,
- DEVLINK_RELOAD_ACTION_MAX = __DEVLINK_RELOAD_ACTION_MAX - 1
-};
-
-enum devlink_reload_limit {
- DEVLINK_RELOAD_LIMIT_UNSPEC, /* unspecified, no constraints */
- DEVLINK_RELOAD_LIMIT_NO_RESET, /* No reset allowed, no down time allowed,
- * no link flap and no configuration is lost.
- */
-
- /* Add new reload limit above */
- __DEVLINK_RELOAD_LIMIT_MAX,
- DEVLINK_RELOAD_LIMIT_MAX = __DEVLINK_RELOAD_LIMIT_MAX - 1
};
-#define DEVLINK_RELOAD_LIMITS_VALID_MASK (_BITUL(__DEVLINK_RELOAD_LIMIT_MAX) - 1)
-
enum devlink_attr {
/* don't change the order or add anything between, this is ABI! */
DEVLINK_ATTR_UNSPEC,
@@ -500,40 +426,6 @@ enum devlink_attr {
DEVLINK_ATTR_NETNS_FD, /* u32 */
DEVLINK_ATTR_NETNS_PID, /* u32 */
DEVLINK_ATTR_NETNS_ID, /* u32 */
-
- DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP, /* u8 */
-
- DEVLINK_ATTR_TRAP_POLICER_ID, /* u32 */
- DEVLINK_ATTR_TRAP_POLICER_RATE, /* u64 */
- DEVLINK_ATTR_TRAP_POLICER_BURST, /* u64 */
-
- DEVLINK_ATTR_PORT_FUNCTION, /* nested */
-
- DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER, /* string */
-
- DEVLINK_ATTR_PORT_LANES, /* u32 */
- DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */
-
- DEVLINK_ATTR_PORT_EXTERNAL, /* u8 */
- DEVLINK_ATTR_PORT_CONTROLLER_NUMBER, /* u32 */
-
- DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT, /* u64 */
- DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK, /* bitfield32 */
-
- DEVLINK_ATTR_RELOAD_ACTION, /* u8 */
- DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED, /* bitfield32 */
- DEVLINK_ATTR_RELOAD_LIMITS, /* bitfield32 */
-
- DEVLINK_ATTR_DEV_STATS, /* nested */
- DEVLINK_ATTR_RELOAD_STATS, /* nested */
- DEVLINK_ATTR_RELOAD_STATS_ENTRY, /* nested */
- DEVLINK_ATTR_RELOAD_STATS_LIMIT, /* u8 */
- DEVLINK_ATTR_RELOAD_STATS_VALUE, /* u32 */
- DEVLINK_ATTR_REMOTE_RELOAD_STATS, /* nested */
- DEVLINK_ATTR_RELOAD_ACTION_INFO, /* nested */
- DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */
-
- DEVLINK_ATTR_PORT_PCI_SF_NUMBER, /* u32 */
/* add new attributes above here, update the policy in devlink.c */
__DEVLINK_ATTR_MAX,
@@ -580,32 +472,4 @@ enum devlink_resource_unit {
DEVLINK_RESOURCE_UNIT_ENTRY,
};
-enum devlink_port_function_attr {
- DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
- DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */
- DEVLINK_PORT_FN_ATTR_STATE, /* u8 */
- DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */
-
- __DEVLINK_PORT_FUNCTION_ATTR_MAX,
- DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
-};
-
-enum devlink_port_fn_state {
- DEVLINK_PORT_FN_STATE_INACTIVE,
- DEVLINK_PORT_FN_STATE_ACTIVE,
-};
-
-/**
- * enum devlink_port_fn_opstate - indicates operational state of the function
- * @DEVLINK_PORT_FN_OPSTATE_ATTACHED: Driver is attached to the function.
- * For graceful tear down of the function, after inactivation of the
- * function, user should wait for operational state to turn DETACHED.
- * @DEVLINK_PORT_FN_OPSTATE_DETACHED: Driver is detached from the function.
- * It is safe to delete the port.
- */
-enum devlink_port_fn_opstate {
- DEVLINK_PORT_FN_OPSTATE_DETACHED,
- DEVLINK_PORT_FN_OPSTATE_ATTACHED,
-};
-
#endif /* _UAPI_LINUX_DEVLINK_H_ */
diff --git a/original/uapi/linux/dm-ioctl.h b/original/uapi/linux/dm-ioctl.h
index fcff666..2df8cec 100644
--- a/original/uapi/linux/dm-ioctl.h
+++ b/original/uapi/linux/dm-ioctl.h
@@ -272,9 +272,9 @@ enum {
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
#define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 44
+#define DM_VERSION_MINOR 41
#define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl (2021-02-01)"
+#define DM_VERSION_EXTRA "-ioctl (2019-09-16)"
/* Status bits */
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
diff --git a/original/uapi/linux/dm-user.h b/original/uapi/linux/dm-user.h
deleted file mode 100644
index 6d8f535..0000000
--- a/original/uapi/linux/dm-user.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */
-/*
- * Copyright (C) 2020 Google, Inc
- * Copyright (C) 2020 Palmer Dabbelt <palmerdabbelt@google.com>
- */
-
-#ifndef _LINUX_DM_USER_H
-#define _LINUX_DM_USER_H
-
-#include <linux/types.h>
-
-/*
- * dm-user proxies device mapper ops between the kernel and userspace. It's
- * essentially just an RPC mechanism: all kernel calls create a request,
- * userspace handles that with a response. Userspace obtains requests via
- * read() and provides responses via write().
- *
- * See Documentation/block/dm-user.rst for more information.
- */
-
-#define DM_USER_REQ_MAP_READ 0
-#define DM_USER_REQ_MAP_WRITE 1
-#define DM_USER_REQ_MAP_FLUSH 2
-#define DM_USER_REQ_MAP_DISCARD 3
-#define DM_USER_REQ_MAP_SECURE_ERASE 4
-#define DM_USER_REQ_MAP_WRITE_SAME 5
-#define DM_USER_REQ_MAP_WRITE_ZEROES 6
-#define DM_USER_REQ_MAP_ZONE_OPEN 7
-#define DM_USER_REQ_MAP_ZONE_CLOSE 8
-#define DM_USER_REQ_MAP_ZONE_FINISH 9
-#define DM_USER_REQ_MAP_ZONE_APPEND 10
-#define DM_USER_REQ_MAP_ZONE_RESET 11
-#define DM_USER_REQ_MAP_ZONE_RESET_ALL 12
-
-#define DM_USER_REQ_MAP_FLAG_FAILFAST_DEV 0x00001
-#define DM_USER_REQ_MAP_FLAG_FAILFAST_TRANSPORT 0x00002
-#define DM_USER_REQ_MAP_FLAG_FAILFAST_DRIVER 0x00004
-#define DM_USER_REQ_MAP_FLAG_SYNC 0x00008
-#define DM_USER_REQ_MAP_FLAG_META 0x00010
-#define DM_USER_REQ_MAP_FLAG_PRIO 0x00020
-#define DM_USER_REQ_MAP_FLAG_NOMERGE 0x00040
-#define DM_USER_REQ_MAP_FLAG_IDLE 0x00080
-#define DM_USER_REQ_MAP_FLAG_INTEGRITY 0x00100
-#define DM_USER_REQ_MAP_FLAG_FUA 0x00200
-#define DM_USER_REQ_MAP_FLAG_PREFLUSH 0x00400
-#define DM_USER_REQ_MAP_FLAG_RAHEAD 0x00800
-#define DM_USER_REQ_MAP_FLAG_BACKGROUND 0x01000
-#define DM_USER_REQ_MAP_FLAG_NOWAIT 0x02000
-#define DM_USER_REQ_MAP_FLAG_CGROUP_PUNT 0x04000
-#define DM_USER_REQ_MAP_FLAG_NOUNMAP 0x08000
-#define DM_USER_REQ_MAP_FLAG_HIPRI 0x10000
-#define DM_USER_REQ_MAP_FLAG_DRV 0x20000
-#define DM_USER_REQ_MAP_FLAG_SWAP 0x40000
-
-#define DM_USER_RESP_SUCCESS 0
-#define DM_USER_RESP_ERROR 1
-#define DM_USER_RESP_UNSUPPORTED 2
-
-struct dm_user_message {
- __u64 seq;
- __u64 type;
- __u64 flags;
- __u64 sector;
- __u64 len;
- __u8 buf[];
-};
-
-#endif
diff --git a/original/uapi/linux/dma-buf.h b/original/uapi/linux/dma-buf.h
index 7f30393..dbc7092 100644
--- a/original/uapi/linux/dma-buf.h
+++ b/original/uapi/linux/dma-buf.h
@@ -39,12 +39,6 @@ struct dma_buf_sync {
#define DMA_BUF_BASE 'b'
#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
-
-/* 32/64bitness of this uapi was botched in android, there's no difference
- * between them in actual uapi, they're just different numbers.
- */
#define DMA_BUF_SET_NAME _IOW(DMA_BUF_BASE, 1, const char *)
-#define DMA_BUF_SET_NAME_A _IOW(DMA_BUF_BASE, 1, u32)
-#define DMA_BUF_SET_NAME_B _IOW(DMA_BUF_BASE, 1, u64)
#endif
diff --git a/original/uapi/linux/dma-heap.h b/original/uapi/linux/dma-heap.h
deleted file mode 100644
index 6f84fa0..0000000
--- a/original/uapi/linux/dma-heap.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * DMABUF Heaps Userspace API
- *
- * Copyright (C) 2011 Google, Inc.
- * Copyright (C) 2019 Linaro Ltd.
- */
-#ifndef _UAPI_LINUX_DMABUF_POOL_H
-#define _UAPI_LINUX_DMABUF_POOL_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/**
- * DOC: DMABUF Heaps Userspace API
- */
-
-/* Valid FD_FLAGS are O_CLOEXEC, O_RDONLY, O_WRONLY, O_RDWR */
-#define DMA_HEAP_VALID_FD_FLAGS (O_CLOEXEC | O_ACCMODE)
-
-/* Currently no heap flags */
-#define DMA_HEAP_VALID_HEAP_FLAGS (0)
-
-/**
- * struct dma_heap_allocation_data - metadata passed from userspace for
- * allocations
- * @len: size of the allocation
- * @fd: will be populated with a fd which provides the
- * handle to the allocated dma-buf
- * @fd_flags: file descriptor flags used when allocating
- * @heap_flags: flags passed to heap
- *
- * Provided by userspace as an argument to the ioctl
- */
-struct dma_heap_allocation_data {
- __u64 len;
- __u32 fd;
- __u32 fd_flags;
- __u64 heap_flags;
-};
-
-#define DMA_HEAP_IOC_MAGIC 'H'
-
-/**
- * DOC: DMA_HEAP_IOCTL_ALLOC - allocate memory from pool
- *
- * Takes a dma_heap_allocation_data struct and returns it with the fd field
- * populated with the dmabuf handle of the allocation.
- */
-#define DMA_HEAP_IOCTL_ALLOC _IOWR(DMA_HEAP_IOC_MAGIC, 0x0,\
- struct dma_heap_allocation_data)
-
-#endif /* _UAPI_LINUX_DMABUF_POOL_H */
diff --git a/original/uapi/linux/dqblk_xfs.h b/original/uapi/linux/dqblk_xfs.h
index c71d909..03d890b 100644
--- a/original/uapi/linux/dqblk_xfs.h
+++ b/original/uapi/linux/dqblk_xfs.h
@@ -61,16 +61,12 @@ typedef struct fs_disk_quota {
__u64 d_ino_softlimit;/* preferred inode limit */
__u64 d_bcount; /* # disk blocks owned by the user */
__u64 d_icount; /* # inodes owned by the user */
- __s32 d_itimer; /* Zero if within inode limits. If
- * not, we refuse service at this time
- * (in seconds since Unix epoch) */
+ __s32 d_itimer; /* zero if within inode limits */
+ /* if not, we refuse service */
__s32 d_btimer; /* similar to above; for disk blocks */
__u16 d_iwarns; /* # warnings issued wrt num inodes */
__u16 d_bwarns; /* # warnings issued wrt disk blocks */
- __s8 d_itimer_hi; /* upper 8 bits of timer values */
- __s8 d_btimer_hi;
- __s8 d_rtbtimer_hi;
- __s8 d_padding2; /* padding2 - for future use */
+ __s32 d_padding2; /* padding2 - for future use */
__u64 d_rtb_hardlimit;/* absolute limit on realtime blks */
__u64 d_rtb_softlimit;/* preferred limit on RT disk blks */
__u64 d_rtbcount; /* # realtime blocks owned */
@@ -126,12 +122,6 @@ typedef struct fs_disk_quota {
#define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT)
/*
- * Quota expiration timestamps are 40-bit signed integers, with the upper 8
- * bits encoded in the _hi fields.
- */
-#define FS_DQ_BIGTIME (1<<15)
-
-/*
* Various flags related to quotactl(2).
*/
#define FS_QUOTA_UDQ_ACCT (1<<0) /* user quota accounting */
diff --git a/original/uapi/linux/elf.h b/original/uapi/linux/elf.h
index 30f68b4..34c02e4 100644
--- a/original/uapi/linux/elf.h
+++ b/original/uapi/linux/elf.h
@@ -36,7 +36,6 @@ typedef __s64 Elf64_Sxword;
#define PT_LOPROC 0x70000000
#define PT_HIPROC 0x7fffffff
#define PT_GNU_EH_FRAME 0x6474e550
-#define PT_GNU_PROPERTY 0x6474e553
#define PT_GNU_STACK (PT_LOOS + 0x474e551)
@@ -53,7 +52,7 @@ typedef __s64 Elf64_Sxword;
*
* - Oracle: Linker and Libraries.
* Part No: 817–1984–19, August 2011.
- * https://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf
+ * http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf
*
* - System V ABI AMD64 Architecture Processor Supplement
* Draft Version 0.99.4,
@@ -368,7 +367,6 @@ typedef struct elf64_shdr {
* Notes used in ET_CORE. Architectures export some of the arch register sets
* using the corresponding note types via the PTRACE_GETREGSET and
* PTRACE_SETREGSET requests.
- * The note name for all these is "LINUX".
*/
#define NT_PRSTATUS 1
#define NT_PRFPREG 2
@@ -425,16 +423,12 @@ typedef struct elf64_shdr {
#define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */
#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */
#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */
-#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */
#define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */
#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */
#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */
#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */
-/* Note types with note name "GNU" */
-#define NT_GNU_PROPERTY_TYPE_0 5
-
/* Note header in a PT_NOTE section */
typedef struct elf32_note {
Elf32_Word n_namesz; /* Name size */
@@ -449,10 +443,4 @@ typedef struct elf64_note {
Elf64_Word n_type; /* Content type */
} Elf64_Nhdr;
-/* .note.gnu.property types for EM_AARCH64: */
-#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000
-
-/* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */
-#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)
-
#endif /* _UAPI_LINUX_ELF_H */
diff --git a/original/uapi/linux/elfcore.h b/original/uapi/linux/elfcore.h
new file mode 100644
index 0000000..baf0356
--- /dev/null
+++ b/original/uapi/linux/elfcore.h
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _UAPI_LINUX_ELFCORE_H
+#define _UAPI_LINUX_ELFCORE_H
+
+#include <linux/types.h>
+#include <linux/signal.h>
+#include <linux/time.h>
+#include <linux/ptrace.h>
+#include <linux/elf.h>
+#include <linux/fs.h>
+
+struct elf_siginfo
+{
+ int si_signo; /* signal number */
+ int si_code; /* extra code */
+ int si_errno; /* errno */
+};
+
+
+#ifndef __KERNEL__
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+typedef elf_fpxregset_t fpxregset_t;
+#define NGREG ELF_NGREG
+#endif
+
+/*
+ * Definitions to generate Intel SVR4-like core files.
+ * These mostly have the same names as the SVR4 types with "elf_"
+ * tacked on the front to prevent clashes with linux definitions,
+ * and the typedef forms have been avoided. This is mostly like
+ * the SVR4 structure, but more Linuxy, with things that Linux does
+ * not support and which gdb doesn't really use excluded.
+ * Fields present but not used are marked with "XXX".
+ */
+struct elf_prstatus
+{
+#if 0
+ long pr_flags; /* XXX Process flags */
+ short pr_why; /* XXX Reason for process halt */
+ short pr_what; /* XXX More detailed reason */
+#endif
+ struct elf_siginfo pr_info; /* Info associated with signal */
+ short pr_cursig; /* Current signal */
+ unsigned long pr_sigpend; /* Set of pending signals */
+ unsigned long pr_sighold; /* Set of held signals */
+#if 0
+ struct sigaltstack pr_altstack; /* Alternate stack info */
+ struct sigaction pr_action; /* Signal action for current sig */
+#endif
+ pid_t pr_pid;
+ pid_t pr_ppid;
+ pid_t pr_pgrp;
+ pid_t pr_sid;
+ struct __kernel_old_timeval pr_utime; /* User time */
+ struct __kernel_old_timeval pr_stime; /* System time */
+ struct __kernel_old_timeval pr_cutime; /* Cumulative user time */
+ struct __kernel_old_timeval pr_cstime; /* Cumulative system time */
+#if 0
+ long pr_instr; /* Current instruction */
+#endif
+ elf_gregset_t pr_reg; /* GP registers */
+#ifdef CONFIG_BINFMT_ELF_FDPIC
+ /* When using FDPIC, the loadmap addresses need to be communicated
+ * to GDB in order for GDB to do the necessary relocations. The
+ * fields (below) used to communicate this information are placed
+ * immediately after ``pr_reg'', so that the loadmap addresses may
+ * be viewed as part of the register set if so desired.
+ */
+ unsigned long pr_exec_fdpic_loadmap;
+ unsigned long pr_interp_fdpic_loadmap;
+#endif
+ int pr_fpvalid; /* True if math co-processor being used. */
+};
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+{
+ char pr_state; /* numeric process state */
+ char pr_sname; /* char for pr_state */
+ char pr_zomb; /* zombie */
+ char pr_nice; /* nice val */
+ unsigned long pr_flag; /* flags */
+ __kernel_uid_t pr_uid;
+ __kernel_gid_t pr_gid;
+ pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* filename of executable */
+ char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
+};
+
+#ifndef __KERNEL__
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+#define PRARGSZ ELF_PRARGSZ
+#endif
+
+
+#endif /* _UAPI_LINUX_ELFCORE_H */
diff --git a/original/uapi/linux/errqueue.h b/original/uapi/linux/errqueue.h
index 3c70e8a..0cca196 100644
--- a/original/uapi/linux/errqueue.h
+++ b/original/uapi/linux/errqueue.h
@@ -5,13 +5,6 @@
#include <linux/types.h>
#include <linux/time_types.h>
-/* RFC 4884: return offset to extension struct + validation */
-struct sock_ee_data_rfc4884 {
- __u16 len;
- __u8 flags;
- __u8 reserved;
-};
-
struct sock_extended_err {
__u32 ee_errno;
__u8 ee_origin;
@@ -19,10 +12,7 @@ struct sock_extended_err {
__u8 ee_code;
__u8 ee_pad;
__u32 ee_info;
- union {
- __u32 ee_data;
- struct sock_ee_data_rfc4884 ee_rfc4884;
- };
+ __u32 ee_data;
};
#define SO_EE_ORIGIN_NONE 0
@@ -41,14 +31,12 @@ struct sock_extended_err {
#define SO_EE_CODE_TXTIME_INVALID_PARAM 1
#define SO_EE_CODE_TXTIME_MISSED 2
-#define SO_EE_RFC4884_FLAG_INVALID 1
-
/**
* struct scm_timestamping - timestamps exposed through cmsg
*
* The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_*
* communicate network timestamps by passing this struct in a cmsg with
- * recvmsg(). See Documentation/networking/timestamping.rst for details.
+ * recvmsg(). See Documentation/networking/timestamping.txt for details.
* User space sees a timespec definition that matches either
* __kernel_timespec or __kernel_old_timespec, in the kernel we
* require two structure definitions to provide both.
diff --git a/original/uapi/linux/ethtool.h b/original/uapi/linux/ethtool.h
index 5afea69..d459179 100644
--- a/original/uapi/linux/ethtool.h
+++ b/original/uapi/linux/ethtool.h
@@ -14,7 +14,7 @@
#ifndef _UAPI_LINUX_ETHTOOL_H
#define _UAPI_LINUX_ETHTOOL_H
-#include <linux/const.h>
+#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/if_ether.h>
@@ -26,14 +26,6 @@
* have the same layout for 32-bit and 64-bit userland.
*/
-/* Note on reserved space.
- * Reserved fields must not be accessed directly by user space because
- * they may be replaced by a different field in the future. They must
- * be initialized to zero before making the request, e.g. via memset
- * of the entire structure or implicitly by not being set in a structure
- * initializer.
- */
-
/**
* struct ethtool_cmd - DEPRECATED, link control and status
* This structure is DEPRECATED, please use struct ethtool_link_settings.
@@ -75,7 +67,6 @@
* and other link features that the link partner advertised
* through autonegotiation; 0 if unknown or not applicable.
* Read-only.
- * @reserved: Reserved for future use; see the note on reserved space.
*
* The link speed in Mbps is split between @speed and @speed_hi. Use
* the ethtool_cmd_speed() and ethtool_cmd_speed_set() functions to
@@ -164,7 +155,6 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep)
* @bus_info: Device bus address. This should match the dev_name()
* string for the underlying bus device, if there is one. May be
* an empty string.
- * @reserved2: Reserved for future use; see the note on reserved space.
* @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and
* %ETHTOOL_SPFLAGS commands; also the number of strings in the
* %ETH_SS_PRIV_FLAGS set
@@ -366,7 +356,6 @@ struct ethtool_eeprom {
* @tx_lpi_timer: Time in microseconds the interface delays prior to asserting
* its tx lpi (after reaching 'idle' state). Effective only when eee
* was negotiated and tx_lpi_enabled was set.
- * @reserved: Reserved for future use; see the note on reserved space.
*/
struct ethtool_eee {
__u32 cmd;
@@ -385,7 +374,6 @@ struct ethtool_eee {
* @cmd: %ETHTOOL_GMODULEINFO
* @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx
* @eeprom_len: Length of the eeprom
- * @reserved: Reserved for future use; see the note on reserved space.
*
* This structure is used to return the information to
* properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM.
@@ -591,62 +579,6 @@ struct ethtool_pauseparam {
__u32 tx_pause;
};
-/* Link extended state */
-enum ethtool_link_ext_state {
- ETHTOOL_LINK_EXT_STATE_AUTONEG,
- ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
- ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH,
- ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY,
- ETHTOOL_LINK_EXT_STATE_NO_CABLE,
- ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE,
- ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE,
- ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
- ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
- ETHTOOL_LINK_EXT_STATE_OVERHEAT,
-};
-
-/* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */
-enum ethtool_link_ext_substate_autoneg {
- ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
- ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
- ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED,
- ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE,
- ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE,
- ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
-};
-
-/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
- */
-enum ethtool_link_ext_substate_link_training {
- ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
- ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT,
- ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY,
- ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
-};
-
-/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
- */
-enum ethtool_link_ext_substate_link_logical_mismatch {
- ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
- ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK,
- ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS,
- ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED,
- ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
-};
-
-/* More information in addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
- */
-enum ethtool_link_ext_substate_bad_signal_integrity {
- ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
- ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
-};
-
-/* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */
-enum ethtool_link_ext_substate_cable_issue {
- ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
- ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
-};
-
#define ETH_GSTRING_LEN 32
/**
@@ -659,18 +591,8 @@ enum ethtool_link_ext_substate_cable_issue {
* now deprecated
* @ETH_SS_FEATURES: Device feature names
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
- * @ETH_SS_TUNABLES: tunable names
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
* @ETH_SS_PHY_TUNABLES: PHY tunable names
- * @ETH_SS_LINK_MODES: link mode names
- * @ETH_SS_MSG_CLASSES: debug message class names
- * @ETH_SS_WOL_MODES: wake-on-lan modes
- * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags
- * @ETH_SS_TS_TX_TYPES: timestamping Tx types
- * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
- * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
- *
- * @ETH_SS_COUNT: number of defined string sets
*/
enum ethtool_stringset {
ETH_SS_TEST = 0,
@@ -682,16 +604,6 @@ enum ethtool_stringset {
ETH_SS_TUNABLES,
ETH_SS_PHY_STATS,
ETH_SS_PHY_TUNABLES,
- ETH_SS_LINK_MODES,
- ETH_SS_MSG_CLASSES,
- ETH_SS_WOL_MODES,
- ETH_SS_SOF_TIMESTAMPING,
- ETH_SS_TS_TX_TYPES,
- ETH_SS_TS_RX_FILTERS,
- ETH_SS_UDP_TUNNEL_TYPES,
-
- /* add new constants above here */
- ETH_SS_COUNT
};
/**
@@ -716,7 +628,6 @@ struct ethtool_gstrings {
/**
* struct ethtool_sset_info - string set information
* @cmd: Command number = %ETHTOOL_GSSET_INFO
- * @reserved: Reserved for future use; see the note on reserved space.
* @sset_mask: On entry, a bitmask of string sets to query, with bits
* numbered according to &enum ethtool_stringset. On return, a
* bitmask of those string sets queried that are supported.
@@ -761,7 +672,6 @@ enum ethtool_test_flags {
* @flags: A bitmask of flags from &enum ethtool_test_flags. Some
* flags may be set by the user on entry; others may be set by
* the driver on return.
- * @reserved: Reserved for future use; see the note on reserved space.
* @len: On return, the number of test results
* @data: Array of test results
*
@@ -962,7 +872,6 @@ union ethtool_flow_union {
* @vlan_etype: VLAN EtherType
* @vlan_tci: VLAN tag control information
* @data: user defined data
- * @padding: Reserved for future use; see the note on reserved space.
*
* Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT
* is set in &struct ethtool_rx_flow_spec @flow_type.
@@ -1138,8 +1047,7 @@ struct ethtool_rxfh_indir {
* hardware hash key.
* @hfunc: Defines the current RSS hash function used by HW (or to be set to).
* Valid values are one of the %ETH_RSS_HASH_*.
- * @rsvd8: Reserved for future use; see the note on reserved space.
- * @rsvd32: Reserved for future use; see the note on reserved space.
+ * @rsvd: Reserved for future extensions.
* @rss_config: RX ring/queue index for each hash value i.e., indirection table
* of @indir_size __u32 elements, followed by hash key of @key_size
* bytes.
@@ -1307,9 +1215,7 @@ struct ethtool_sfeatures {
* @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags
* @phc_index: device index of the associated PHC, or -1 if there is none
* @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values
- * @tx_reserved: Reserved for future use; see the note on reserved space.
* @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values
- * @rx_reserved: Reserved for future use; see the note on reserved space.
*
* The bits in the 'tx_types' and 'rx_filters' fields correspond to
* the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values,
@@ -1415,7 +1321,6 @@ enum ethtool_fec_config_bits {
ETHTOOL_FEC_OFF_BIT,
ETHTOOL_FEC_RS_BIT,
ETHTOOL_FEC_BASER_BIT,
- ETHTOOL_FEC_LLRS_BIT,
};
#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT)
@@ -1423,7 +1328,6 @@ enum ethtool_fec_config_bits {
#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT)
#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
-#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT)
/* CMDs currently supported */
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
@@ -1608,24 +1512,7 @@ enum ethtool_link_mode_bit_indices {
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
- ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
- ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
- ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
- ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
- ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
- ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
- ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
- ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
- ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
- ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
- ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
- ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
- ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
- ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
- ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
- ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
- ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
- ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
+
/* must be last entry */
__ETHTOOL_LINK_MODE_MASK_NBITS
};
@@ -1762,18 +1649,6 @@ static inline int ethtool_validate_duplex(__u8 duplex)
return 0;
}
-#define MASTER_SLAVE_CFG_UNSUPPORTED 0
-#define MASTER_SLAVE_CFG_UNKNOWN 1
-#define MASTER_SLAVE_CFG_MASTER_PREFERRED 2
-#define MASTER_SLAVE_CFG_SLAVE_PREFERRED 3
-#define MASTER_SLAVE_CFG_MASTER_FORCE 4
-#define MASTER_SLAVE_CFG_SLAVE_FORCE 5
-#define MASTER_SLAVE_STATE_UNSUPPORTED 0
-#define MASTER_SLAVE_STATE_UNKNOWN 1
-#define MASTER_SLAVE_STATE_MASTER 2
-#define MASTER_SLAVE_STATE_SLAVE 3
-#define MASTER_SLAVE_STATE_ERR 4
-
/* Which connector port. */
#define PORT_TP 0x00
#define PORT_AUI 0x01
@@ -1813,8 +1688,6 @@ static inline int ethtool_validate_duplex(__u8 duplex)
#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
#define WAKE_FILTER (1 << 7)
-#define WOL_MODE_COUNT 8
-
/* L2-L4 network traffic flow types */
#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
#define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */
@@ -1965,11 +1838,6 @@ enum ethtool_reset_flags {
* autonegotiation; 0 if unknown or not applicable. Read-only.
* @transceiver: Used to distinguish different possible PHY types,
* reported consistently by PHYLIB. Read-only.
- * @master_slave_cfg: Master/slave port mode.
- * @master_slave_state: Master/slave port state.
- * @reserved: Reserved for future use; see the note on reserved space.
- * @reserved1: Reserved for future use; see the note on reserved space.
- * @link_mode_masks: Variable length bitmaps.
*
* If autonegotiation is disabled, the speed and @duplex represent the
* fixed link mode and are writable if the driver supports multiple
@@ -2017,9 +1885,7 @@ struct ethtool_link_settings {
__u8 eth_tp_mdix_ctrl;
__s8 link_mode_masks_nwords;
__u8 transceiver;
- __u8 master_slave_cfg;
- __u8 master_slave_state;
- __u8 reserved1[1];
+ __u8 reserved1[3];
__u32 reserved[7];
__u32 link_mode_masks[0];
/* layout of link_mode_masks fields:
diff --git a/original/uapi/linux/ethtool_netlink.h b/original/uapi/linux/ethtool_netlink.h
deleted file mode 100644
index a286635..0000000
--- a/original/uapi/linux/ethtool_netlink.h
+++ /dev/null
@@ -1,638 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
-/*
- * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool
- *
- * See Documentation/networking/ethtool-netlink.rst in kernel source tree for
- * doucumentation of the interface.
- */
-
-#ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_
-#define _UAPI_LINUX_ETHTOOL_NETLINK_H_
-
-#include <linux/ethtool.h>
-
-/* message types - userspace to kernel */
-enum {
- ETHTOOL_MSG_USER_NONE,
- ETHTOOL_MSG_STRSET_GET,
- ETHTOOL_MSG_LINKINFO_GET,
- ETHTOOL_MSG_LINKINFO_SET,
- ETHTOOL_MSG_LINKMODES_GET,
- ETHTOOL_MSG_LINKMODES_SET,
- ETHTOOL_MSG_LINKSTATE_GET,
- ETHTOOL_MSG_DEBUG_GET,
- ETHTOOL_MSG_DEBUG_SET,
- ETHTOOL_MSG_WOL_GET,
- ETHTOOL_MSG_WOL_SET,
- ETHTOOL_MSG_FEATURES_GET,
- ETHTOOL_MSG_FEATURES_SET,
- ETHTOOL_MSG_PRIVFLAGS_GET,
- ETHTOOL_MSG_PRIVFLAGS_SET,
- ETHTOOL_MSG_RINGS_GET,
- ETHTOOL_MSG_RINGS_SET,
- ETHTOOL_MSG_CHANNELS_GET,
- ETHTOOL_MSG_CHANNELS_SET,
- ETHTOOL_MSG_COALESCE_GET,
- ETHTOOL_MSG_COALESCE_SET,
- ETHTOOL_MSG_PAUSE_GET,
- ETHTOOL_MSG_PAUSE_SET,
- ETHTOOL_MSG_EEE_GET,
- ETHTOOL_MSG_EEE_SET,
- ETHTOOL_MSG_TSINFO_GET,
- ETHTOOL_MSG_CABLE_TEST_ACT,
- ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
- ETHTOOL_MSG_TUNNEL_INFO_GET,
-
- /* add new constants above here */
- __ETHTOOL_MSG_USER_CNT,
- ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
-};
-
-/* message types - kernel to userspace */
-enum {
- ETHTOOL_MSG_KERNEL_NONE,
- ETHTOOL_MSG_STRSET_GET_REPLY,
- ETHTOOL_MSG_LINKINFO_GET_REPLY,
- ETHTOOL_MSG_LINKINFO_NTF,
- ETHTOOL_MSG_LINKMODES_GET_REPLY,
- ETHTOOL_MSG_LINKMODES_NTF,
- ETHTOOL_MSG_LINKSTATE_GET_REPLY,
- ETHTOOL_MSG_DEBUG_GET_REPLY,
- ETHTOOL_MSG_DEBUG_NTF,
- ETHTOOL_MSG_WOL_GET_REPLY,
- ETHTOOL_MSG_WOL_NTF,
- ETHTOOL_MSG_FEATURES_GET_REPLY,
- ETHTOOL_MSG_FEATURES_SET_REPLY,
- ETHTOOL_MSG_FEATURES_NTF,
- ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,
- ETHTOOL_MSG_PRIVFLAGS_NTF,
- ETHTOOL_MSG_RINGS_GET_REPLY,
- ETHTOOL_MSG_RINGS_NTF,
- ETHTOOL_MSG_CHANNELS_GET_REPLY,
- ETHTOOL_MSG_CHANNELS_NTF,
- ETHTOOL_MSG_COALESCE_GET_REPLY,
- ETHTOOL_MSG_COALESCE_NTF,
- ETHTOOL_MSG_PAUSE_GET_REPLY,
- ETHTOOL_MSG_PAUSE_NTF,
- ETHTOOL_MSG_EEE_GET_REPLY,
- ETHTOOL_MSG_EEE_NTF,
- ETHTOOL_MSG_TSINFO_GET_REPLY,
- ETHTOOL_MSG_CABLE_TEST_NTF,
- ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
- ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
-
- /* add new constants above here */
- __ETHTOOL_MSG_KERNEL_CNT,
- ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
-};
-
-/* request header */
-
-/* use compact bitsets in reply */
-#define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0)
-/* provide optional reply for SET or ACT requests */
-#define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
-/* request statistics, if supported by the driver */
-#define ETHTOOL_FLAG_STATS (1 << 2)
-
-#define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
- ETHTOOL_FLAG_OMIT_REPLY | \
- ETHTOOL_FLAG_STATS)
-
-enum {
- ETHTOOL_A_HEADER_UNSPEC,
- ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */
- ETHTOOL_A_HEADER_DEV_NAME, /* string */
- ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */
-
- /* add new constants above here */
- __ETHTOOL_A_HEADER_CNT,
- ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1
-};
-
-/* bit sets */
-
-enum {
- ETHTOOL_A_BITSET_BIT_UNSPEC,
- ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */
- ETHTOOL_A_BITSET_BIT_NAME, /* string */
- ETHTOOL_A_BITSET_BIT_VALUE, /* flag */
-
- /* add new constants above here */
- __ETHTOOL_A_BITSET_BIT_CNT,
- ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1
-};
-
-enum {
- ETHTOOL_A_BITSET_BITS_UNSPEC,
- ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */
-
- /* add new constants above here */
- __ETHTOOL_A_BITSET_BITS_CNT,
- ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1
-};
-
-enum {
- ETHTOOL_A_BITSET_UNSPEC,
- ETHTOOL_A_BITSET_NOMASK, /* flag */
- ETHTOOL_A_BITSET_SIZE, /* u32 */
- ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */
- ETHTOOL_A_BITSET_VALUE, /* binary */
- ETHTOOL_A_BITSET_MASK, /* binary */
-
- /* add new constants above here */
- __ETHTOOL_A_BITSET_CNT,
- ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1
-};
-
-/* string sets */
-
-enum {
- ETHTOOL_A_STRING_UNSPEC,
- ETHTOOL_A_STRING_INDEX, /* u32 */
- ETHTOOL_A_STRING_VALUE, /* string */
-
- /* add new constants above here */
- __ETHTOOL_A_STRING_CNT,
- ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1
-};
-
-enum {
- ETHTOOL_A_STRINGS_UNSPEC,
- ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */
-
- /* add new constants above here */
- __ETHTOOL_A_STRINGS_CNT,
- ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1
-};
-
-enum {
- ETHTOOL_A_STRINGSET_UNSPEC,
- ETHTOOL_A_STRINGSET_ID, /* u32 */
- ETHTOOL_A_STRINGSET_COUNT, /* u32 */
- ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */
-
- /* add new constants above here */
- __ETHTOOL_A_STRINGSET_CNT,
- ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1
-};
-
-enum {
- ETHTOOL_A_STRINGSETS_UNSPEC,
- ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */
-
- /* add new constants above here */
- __ETHTOOL_A_STRINGSETS_CNT,
- ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1
-};
-
-/* STRSET */
-
-enum {
- ETHTOOL_A_STRSET_UNSPEC,
- ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */
- ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */
-
- /* add new constants above here */
- __ETHTOOL_A_STRSET_CNT,
- ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1
-};
-
-/* LINKINFO */
-
-enum {
- ETHTOOL_A_LINKINFO_UNSPEC,
- ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_LINKINFO_PORT, /* u8 */
- ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */
- ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */
- ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */
- ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */
-
- /* add new constants above here */
- __ETHTOOL_A_LINKINFO_CNT,
- ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
-};
-
-/* LINKMODES */
-
-enum {
- ETHTOOL_A_LINKMODES_UNSPEC,
- ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */
- ETHTOOL_A_LINKMODES_OURS, /* bitset */
- ETHTOOL_A_LINKMODES_PEER, /* bitset */
- ETHTOOL_A_LINKMODES_SPEED, /* u32 */
- ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */
- ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
- ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
- ETHTOOL_A_LINKMODES_LANES, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_LINKMODES_CNT,
- ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
-};
-
-/* LINKSTATE */
-
-enum {
- ETHTOOL_A_LINKSTATE_UNSPEC,
- ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_LINKSTATE_LINK, /* u8 */
- ETHTOOL_A_LINKSTATE_SQI, /* u32 */
- ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */
- ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */
- ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */
-
- /* add new constants above here */
- __ETHTOOL_A_LINKSTATE_CNT,
- ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
-};
-
-/* DEBUG */
-
-enum {
- ETHTOOL_A_DEBUG_UNSPEC,
- ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_DEBUG_MSGMASK, /* bitset */
-
- /* add new constants above here */
- __ETHTOOL_A_DEBUG_CNT,
- ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1
-};
-
-/* WOL */
-
-enum {
- ETHTOOL_A_WOL_UNSPEC,
- ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_WOL_MODES, /* bitset */
- ETHTOOL_A_WOL_SOPASS, /* binary */
-
- /* add new constants above here */
- __ETHTOOL_A_WOL_CNT,
- ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
-};
-
-/* FEATURES */
-
-enum {
- ETHTOOL_A_FEATURES_UNSPEC,
- ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_FEATURES_HW, /* bitset */
- ETHTOOL_A_FEATURES_WANTED, /* bitset */
- ETHTOOL_A_FEATURES_ACTIVE, /* bitset */
- ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */
-
- /* add new constants above here */
- __ETHTOOL_A_FEATURES_CNT,
- ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1
-};
-
-/* PRIVFLAGS */
-
-enum {
- ETHTOOL_A_PRIVFLAGS_UNSPEC,
- ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */
-
- /* add new constants above here */
- __ETHTOOL_A_PRIVFLAGS_CNT,
- ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1
-};
-
-/* RINGS */
-
-enum {
- ETHTOOL_A_RINGS_UNSPEC,
- ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_RINGS_RX_MAX, /* u32 */
- ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */
- ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */
- ETHTOOL_A_RINGS_TX_MAX, /* u32 */
- ETHTOOL_A_RINGS_RX, /* u32 */
- ETHTOOL_A_RINGS_RX_MINI, /* u32 */
- ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */
- ETHTOOL_A_RINGS_TX, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_RINGS_CNT,
- ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
-};
-
-/* CHANNELS */
-
-enum {
- ETHTOOL_A_CHANNELS_UNSPEC,
- ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */
- ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */
- ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */
- ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */
- ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */
- ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */
- ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */
- ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_CHANNELS_CNT,
- ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
-};
-
-/* COALESCE */
-
-enum {
- ETHTOOL_A_COALESCE_UNSPEC,
- ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_COALESCE_RX_USECS, /* u32 */
- ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */
- ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */
- ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */
- ETHTOOL_A_COALESCE_TX_USECS, /* u32 */
- ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */
- ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */
- ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */
- ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */
- ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */
- ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */
- ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */
- ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */
- ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */
- ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */
- ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */
- ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */
- ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */
- ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */
- ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */
- ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */
- ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_COALESCE_CNT,
- ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
-};
-
-/* PAUSE */
-
-enum {
- ETHTOOL_A_PAUSE_UNSPEC,
- ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_PAUSE_AUTONEG, /* u8 */
- ETHTOOL_A_PAUSE_RX, /* u8 */
- ETHTOOL_A_PAUSE_TX, /* u8 */
- ETHTOOL_A_PAUSE_STATS, /* nest - _PAUSE_STAT_* */
-
- /* add new constants above here */
- __ETHTOOL_A_PAUSE_CNT,
- ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_PAUSE_STAT_UNSPEC,
- ETHTOOL_A_PAUSE_STAT_PAD,
-
- ETHTOOL_A_PAUSE_STAT_TX_FRAMES,
- ETHTOOL_A_PAUSE_STAT_RX_FRAMES,
-
- /* add new constants above here */
- __ETHTOOL_A_PAUSE_STAT_CNT,
- ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1)
-};
-
-/* EEE */
-
-enum {
- ETHTOOL_A_EEE_UNSPEC,
- ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_EEE_MODES_OURS, /* bitset */
- ETHTOOL_A_EEE_MODES_PEER, /* bitset */
- ETHTOOL_A_EEE_ACTIVE, /* u8 */
- ETHTOOL_A_EEE_ENABLED, /* u8 */
- ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */
- ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_EEE_CNT,
- ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)
-};
-
-/* TSINFO */
-
-enum {
- ETHTOOL_A_TSINFO_UNSPEC,
- ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */
- ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */
- ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */
- ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_TSINFO_CNT,
- ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
-};
-
-/* CABLE TEST */
-
-enum {
- ETHTOOL_A_CABLE_TEST_UNSPEC,
- ETHTOOL_A_CABLE_TEST_HEADER, /* nest - _A_HEADER_* */
-
- /* add new constants above here */
- __ETHTOOL_A_CABLE_TEST_CNT,
- ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1
-};
-
-/* CABLE TEST NOTIFY */
-enum {
- ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC,
- ETHTOOL_A_CABLE_RESULT_CODE_OK,
- ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
- ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
- ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
-};
-
-enum {
- ETHTOOL_A_CABLE_PAIR_A,
- ETHTOOL_A_CABLE_PAIR_B,
- ETHTOOL_A_CABLE_PAIR_C,
- ETHTOOL_A_CABLE_PAIR_D,
-};
-
-enum {
- ETHTOOL_A_CABLE_RESULT_UNSPEC,
- ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */
- ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */
-
- __ETHTOOL_A_CABLE_RESULT_CNT,
- ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC,
- ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */
- ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */
-
- __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT,
- ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC,
- ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED,
- ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED
-};
-
-enum {
- ETHTOOL_A_CABLE_NEST_UNSPEC,
- ETHTOOL_A_CABLE_NEST_RESULT, /* nest - ETHTOOL_A_CABLE_RESULT_ */
- ETHTOOL_A_CABLE_NEST_FAULT_LENGTH, /* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */
- __ETHTOOL_A_CABLE_NEST_CNT,
- ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_TEST_NTF_UNSPEC,
- ETHTOOL_A_CABLE_TEST_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */
- ETHTOOL_A_CABLE_TEST_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */
- ETHTOOL_A_CABLE_TEST_NTF_NEST, /* nest - of results: */
-
- __ETHTOOL_A_CABLE_TEST_NTF_CNT,
- ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1)
-};
-
-/* CABLE TEST TDR */
-
-enum {
- ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC,
- ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST, /* u32 */
- ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST, /* u32 */
- ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP, /* u32 */
- ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR, /* u8 */
-
- /* add new constants above here */
- __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT,
- ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1
-};
-
-enum {
- ETHTOOL_A_CABLE_TEST_TDR_UNSPEC,
- ETHTOOL_A_CABLE_TEST_TDR_HEADER, /* nest - _A_HEADER_* */
- ETHTOOL_A_CABLE_TEST_TDR_CFG, /* nest - *_TDR_CFG_* */
-
- /* add new constants above here */
- __ETHTOOL_A_CABLE_TEST_TDR_CNT,
- ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1
-};
-
-/* CABLE TEST TDR NOTIFY */
-
-enum {
- ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC,
- ETHTOOL_A_CABLE_AMPLITUDE_PAIR, /* u8 */
- ETHTOOL_A_CABLE_AMPLITUDE_mV, /* s16 */
-
- __ETHTOOL_A_CABLE_AMPLITUDE_CNT,
- ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_PULSE_UNSPEC,
- ETHTOOL_A_CABLE_PULSE_mV, /* s16 */
-
- __ETHTOOL_A_CABLE_PULSE_CNT,
- ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_STEP_UNSPEC,
- ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, /* u32 */
- ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */
- ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */
-
- __ETHTOOL_A_CABLE_STEP_CNT,
- ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_TDR_NEST_UNSPEC,
- ETHTOOL_A_CABLE_TDR_NEST_STEP, /* nest - ETHTTOOL_A_CABLE_STEP */
- ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */
- ETHTOOL_A_CABLE_TDR_NEST_PULSE, /* nest - ETHTOOL_A_CABLE_PULSE */
-
- __ETHTOOL_A_CABLE_TDR_NEST_CNT,
- ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC,
- ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */
- ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */
- ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST, /* nest - of results: */
-
- /* add new constants above here */
- __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT,
- ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1
-};
-
-/* TUNNEL INFO */
-
-enum {
- ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,
- ETHTOOL_UDP_TUNNEL_TYPE_GENEVE,
- ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE,
-
- __ETHTOOL_UDP_TUNNEL_TYPE_CNT
-};
-
-enum {
- ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC,
-
- ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT, /* be16 */
- ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE, /* u32 */
-
- /* add new constants above here */
- __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT,
- ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC,
-
- ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE, /* u32 */
- ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES, /* bitset */
- ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY, /* nest - _UDP_ENTRY_* */
-
- /* add new constants above here */
- __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT,
- ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_TUNNEL_UDP_UNSPEC,
-
- ETHTOOL_A_TUNNEL_UDP_TABLE, /* nest - _UDP_TABLE_* */
-
- /* add new constants above here */
- __ETHTOOL_A_TUNNEL_UDP_CNT,
- ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1)
-};
-
-enum {
- ETHTOOL_A_TUNNEL_INFO_UNSPEC,
- ETHTOOL_A_TUNNEL_INFO_HEADER, /* nest - _A_HEADER_* */
-
- ETHTOOL_A_TUNNEL_INFO_UDP_PORTS, /* nest - _UDP_TABLE */
-
- /* add new constants above here */
- __ETHTOOL_A_TUNNEL_INFO_CNT,
- ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
-};
-
-/* generic netlink info */
-#define ETHTOOL_GENL_NAME "ethtool"
-#define ETHTOOL_GENL_VERSION 1
-
-#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
-
-#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */
diff --git a/original/uapi/linux/f2fs.h b/original/uapi/linux/f2fs.h
deleted file mode 100644
index 352a822..0000000
--- a/original/uapi/linux/f2fs.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-
-#ifndef _UAPI_LINUX_F2FS_H
-#define _UAPI_LINUX_F2FS_H
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-/*
- * f2fs-specific ioctl commands
- */
-#define F2FS_IOCTL_MAGIC 0xf5
-#define F2FS_IOC_START_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 1)
-#define F2FS_IOC_COMMIT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 2)
-#define F2FS_IOC_START_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 3)
-#define F2FS_IOC_RELEASE_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 4)
-#define F2FS_IOC_ABORT_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 5)
-#define F2FS_IOC_GARBAGE_COLLECT _IOW(F2FS_IOCTL_MAGIC, 6, __u32)
-#define F2FS_IOC_WRITE_CHECKPOINT _IO(F2FS_IOCTL_MAGIC, 7)
-#define F2FS_IOC_DEFRAGMENT _IOWR(F2FS_IOCTL_MAGIC, 8, \
- struct f2fs_defragment)
-#define F2FS_IOC_MOVE_RANGE _IOWR(F2FS_IOCTL_MAGIC, 9, \
- struct f2fs_move_range)
-#define F2FS_IOC_FLUSH_DEVICE _IOW(F2FS_IOCTL_MAGIC, 10, \
- struct f2fs_flush_device)
-#define F2FS_IOC_GARBAGE_COLLECT_RANGE _IOW(F2FS_IOCTL_MAGIC, 11, \
- struct f2fs_gc_range)
-#define F2FS_IOC_GET_FEATURES _IOR(F2FS_IOCTL_MAGIC, 12, __u32)
-#define F2FS_IOC_SET_PIN_FILE _IOW(F2FS_IOCTL_MAGIC, 13, __u32)
-#define F2FS_IOC_GET_PIN_FILE _IOR(F2FS_IOCTL_MAGIC, 14, __u32)
-#define F2FS_IOC_PRECACHE_EXTENTS _IO(F2FS_IOCTL_MAGIC, 15)
-#define F2FS_IOC_RESIZE_FS _IOW(F2FS_IOCTL_MAGIC, 16, __u64)
-#define F2FS_IOC_GET_COMPRESS_BLOCKS _IOR(F2FS_IOCTL_MAGIC, 17, __u64)
-#define F2FS_IOC_RELEASE_COMPRESS_BLOCKS \
- _IOR(F2FS_IOCTL_MAGIC, 18, __u64)
-#define F2FS_IOC_RESERVE_COMPRESS_BLOCKS \
- _IOR(F2FS_IOCTL_MAGIC, 19, __u64)
-#define F2FS_IOC_SEC_TRIM_FILE _IOW(F2FS_IOCTL_MAGIC, 20, \
- struct f2fs_sectrim_range)
-#define F2FS_IOC_GET_COMPRESS_OPTION _IOR(F2FS_IOCTL_MAGIC, 21, \
- struct f2fs_comp_option)
-#define F2FS_IOC_SET_COMPRESS_OPTION _IOW(F2FS_IOCTL_MAGIC, 22, \
- struct f2fs_comp_option)
-#define F2FS_IOC_DECOMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 23)
-#define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24)
-
-/*
- * should be same as XFS_IOC_GOINGDOWN.
- * Flags for going down operation used by FS_IOC_GOINGDOWN
- */
-#define F2FS_IOC_SHUTDOWN _IOR('X', 125, __u32) /* Shutdown */
-#define F2FS_GOING_DOWN_FULLSYNC 0x0 /* going down with full sync */
-#define F2FS_GOING_DOWN_METASYNC 0x1 /* going down with metadata */
-#define F2FS_GOING_DOWN_NOSYNC 0x2 /* going down */
-#define F2FS_GOING_DOWN_METAFLUSH 0x3 /* going down with meta flush */
-#define F2FS_GOING_DOWN_NEED_FSCK 0x4 /* going down to trigger fsck */
-
-/*
- * Flags used by F2FS_IOC_SEC_TRIM_FILE
- */
-#define F2FS_TRIM_FILE_DISCARD 0x1 /* send discard command */
-#define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */
-#define F2FS_TRIM_FILE_MASK 0x3
-
-struct f2fs_gc_range {
- __u32 sync;
- __u64 start;
- __u64 len;
-};
-
-struct f2fs_defragment {
- __u64 start;
- __u64 len;
-};
-
-struct f2fs_move_range {
- __u32 dst_fd; /* destination fd */
- __u64 pos_in; /* start position in src_fd */
- __u64 pos_out; /* start position in dst_fd */
- __u64 len; /* size to move */
-};
-
-struct f2fs_flush_device {
- __u32 dev_num; /* device number to flush */
- __u32 segments; /* # of segments to flush */
-};
-
-struct f2fs_sectrim_range {
- __u64 start;
- __u64 len;
- __u64 flags;
-};
-
-struct f2fs_comp_option {
- __u8 algorithm;
- __u8 log_cluster_size;
-};
-
-#endif /* _UAPI_LINUX_F2FS_H */
diff --git a/original/uapi/linux/fanotify.h b/original/uapi/linux/fanotify.h
index fbf9c5c..b9effa6 100644
--- a/original/uapi/linux/fanotify.h
+++ b/original/uapi/linux/fanotify.h
@@ -25,9 +25,9 @@
#define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */
#define FAN_OPEN_EXEC_PERM 0x00040000 /* File open/exec in perm check */
-#define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */
+#define FAN_ONDIR 0x40000000 /* event occurred against dir */
-#define FAN_ONDIR 0x40000000 /* Event occurred against dir */
+#define FAN_EVENT_ON_CHILD 0x08000000 /* interested in child events */
/* helper events */
#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */
@@ -53,11 +53,6 @@
/* Flags to determine fanotify event format */
#define FAN_REPORT_TID 0x00000100 /* event->pid is thread id */
#define FAN_REPORT_FID 0x00000200 /* Report unique file id */
-#define FAN_REPORT_DIR_FID 0x00000400 /* Report unique directory id */
-#define FAN_REPORT_NAME 0x00000800 /* Report events with name */
-
-/* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */
-#define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
/* Deprecated - do not use this in programs and do not add new flags here! */
#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \
@@ -121,8 +116,6 @@ struct fanotify_event_metadata {
};
#define FAN_EVENT_INFO_TYPE_FID 1
-#define FAN_EVENT_INFO_TYPE_DFID_NAME 2
-#define FAN_EVENT_INFO_TYPE_DFID 3
/* Variable length info record following event metadata */
struct fanotify_event_info_header {
@@ -131,13 +124,7 @@ struct fanotify_event_info_header {
__u16 len;
};
-/*
- * Unique file identifier info record.
- * This structure is used for records of types FAN_EVENT_INFO_TYPE_FID,
- * FAN_EVENT_INFO_TYPE_DFID and FAN_EVENT_INFO_TYPE_DFID_NAME.
- * For FAN_EVENT_INFO_TYPE_DFID_NAME there is additionally a null terminated
- * name immediately after the file handle.
- */
+/* Unique file identifier info record */
struct fanotify_event_info_fid {
struct fanotify_event_info_header hdr;
__kernel_fsid_t fsid;
diff --git a/original/uapi/linux/fb.h b/original/uapi/linux/fb.h
index 4c14e8b..b6aac7e 100644
--- a/original/uapi/linux/fb.h
+++ b/original/uapi/linux/fb.h
@@ -205,7 +205,6 @@ struct fb_bitfield {
#define FB_ACTIVATE_ALL 64 /* change all VCs on this fb */
#define FB_ACTIVATE_FORCE 128 /* force apply even when no change*/
#define FB_ACTIVATE_INV_MODE 256 /* invalidate videomode */
-#define FB_ACTIVATE_KD_TEXT 512 /* for KDSET vt ioctl */
#define FB_ACCELF_TEXT 1 /* (OBSOLETE) see fb_info.flags and vc_mode */
diff --git a/original/uapi/linux/fcntl.h b/original/uapi/linux/fcntl.h
index 2f86b2a..1f97b33 100644
--- a/original/uapi/linux/fcntl.h
+++ b/original/uapi/linux/fcntl.h
@@ -3,7 +3,6 @@
#define _UAPI_LINUX_FCNTL_H
#include <asm/fcntl.h>
-#include <linux/openat2.h>
#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
#define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1)
@@ -84,20 +83,10 @@
#define DN_ATTRIB 0x00000020 /* File changed attibutes */
#define DN_MULTISHOT 0x80000000 /* Don't remove notifier */
-/*
- * The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS is
- * meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to
- * unlinkat. The two functions do completely different things and therefore,
- * the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to
- * faccessat would be undefined behavior and thus treating it equivalent to
- * AT_EACCESS is valid undefined behavior.
- */
#define AT_FDCWD -100 /* Special value used to indicate
openat should use the current
working directory. */
#define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */
-#define AT_EACCESS 0x200 /* Test access permitted for
- effective IDs, not real IDs. */
#define AT_REMOVEDIR 0x200 /* Remove directory instead of
unlinking file. */
#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */
@@ -111,4 +100,5 @@
#define AT_RECURSIVE 0x8000 /* Apply to the entire subtree */
+
#endif /* _UAPI_LINUX_FCNTL_H */
diff --git a/original/uapi/linux/fd.h b/original/uapi/linux/fd.h
index 8b80c63..90fb947 100644
--- a/original/uapi/linux/fd.h
+++ b/original/uapi/linux/fd.h
@@ -172,10 +172,7 @@ struct floppy_drive_params {
* used in succession to try to read the disk. If the FDC cannot lock onto
* the disk, the next format is tried. This uses the variable 'probing'.
*/
-
-#define FD_AUTODETECT_SIZE 8
-
- short autodetect[FD_AUTODETECT_SIZE]; /* autodetected formats */
+ short autodetect[8]; /* autodetected formats */
int checkfreq; /* how often should the drive be checked for disk
* changes */
@@ -360,25 +357,10 @@ struct floppy_raw_cmd {
int buffer_length; /* length of allocated buffer */
unsigned char rate;
-
-#define FD_RAW_CMD_SIZE 16
-#define FD_RAW_REPLY_SIZE 16
-#define FD_RAW_CMD_FULLSIZE (FD_RAW_CMD_SIZE + 1 + FD_RAW_REPLY_SIZE)
-
- /* The command may take up the space initially intended for the reply
- * and the reply count. Needed for long 82078 commands such as RESTORE,
- * which takes 17 command bytes.
- */
-
unsigned char cmd_count;
- union {
- struct {
- unsigned char cmd[FD_RAW_CMD_SIZE];
- unsigned char reply_count;
- unsigned char reply[FD_RAW_REPLY_SIZE];
- };
- unsigned char fullcmd[FD_RAW_CMD_FULLSIZE];
- };
+ unsigned char cmd[16];
+ unsigned char reply_count;
+ unsigned char reply[16];
int track;
int resultcode;
diff --git a/original/uapi/linux/fdreg.h b/original/uapi/linux/fdreg.h
index 10d3363..5e2981d 100644
--- a/original/uapi/linux/fdreg.h
+++ b/original/uapi/linux/fdreg.h
@@ -7,28 +7,26 @@
* Handbook", Sanches and Canton.
*/
-/* 82077's auxiliary status registers A & B (R) */
-#define FD_SRA 0
-#define FD_SRB 1
-
-/* Digital Output Register */
-#define FD_DOR 2
-
-/* 82077's tape drive register (R/W) */
-#define FD_TDR 3
-
-/* 82077's data rate select register (W) */
-#define FD_DSR 4
+#ifdef FDPATCHES
+#define FD_IOPORT fdc_state[fdc].address
+#else
+/* It would be a lot saner just to force fdc_state[fdc].address to always
+ be set ! FIXME */
+#define FD_IOPORT 0x3f0
+#endif
/* Fd controller regs. S&C, about page 340 */
-#define FD_STATUS 4
-#define FD_DATA 5
+#define FD_STATUS (4 + FD_IOPORT )
+#define FD_DATA (5 + FD_IOPORT )
+
+/* Digital Output Register */
+#define FD_DOR (2 + FD_IOPORT )
/* Digital Input Register (read) */
-#define FD_DIR 7
+#define FD_DIR (7 + FD_IOPORT )
/* Diskette Control Register (write)*/
-#define FD_DCR 7
+#define FD_DCR (7 + FD_IOPORT )
/* Bits of main status register */
#define STATUS_BUSYMASK 0x0F /* drive busy mask */
diff --git a/original/uapi/linux/fiemap.h b/original/uapi/linux/fiemap.h
index 07c1cdc..8c0bc24 100644
--- a/original/uapi/linux/fiemap.h
+++ b/original/uapi/linux/fiemap.h
@@ -9,8 +9,8 @@
* Andreas Dilger <adilger@sun.com>
*/
-#ifndef _UAPI_LINUX_FIEMAP_H
-#define _UAPI_LINUX_FIEMAP_H
+#ifndef _LINUX_FIEMAP_H
+#define _LINUX_FIEMAP_H
#include <linux/types.h>
@@ -67,4 +67,4 @@ struct fiemap {
#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other
* files. */
-#endif /* _UAPI_LINUX_FIEMAP_H */
+#endif /* _LINUX_FIEMAP_H */
diff --git a/original/uapi/linux/firewire-cdev.h b/original/uapi/linux/firewire-cdev.h
index 5effa98..1acd2b1 100644
--- a/original/uapi/linux/firewire-cdev.h
+++ b/original/uapi/linux/firewire-cdev.h
@@ -308,7 +308,7 @@ struct fw_cdev_event_iso_interrupt_mc {
/**
* struct fw_cdev_event_iso_resource - Iso resources were allocated or freed
* @closure: See &fw_cdev_event_common;
- * set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctl
+ * set by %FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE) ioctl
* @type: %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or
* %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED
* @handle: Reference by which an allocated resource can be deallocated
@@ -844,7 +844,7 @@ struct fw_cdev_queue_iso {
* struct fw_cdev_start_iso - Start an isochronous transmission or reception
* @cycle: Cycle in which to start I/O. If @cycle is greater than or
* equal to 0, the I/O will start on that cycle.
- * @sync: Determines the value to wait for receive packets that have
+ * @sync: Determines the value to wait for for receive packets that have
* the %FW_CDEV_ISO_SYNC bit set
* @tags: Tag filter bit mask. Only valid for isochronous reception.
* Determines the tag values for which packets will be accepted.
diff --git a/original/uapi/linux/fpga-dfl.h b/original/uapi/linux/fpga-dfl.h
index 1621b07..ec70a07 100644
--- a/original/uapi/linux/fpga-dfl.h
+++ b/original/uapi/linux/fpga-dfl.h
@@ -151,65 +151,6 @@ struct dfl_fpga_port_dma_unmap {
#define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4)
-/**
- * struct dfl_fpga_irq_set - the argument for DFL_FPGA_XXX_SET_IRQ ioctl.
- *
- * @start: Index of the first irq.
- * @count: The number of eventfd handler.
- * @evtfds: Eventfd handlers.
- */
-struct dfl_fpga_irq_set {
- __u32 start;
- __u32 count;
- __s32 evtfds[];
-};
-
-/**
- * DFL_FPGA_PORT_ERR_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 5,
- * __u32 num_irqs)
- *
- * Get the number of irqs supported by the fpga port error reporting private
- * feature. Currently hardware supports up to 1 irq.
- * Return: 0 on success, -errno on failure.
- */
-#define DFL_FPGA_PORT_ERR_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \
- DFL_PORT_BASE + 5, __u32)
-
-/**
- * DFL_FPGA_PORT_ERR_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_PORT_BASE + 6,
- * struct dfl_fpga_irq_set)
- *
- * Set fpga port error reporting interrupt trigger if evtfds[n] is valid.
- * Unset related interrupt trigger if evtfds[n] is a negative value.
- * Return: 0 on success, -errno on failure.
- */
-#define DFL_FPGA_PORT_ERR_SET_IRQ _IOW(DFL_FPGA_MAGIC, \
- DFL_PORT_BASE + 6, \
- struct dfl_fpga_irq_set)
-
-/**
- * DFL_FPGA_PORT_UINT_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 7,
- * __u32 num_irqs)
- *
- * Get the number of irqs supported by the fpga AFU interrupt private
- * feature.
- * Return: 0 on success, -errno on failure.
- */
-#define DFL_FPGA_PORT_UINT_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \
- DFL_PORT_BASE + 7, __u32)
-
-/**
- * DFL_FPGA_PORT_UINT_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_PORT_BASE + 8,
- * struct dfl_fpga_irq_set)
- *
- * Set fpga AFU interrupt trigger if evtfds[n] is valid.
- * Unset related interrupt trigger if evtfds[n] is a negative value.
- * Return: 0 on success, -errno on failure.
- */
-#define DFL_FPGA_PORT_UINT_SET_IRQ _IOW(DFL_FPGA_MAGIC, \
- DFL_PORT_BASE + 8, \
- struct dfl_fpga_irq_set)
-
/* IOCTLs for FME file descriptor */
/**
@@ -253,27 +194,4 @@ struct dfl_fpga_fme_port_pr {
*/
#define DFL_FPGA_FME_PORT_ASSIGN _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 2, int)
-/**
- * DFL_FPGA_FME_ERR_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_FME_BASE + 3,
- * __u32 num_irqs)
- *
- * Get the number of irqs supported by the fpga fme error reporting private
- * feature. Currently hardware supports up to 1 irq.
- * Return: 0 on success, -errno on failure.
- */
-#define DFL_FPGA_FME_ERR_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \
- DFL_FME_BASE + 3, __u32)
-
-/**
- * DFL_FPGA_FME_ERR_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 4,
- * struct dfl_fpga_irq_set)
- *
- * Set fpga fme error reporting interrupt trigger if evtfds[n] is valid.
- * Unset related interrupt trigger if evtfds[n] is a negative value.
- * Return: 0 on success, -errno on failure.
- */
-#define DFL_FPGA_FME_ERR_SET_IRQ _IOW(DFL_FPGA_MAGIC, \
- DFL_FME_BASE + 4, \
- struct dfl_fpga_irq_set)
-
#endif /* _UAPI_LINUX_FPGA_DFL_H */
diff --git a/original/uapi/linux/fs.h b/original/uapi/linux/fs.h
index f44eb0a..379a612 100644
--- a/original/uapi/linux/fs.h
+++ b/original/uapi/linux/fs.h
@@ -262,7 +262,6 @@ struct fsxattr {
#define FS_EA_INODE_FL 0x00200000 /* Inode used for large EA */
#define FS_EOFBLOCKS_FL 0x00400000 /* Reserved for ext4 */
#define FS_NOCOW_FL 0x00800000 /* Do not cow file */
-#define FS_DAX_FL 0x02000000 /* Inode is DAX */
#define FS_INLINE_DATA_FL 0x10000000 /* Reserved for ext4 */
#define FS_PROJINHERIT_FL 0x20000000 /* Create with parents projid */
#define FS_CASEFOLD_FL 0x40000000 /* Folder is case insensitive */
diff --git a/original/uapi/linux/fscrypt.h b/original/uapi/linux/fscrypt.h
index fceafb5..7d150d8 100644
--- a/original/uapi/linux/fscrypt.h
+++ b/original/uapi/linux/fscrypt.h
@@ -8,7 +8,6 @@
#ifndef _UAPI_LINUX_FSCRYPT_H
#define _UAPI_LINUX_FSCRYPT_H
-#include <linux/ioctl.h>
#include <linux/types.h>
/* Encryption policy flags */
@@ -19,7 +18,7 @@
#define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x03
#define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04
#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 0x08
-#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 0x10
+#define FSCRYPT_POLICY_FLAGS_VALID 0x0F
/* Encryption algorithms */
#define FSCRYPT_MODE_AES_256_XTS 1
@@ -27,7 +26,7 @@
#define FSCRYPT_MODE_AES_128_CBC 5
#define FSCRYPT_MODE_AES_128_CTS 6
#define FSCRYPT_MODE_ADIANTUM 9
-/* If adding a mode number > 9, update FSCRYPT_MODE_MAX in fscrypt_private.h */
+#define __FSCRYPT_MODE_MAX 9
/*
* Legacy policy version; ad-hoc KDF and no key verification.
@@ -44,6 +43,7 @@ struct fscrypt_policy_v1 {
__u8 flags;
__u8 master_key_descriptor[FSCRYPT_KEY_DESCRIPTOR_SIZE];
};
+#define fscrypt_policy fscrypt_policy_v1
/*
* Process-subscribed "logon" key description prefix and payload format.
@@ -109,22 +109,11 @@ struct fscrypt_key_specifier {
} u;
};
-/*
- * Payload of Linux keyring key of type "fscrypt-provisioning", referenced by
- * fscrypt_add_key_arg::key_id as an alternative to fscrypt_add_key_arg::raw.
- */
-struct fscrypt_provisioning_key_payload {
- __u32 type;
- __u32 __reserved;
- __u8 raw[];
-};
-
/* Struct passed to FS_IOC_ADD_ENCRYPTION_KEY */
struct fscrypt_add_key_arg {
struct fscrypt_key_specifier key_spec;
__u32 raw_size;
- __u32 key_id;
- __u32 __reserved[7];
+ __u32 __reserved[8];
/* N.B.: "temporary" flag, not reserved upstream */
#define __FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED 0x00000001
__u32 __flags;
@@ -157,21 +146,19 @@ struct fscrypt_get_key_status_arg {
__u32 __out_reserved[13];
};
-#define FS_IOC_SET_ENCRYPTION_POLICY _IOR('f', 19, struct fscrypt_policy_v1)
+#define FS_IOC_SET_ENCRYPTION_POLICY _IOR('f', 19, struct fscrypt_policy)
#define FS_IOC_GET_ENCRYPTION_PWSALT _IOW('f', 20, __u8[16])
-#define FS_IOC_GET_ENCRYPTION_POLICY _IOW('f', 21, struct fscrypt_policy_v1)
+#define FS_IOC_GET_ENCRYPTION_POLICY _IOW('f', 21, struct fscrypt_policy)
#define FS_IOC_GET_ENCRYPTION_POLICY_EX _IOWR('f', 22, __u8[9]) /* size + version */
#define FS_IOC_ADD_ENCRYPTION_KEY _IOWR('f', 23, struct fscrypt_add_key_arg)
#define FS_IOC_REMOVE_ENCRYPTION_KEY _IOWR('f', 24, struct fscrypt_remove_key_arg)
#define FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS _IOWR('f', 25, struct fscrypt_remove_key_arg)
#define FS_IOC_GET_ENCRYPTION_KEY_STATUS _IOWR('f', 26, struct fscrypt_get_key_status_arg)
-#define FS_IOC_GET_ENCRYPTION_NONCE _IOR('f', 27, __u8[16])
/**********************************************************************/
/* old names; don't add anything new here! */
#ifndef __KERNEL__
-#define fscrypt_policy fscrypt_policy_v1
#define FS_KEY_DESCRIPTOR_SIZE FSCRYPT_KEY_DESCRIPTOR_SIZE
#define FS_POLICY_FLAGS_PAD_4 FSCRYPT_POLICY_FLAGS_PAD_4
#define FS_POLICY_FLAGS_PAD_8 FSCRYPT_POLICY_FLAGS_PAD_8
@@ -179,7 +166,7 @@ struct fscrypt_get_key_status_arg {
#define FS_POLICY_FLAGS_PAD_32 FSCRYPT_POLICY_FLAGS_PAD_32
#define FS_POLICY_FLAGS_PAD_MASK FSCRYPT_POLICY_FLAGS_PAD_MASK
#define FS_POLICY_FLAG_DIRECT_KEY FSCRYPT_POLICY_FLAG_DIRECT_KEY
-#define FS_POLICY_FLAGS_VALID 0x07 /* contains old flags only */
+#define FS_POLICY_FLAGS_VALID FSCRYPT_POLICY_FLAGS_VALID
#define FS_ENCRYPTION_MODE_INVALID 0 /* never used */
#define FS_ENCRYPTION_MODE_AES_256_XTS FSCRYPT_MODE_AES_256_XTS
#define FS_ENCRYPTION_MODE_AES_256_GCM 2 /* never used */
diff --git a/original/uapi/linux/fsl_mc.h b/original/uapi/linux/fsl_mc.h
deleted file mode 100644
index e574515..0000000
--- a/original/uapi/linux/fsl_mc.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Management Complex (MC) userspace public interface
- *
- * Copyright 2021 NXP
- *
- */
-#ifndef _UAPI_FSL_MC_H_
-#define _UAPI_FSL_MC_H_
-
-#include <linux/types.h>
-
-#define MC_CMD_NUM_OF_PARAMS 7
-
-/**
- * struct fsl_mc_command - Management Complex (MC) command structure
- * @header: MC command header
- * @params: MC command parameters
- *
- * Used by FSL_MC_SEND_MC_COMMAND
- */
-struct fsl_mc_command {
- __le64 header;
- __le64 params[MC_CMD_NUM_OF_PARAMS];
-};
-
-#define FSL_MC_SEND_CMD_IOCTL_TYPE 'R'
-#define FSL_MC_SEND_CMD_IOCTL_SEQ 0xE0
-
-#define FSL_MC_SEND_MC_COMMAND \
- _IOWR(FSL_MC_SEND_CMD_IOCTL_TYPE, FSL_MC_SEND_CMD_IOCTL_SEQ, \
- struct fsl_mc_command)
-
-#endif /* _UAPI_FSL_MC_H_ */
diff --git a/original/uapi/linux/fsverity.h b/original/uapi/linux/fsverity.h
index 15384e2..da0daf6 100644
--- a/original/uapi/linux/fsverity.h
+++ b/original/uapi/linux/fsverity.h
@@ -34,70 +34,7 @@ struct fsverity_digest {
__u8 digest[];
};
-/*
- * Struct containing a file's Merkle tree properties. The fs-verity file digest
- * is the hash of this struct. A userspace program needs this struct only if it
- * needs to compute fs-verity file digests itself, e.g. in order to sign files.
- * It isn't needed just to enable fs-verity on a file.
- *
- * Note: when computing the file digest, 'sig_size' and 'signature' must be left
- * zero and empty, respectively. These fields are present only because some
- * filesystems reuse this struct as part of their on-disk format.
- */
-struct fsverity_descriptor {
- __u8 version; /* must be 1 */
- __u8 hash_algorithm; /* Merkle tree hash algorithm */
- __u8 log_blocksize; /* log2 of size of data and tree blocks */
- __u8 salt_size; /* size of salt in bytes; 0 if none */
-#ifdef __KERNEL__
- __le32 sig_size;
-#else
- __le32 __reserved_0x04; /* must be 0 */
-#endif
- __le64 data_size; /* size of file the Merkle tree is built over */
- __u8 root_hash[64]; /* Merkle tree root hash */
- __u8 salt[32]; /* salt prepended to each hashed block */
- __u8 __reserved[144]; /* must be 0's */
-#ifdef __KERNEL__
- __u8 signature[];
-#endif
-};
-
-/*
- * Format in which fs-verity file digests are signed in built-in signatures.
- * This is the same as 'struct fsverity_digest', except here some magic bytes
- * are prepended to provide some context about what is being signed in case the
- * same key is used for non-fsverity purposes, and here the fields have fixed
- * endianness.
- *
- * This struct is specific to the built-in signature verification support, which
- * is optional. fs-verity users may also verify signatures in userspace, in
- * which case userspace is responsible for deciding on what bytes are signed.
- * This struct may still be used, but it doesn't have to be. For example,
- * userspace could instead use a string like "sha256:$digest_as_hex_string".
- */
-struct fsverity_formatted_digest {
- char magic[8]; /* must be "FSVerity" */
- __le16 digest_algorithm;
- __le16 digest_size;
- __u8 digest[];
-};
-
-#define FS_VERITY_METADATA_TYPE_MERKLE_TREE 1
-#define FS_VERITY_METADATA_TYPE_DESCRIPTOR 2
-#define FS_VERITY_METADATA_TYPE_SIGNATURE 3
-
-struct fsverity_read_metadata_arg {
- __u64 metadata_type;
- __u64 offset;
- __u64 length;
- __u64 buf_ptr;
- __u64 __reserved;
-};
-
#define FS_IOC_ENABLE_VERITY _IOW('f', 133, struct fsverity_enable_arg)
#define FS_IOC_MEASURE_VERITY _IOWR('f', 134, struct fsverity_digest)
-#define FS_IOC_READ_VERITY_METADATA \
- _IOWR('f', 135, struct fsverity_read_metadata_arg)
#endif /* _UAPI_LINUX_FSVERITY_H */
diff --git a/original/uapi/linux/fuse.h b/original/uapi/linux/fuse.h
index 8fa26a2..373cada 100644
--- a/original/uapi/linux/fuse.h
+++ b/original/uapi/linux/fuse.h
@@ -172,13 +172,6 @@
* - add FUSE_WRITE_KILL_PRIV flag
* - add FUSE_SETUPMAPPING and FUSE_REMOVEMAPPING
* - add map_alignment to fuse_init_out, add FUSE_MAP_ALIGNMENT flag
- *
- * 7.32
- * - add flags to fuse_attr, add FUSE_ATTR_SUBMOUNT, add FUSE_SUBMOUNTS
- *
- * 7.33
- * - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID
- * - add FUSE_OPEN_KILL_SUIDGID
*/
#ifndef _LINUX_FUSE_H
@@ -214,7 +207,7 @@
#define FUSE_KERNEL_VERSION 7
/** Minor version number of this interface */
-#define FUSE_KERNEL_MINOR_VERSION 33
+#define FUSE_KERNEL_MINOR_VERSION 31
/** The node ID of the root inode */
#define FUSE_ROOT_ID 1
@@ -238,7 +231,7 @@ struct fuse_attr {
uint32_t gid;
uint32_t rdev;
uint32_t blksize;
- uint32_t flags;
+ uint32_t padding;
};
struct fuse_kstatfs {
@@ -275,7 +268,6 @@ struct fuse_file_lock {
#define FATTR_MTIME_NOW (1 << 8)
#define FATTR_LOCKOWNER (1 << 9)
#define FATTR_CTIME (1 << 10)
-#define FATTR_KILL_SUIDGID (1 << 11)
/**
* Flags returned by the OPEN request
@@ -321,15 +313,7 @@ struct fuse_file_lock {
* FUSE_CACHE_SYMLINKS: cache READLINK responses
* FUSE_NO_OPENDIR_SUPPORT: kernel supports zero-message opendir
* FUSE_EXPLICIT_INVAL_DATA: only invalidate cached pages on explicit request
- * FUSE_MAP_ALIGNMENT: init_out.map_alignment contains log2(byte alignment) for
- * foffset and moffset fields in struct
- * fuse_setupmapping_out and fuse_removemapping_one.
- * FUSE_SUBMOUNTS: kernel supports auto-mounting directory submounts
- * FUSE_HANDLE_KILLPRIV_V2: fs kills suid/sgid/cap on write/chown/trunc.
- * Upon write/truncate suid/sgid is only killed if caller
- * does not have CAP_FSETID. Additionally upon
- * write/truncate sgid is killed only if file has group
- * execute permission. (Same as Linux VFS behavior).
+ * FUSE_MAP_ALIGNMENT: map_alignment field is valid
*/
#define FUSE_ASYNC_READ (1 << 0)
#define FUSE_POSIX_LOCKS (1 << 1)
@@ -358,9 +342,6 @@ struct fuse_file_lock {
#define FUSE_NO_OPENDIR_SUPPORT (1 << 24)
#define FUSE_EXPLICIT_INVAL_DATA (1 << 25)
#define FUSE_MAP_ALIGNMENT (1 << 26)
-#define FUSE_SUBMOUNTS (1 << 27)
-#define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
-#define FUSE_PASSTHROUGH (1 << 31)
/**
* CUSE INIT request/reply flags
@@ -390,14 +371,11 @@ struct fuse_file_lock {
*
* FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed
* FUSE_WRITE_LOCKOWNER: lock_owner field is valid
- * FUSE_WRITE_KILL_SUIDGID: kill suid and sgid bits
+ * FUSE_WRITE_KILL_PRIV: kill suid and sgid bits
*/
#define FUSE_WRITE_CACHE (1 << 0)
#define FUSE_WRITE_LOCKOWNER (1 << 1)
-#define FUSE_WRITE_KILL_SUIDGID (1 << 2)
-
-/* Obsolete alias; this flag implies killing suid/sgid only. */
-#define FUSE_WRITE_KILL_PRIV FUSE_WRITE_KILL_SUIDGID
+#define FUSE_WRITE_KILL_PRIV (1 << 2)
/**
* Read flags
@@ -439,19 +417,6 @@ struct fuse_file_lock {
*/
#define FUSE_FSYNC_FDATASYNC (1 << 0)
-/**
- * fuse_attr flags
- *
- * FUSE_ATTR_SUBMOUNT: Object is a submount root
- */
-#define FUSE_ATTR_SUBMOUNT (1 << 0)
-
-/**
- * Open flags
- * FUSE_OPEN_KILL_SUIDGID: Kill suid and sgid if executable
- */
-#define FUSE_OPEN_KILL_SUIDGID (1 << 0)
-
enum fuse_opcode {
FUSE_LOOKUP = 1,
FUSE_FORGET = 2, /* no reply */
@@ -500,7 +465,6 @@ enum fuse_opcode {
FUSE_COPY_FILE_RANGE = 47,
FUSE_SETUPMAPPING = 48,
FUSE_REMOVEMAPPING = 49,
- FUSE_CANONICAL_PATH = 2016,
/* CUSE specific operations */
CUSE_INIT = 4096,
@@ -614,20 +578,20 @@ struct fuse_setattr_in {
struct fuse_open_in {
uint32_t flags;
- uint32_t open_flags; /* FUSE_OPEN_... */
+ uint32_t unused;
};
struct fuse_create_in {
uint32_t flags;
uint32_t mode;
uint32_t umask;
- uint32_t open_flags; /* FUSE_OPEN_... */
+ uint32_t padding;
};
struct fuse_open_out {
uint64_t fh;
uint32_t open_flags;
- uint32_t passthrough_fh;
+ uint32_t padding;
};
struct fuse_release_in {
@@ -830,14 +794,6 @@ struct fuse_in_header {
uint32_t padding;
};
-/* fuse_passthrough_out for passthrough V1 */
-struct fuse_passthrough_out {
- uint32_t fd;
- /* For future implementation */
- uint32_t len;
- void *vec;
-};
-
struct fuse_out_header {
uint32_t len;
int32_t error;
@@ -913,10 +869,7 @@ struct fuse_notify_retrieve_in {
};
/* Device ioctls: */
-#define FUSE_DEV_IOC_MAGIC 229
-#define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-/* 127 is reserved for the V1 interface implementation in Android */
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
+#define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t)
struct fuse_lseek_in {
uint64_t fh;
@@ -939,34 +892,4 @@ struct fuse_copy_file_range_in {
uint64_t flags;
};
-#define FUSE_SETUPMAPPING_FLAG_WRITE (1ull << 0)
-#define FUSE_SETUPMAPPING_FLAG_READ (1ull << 1)
-struct fuse_setupmapping_in {
- /* An already open handle */
- uint64_t fh;
- /* Offset into the file to start the mapping */
- uint64_t foffset;
- /* Length of mapping required */
- uint64_t len;
- /* Flags, FUSE_SETUPMAPPING_FLAG_* */
- uint64_t flags;
- /* Offset in Memory Window */
- uint64_t moffset;
-};
-
-struct fuse_removemapping_in {
- /* number of fuse_removemapping_one follows */
- uint32_t count;
-};
-
-struct fuse_removemapping_one {
- /* Offset into the dax window start the unmapping */
- uint64_t moffset;
- /* Length of mapping required */
- uint64_t len;
-};
-
-#define FUSE_REMOVEMAPPING_MAX_ENTRY \
- (PAGE_SIZE / sizeof(struct fuse_removemapping_one))
-
#endif /* _LINUX_FUSE_H */
diff --git a/original/uapi/linux/genetlink.h b/original/uapi/linux/genetlink.h
index d83f214..877f7fa 100644
--- a/original/uapi/linux/genetlink.h
+++ b/original/uapi/linux/genetlink.h
@@ -48,7 +48,6 @@ enum {
CTRL_CMD_NEWMCAST_GRP,
CTRL_CMD_DELMCAST_GRP,
CTRL_CMD_GETMCAST_GRP, /* unused */
- CTRL_CMD_GETPOLICY,
__CTRL_CMD_MAX,
};
@@ -63,9 +62,6 @@ enum {
CTRL_ATTR_MAXATTR,
CTRL_ATTR_OPS,
CTRL_ATTR_MCAST_GROUPS,
- CTRL_ATTR_POLICY,
- CTRL_ATTR_OP_POLICY,
- CTRL_ATTR_OP,
__CTRL_ATTR_MAX,
};
@@ -87,15 +83,6 @@ enum {
__CTRL_ATTR_MCAST_GRP_MAX,
};
-enum {
- CTRL_ATTR_POLICY_UNSPEC,
- CTRL_ATTR_POLICY_DO,
- CTRL_ATTR_POLICY_DUMP,
-
- __CTRL_ATTR_POLICY_DUMP_MAX,
- CTRL_ATTR_POLICY_DUMP_MAX = __CTRL_ATTR_POLICY_DUMP_MAX - 1
-};
-
#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
diff --git a/original/uapi/linux/gfs2_ondisk.h b/original/uapi/linux/gfs2_ondisk.h
index 6ec4291..2dc10a0 100644
--- a/original/uapi/linux/gfs2_ondisk.h
+++ b/original/uapi/linux/gfs2_ondisk.h
@@ -47,7 +47,7 @@
#define GFS2_FORMAT_DE 1200
#define GFS2_FORMAT_QU 1500
/* These are part of the superblock */
-#define GFS2_FORMAT_FS 1802
+#define GFS2_FORMAT_FS 1801
#define GFS2_FORMAT_MULTI 1900
/*
@@ -171,12 +171,6 @@ struct gfs2_rindex {
#define GFS2_RGF_NOALLOC 0x00000008
#define GFS2_RGF_TRIMMED 0x00000010
-struct gfs2_inode_lvb {
- __be32 ri_magic;
- __be32 __pad;
- __be64 ri_generation_deleted;
-};
-
struct gfs2_rgrp_lvb {
__be32 rl_magic;
__be32 rl_flags;
@@ -389,9 +383,8 @@ struct gfs2_leaf {
#define GFS2_EATYPE_USR 1
#define GFS2_EATYPE_SYS 2
#define GFS2_EATYPE_SECURITY 3
-#define GFS2_EATYPE_TRUSTED 4
-#define GFS2_EATYPE_LAST 4
+#define GFS2_EATYPE_LAST 3
#define GFS2_EATYPE_VALID(x) ((x) <= GFS2_EATYPE_LAST)
#define GFS2_EAFLAG_LAST 0x01 /* last ea in block */
diff --git a/original/uapi/linux/gigaset_dev.h b/original/uapi/linux/gigaset_dev.h
new file mode 100644
index 0000000..279551a
--- /dev/null
+++ b/original/uapi/linux/gigaset_dev.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * interface to user space for the gigaset driver
+ *
+ * Copyright (c) 2004 by Hansjoerg Lipp <hjlipp@web.de>
+ *
+ * =====================================================================
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ * =====================================================================
+ */
+
+#ifndef GIGASET_INTERFACE_H
+#define GIGASET_INTERFACE_H
+
+#include <linux/ioctl.h>
+
+/* The magic IOCTL value for this interface. */
+#define GIGASET_IOCTL 0x47
+
+/* enable/disable device control via character device (lock out ISDN subsys) */
+#define GIGASET_REDIR _IOWR(GIGASET_IOCTL, 0, int)
+
+/* enable adapter configuration mode (M10x only) */
+#define GIGASET_CONFIG _IOWR(GIGASET_IOCTL, 1, int)
+
+/* set break characters (M105 only) */
+#define GIGASET_BRKCHARS _IOW(GIGASET_IOCTL, 2, unsigned char[6])
+
+/* get version information selected by arg[0] */
+#define GIGASET_VERSION _IOWR(GIGASET_IOCTL, 3, unsigned[4])
+/* values for GIGASET_VERSION arg[0] */
+#define GIGVER_DRIVER 0 /* get driver version */
+#define GIGVER_COMPAT 1 /* get interface compatibility version */
+#define GIGVER_FWBASE 2 /* get base station firmware version */
+
+#endif
diff --git a/original/uapi/linux/gpio.h b/original/uapi/linux/gpio.h
index eaaea3d..799cf82 100644
--- a/original/uapi/linux/gpio.h
+++ b/original/uapi/linux/gpio.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* <linux/gpio.h> - userspace ABI for the GPIO character devices
*
@@ -11,299 +11,22 @@
#ifndef _UAPI_GPIO_H_
#define _UAPI_GPIO_H_
-#include <linux/const.h>
#include <linux/ioctl.h>
#include <linux/types.h>
-/*
- * The maximum size of name and label arrays.
- *
- * Must be a multiple of 8 to ensure 32/64-bit alignment of structs.
- */
-#define GPIO_MAX_NAME_SIZE 32
-
/**
* struct gpiochip_info - Information about a certain GPIO chip
* @name: the Linux kernel name of this GPIO chip
* @label: a functional name for this GPIO chip, such as a product
- * number, may be empty (i.e. label[0] == '\0')
+ * number, may be NULL
* @lines: number of GPIO lines on this chip
*/
struct gpiochip_info {
- char name[GPIO_MAX_NAME_SIZE];
- char label[GPIO_MAX_NAME_SIZE];
+ char name[32];
+ char label[32];
__u32 lines;
};
-/*
- * Maximum number of requested lines.
- *
- * Must be no greater than 64, as bitmaps are restricted here to 64-bits
- * for simplicity, and a multiple of 2 to ensure 32/64-bit alignment of
- * structs.
- */
-#define GPIO_V2_LINES_MAX 64
-
-/*
- * The maximum number of configuration attributes associated with a line
- * request.
- */
-#define GPIO_V2_LINE_NUM_ATTRS_MAX 10
-
-/**
- * enum gpio_v2_line_flag - &struct gpio_v2_line_attribute.flags values
- * @GPIO_V2_LINE_FLAG_USED: line is not available for request
- * @GPIO_V2_LINE_FLAG_ACTIVE_LOW: line active state is physical low
- * @GPIO_V2_LINE_FLAG_INPUT: line is an input
- * @GPIO_V2_LINE_FLAG_OUTPUT: line is an output
- * @GPIO_V2_LINE_FLAG_EDGE_RISING: line detects rising (inactive to active)
- * edges
- * @GPIO_V2_LINE_FLAG_EDGE_FALLING: line detects falling (active to
- * inactive) edges
- * @GPIO_V2_LINE_FLAG_OPEN_DRAIN: line is an open drain output
- * @GPIO_V2_LINE_FLAG_OPEN_SOURCE: line is an open source output
- * @GPIO_V2_LINE_FLAG_BIAS_PULL_UP: line has pull-up bias enabled
- * @GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN: line has pull-down bias enabled
- * @GPIO_V2_LINE_FLAG_BIAS_DISABLED: line has bias disabled
- * @GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME: line events contain REALTIME timestamps
- */
-enum gpio_v2_line_flag {
- GPIO_V2_LINE_FLAG_USED = _BITULL(0),
- GPIO_V2_LINE_FLAG_ACTIVE_LOW = _BITULL(1),
- GPIO_V2_LINE_FLAG_INPUT = _BITULL(2),
- GPIO_V2_LINE_FLAG_OUTPUT = _BITULL(3),
- GPIO_V2_LINE_FLAG_EDGE_RISING = _BITULL(4),
- GPIO_V2_LINE_FLAG_EDGE_FALLING = _BITULL(5),
- GPIO_V2_LINE_FLAG_OPEN_DRAIN = _BITULL(6),
- GPIO_V2_LINE_FLAG_OPEN_SOURCE = _BITULL(7),
- GPIO_V2_LINE_FLAG_BIAS_PULL_UP = _BITULL(8),
- GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = _BITULL(9),
- GPIO_V2_LINE_FLAG_BIAS_DISABLED = _BITULL(10),
- GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = _BITULL(11),
-};
-
-/**
- * struct gpio_v2_line_values - Values of GPIO lines
- * @bits: a bitmap containing the value of the lines, set to 1 for active
- * and 0 for inactive.
- * @mask: a bitmap identifying the lines to get or set, with each bit
- * number corresponding to the index into &struct
- * gpio_v2_line_request.offsets.
- */
-struct gpio_v2_line_values {
- __aligned_u64 bits;
- __aligned_u64 mask;
-};
-
-/**
- * enum gpio_v2_line_attr_id - &struct gpio_v2_line_attribute.id values
- * identifying which field of the attribute union is in use.
- * @GPIO_V2_LINE_ATTR_ID_FLAGS: flags field is in use
- * @GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES: values field is in use
- * @GPIO_V2_LINE_ATTR_ID_DEBOUNCE: debounce_period_us field is in use
- */
-enum gpio_v2_line_attr_id {
- GPIO_V2_LINE_ATTR_ID_FLAGS = 1,
- GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2,
- GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3,
-};
-
-/**
- * struct gpio_v2_line_attribute - a configurable attribute of a line
- * @id: attribute identifier with value from &enum gpio_v2_line_attr_id
- * @padding: reserved for future use and must be zero filled
- * @flags: if id is %GPIO_V2_LINE_ATTR_ID_FLAGS, the flags for the GPIO
- * line, with values from &enum gpio_v2_line_flag, such as
- * %GPIO_V2_LINE_FLAG_ACTIVE_LOW, %GPIO_V2_LINE_FLAG_OUTPUT etc, added
- * together. This overrides the default flags contained in the &struct
- * gpio_v2_line_config for the associated line.
- * @values: if id is %GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES, a bitmap
- * containing the values to which the lines will be set, with each bit
- * number corresponding to the index into &struct
- * gpio_v2_line_request.offsets.
- * @debounce_period_us: if id is %GPIO_V2_LINE_ATTR_ID_DEBOUNCE, the
- * desired debounce period, in microseconds
- */
-struct gpio_v2_line_attribute {
- __u32 id;
- __u32 padding;
- union {
- __aligned_u64 flags;
- __aligned_u64 values;
- __u32 debounce_period_us;
- };
-};
-
-/**
- * struct gpio_v2_line_config_attribute - a configuration attribute
- * associated with one or more of the requested lines.
- * @attr: the configurable attribute
- * @mask: a bitmap identifying the lines to which the attribute applies,
- * with each bit number corresponding to the index into &struct
- * gpio_v2_line_request.offsets.
- */
-struct gpio_v2_line_config_attribute {
- struct gpio_v2_line_attribute attr;
- __aligned_u64 mask;
-};
-
-/**
- * struct gpio_v2_line_config - Configuration for GPIO lines
- * @flags: flags for the GPIO lines, with values from &enum
- * gpio_v2_line_flag, such as %GPIO_V2_LINE_FLAG_ACTIVE_LOW,
- * %GPIO_V2_LINE_FLAG_OUTPUT etc, added together. This is the default for
- * all requested lines but may be overridden for particular lines using
- * @attrs.
- * @num_attrs: the number of attributes in @attrs
- * @padding: reserved for future use and must be zero filled
- * @attrs: the configuration attributes associated with the requested
- * lines. Any attribute should only be associated with a particular line
- * once. If an attribute is associated with a line multiple times then the
- * first occurrence (i.e. lowest index) has precedence.
- */
-struct gpio_v2_line_config {
- __aligned_u64 flags;
- __u32 num_attrs;
- /* Pad to fill implicit padding and reserve space for future use. */
- __u32 padding[5];
- struct gpio_v2_line_config_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX];
-};
-
-/**
- * struct gpio_v2_line_request - Information about a request for GPIO lines
- * @offsets: an array of desired lines, specified by offset index for the
- * associated GPIO chip
- * @consumer: a desired consumer label for the selected GPIO lines such as
- * "my-bitbanged-relay"
- * @config: requested configuration for the lines.
- * @num_lines: number of lines requested in this request, i.e. the number
- * of valid fields in the %GPIO_V2_LINES_MAX sized arrays, set to 1 to
- * request a single line
- * @event_buffer_size: a suggested minimum number of line events that the
- * kernel should buffer. This is only relevant if edge detection is
- * enabled in the configuration. Note that this is only a suggested value
- * and the kernel may allocate a larger buffer or cap the size of the
- * buffer. If this field is zero then the buffer size defaults to a minimum
- * of @num_lines * 16.
- * @padding: reserved for future use and must be zero filled
- * @fd: if successful this field will contain a valid anonymous file handle
- * after a %GPIO_GET_LINE_IOCTL operation, zero or negative value means
- * error
- */
-struct gpio_v2_line_request {
- __u32 offsets[GPIO_V2_LINES_MAX];
- char consumer[GPIO_MAX_NAME_SIZE];
- struct gpio_v2_line_config config;
- __u32 num_lines;
- __u32 event_buffer_size;
- /* Pad to fill implicit padding and reserve space for future use. */
- __u32 padding[5];
- __s32 fd;
-};
-
-/**
- * struct gpio_v2_line_info - Information about a certain GPIO line
- * @name: the name of this GPIO line, such as the output pin of the line on
- * the chip, a rail or a pin header name on a board, as specified by the
- * GPIO chip, may be empty (i.e. name[0] == '\0')
- * @consumer: a functional name for the consumer of this GPIO line as set
- * by whatever is using it, will be empty if there is no current user but
- * may also be empty if the consumer doesn't set this up
- * @offset: the local offset on this GPIO chip, fill this in when
- * requesting the line information from the kernel
- * @num_attrs: the number of attributes in @attrs
- * @flags: flags for this GPIO line, with values from &enum
- * gpio_v2_line_flag, such as %GPIO_V2_LINE_FLAG_ACTIVE_LOW,
- * %GPIO_V2_LINE_FLAG_OUTPUT etc, added together.
- * @attrs: the configuration attributes associated with the line
- * @padding: reserved for future use
- */
-struct gpio_v2_line_info {
- char name[GPIO_MAX_NAME_SIZE];
- char consumer[GPIO_MAX_NAME_SIZE];
- __u32 offset;
- __u32 num_attrs;
- __aligned_u64 flags;
- struct gpio_v2_line_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX];
- /* Space reserved for future use. */
- __u32 padding[4];
-};
-
-/**
- * enum gpio_v2_line_changed_type - &struct gpio_v2_line_changed.event_type
- * values
- * @GPIO_V2_LINE_CHANGED_REQUESTED: line has been requested
- * @GPIO_V2_LINE_CHANGED_RELEASED: line has been released
- * @GPIO_V2_LINE_CHANGED_CONFIG: line has been reconfigured
- */
-enum gpio_v2_line_changed_type {
- GPIO_V2_LINE_CHANGED_REQUESTED = 1,
- GPIO_V2_LINE_CHANGED_RELEASED = 2,
- GPIO_V2_LINE_CHANGED_CONFIG = 3,
-};
-
-/**
- * struct gpio_v2_line_info_changed - Information about a change in status
- * of a GPIO line
- * @info: updated line information
- * @timestamp_ns: estimate of time of status change occurrence, in nanoseconds
- * @event_type: the type of change with a value from &enum
- * gpio_v2_line_changed_type
- * @padding: reserved for future use
- */
-struct gpio_v2_line_info_changed {
- struct gpio_v2_line_info info;
- __aligned_u64 timestamp_ns;
- __u32 event_type;
- /* Pad struct to 64-bit boundary and reserve space for future use. */
- __u32 padding[5];
-};
-
-/**
- * enum gpio_v2_line_event_id - &struct gpio_v2_line_event.id values
- * @GPIO_V2_LINE_EVENT_RISING_EDGE: event triggered by a rising edge
- * @GPIO_V2_LINE_EVENT_FALLING_EDGE: event triggered by a falling edge
- */
-enum gpio_v2_line_event_id {
- GPIO_V2_LINE_EVENT_RISING_EDGE = 1,
- GPIO_V2_LINE_EVENT_FALLING_EDGE = 2,
-};
-
-/**
- * struct gpio_v2_line_event - The actual event being pushed to userspace
- * @timestamp_ns: best estimate of time of event occurrence, in nanoseconds.
- * @id: event identifier with value from &enum gpio_v2_line_event_id
- * @offset: the offset of the line that triggered the event
- * @seqno: the sequence number for this event in the sequence of events for
- * all the lines in this line request
- * @line_seqno: the sequence number for this event in the sequence of
- * events on this particular line
- * @padding: reserved for future use
- *
- * By default the @timestamp_ns is read from %CLOCK_MONOTONIC and is
- * intended to allow the accurate measurement of the time between events.
- * It does not provide the wall-clock time.
- *
- * If the %GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME flag is set then the
- * @timestamp_ns is read from %CLOCK_REALTIME.
- */
-struct gpio_v2_line_event {
- __aligned_u64 timestamp_ns;
- __u32 id;
- __u32 offset;
- __u32 seqno;
- __u32 line_seqno;
- /* Space reserved for future use. */
- __u32 padding[6];
-};
-
-/*
- * ABI v1
- *
- * This version of the ABI is deprecated.
- * Use the latest version of the ABI, defined above, instead.
- */
-
/* Informational flags */
#define GPIOLINE_FLAG_KERNEL (1UL << 0) /* Line used by the kernel */
#define GPIOLINE_FLAG_IS_OUT (1UL << 1)
@@ -321,56 +44,21 @@ struct gpio_v2_line_event {
* @flags: various flags for this line
* @name: the name of this GPIO line, such as the output pin of the line on the
* chip, a rail or a pin header name on a board, as specified by the gpio
- * chip, may be empty (i.e. name[0] == '\0')
+ * chip, may be NULL
* @consumer: a functional name for the consumer of this GPIO line as set by
- * whatever is using it, will be empty if there is no current user but may
- * also be empty if the consumer doesn't set this up
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_info instead.
+ * whatever is using it, will be NULL if there is no current user but may
+ * also be NULL if the consumer doesn't set this up
*/
struct gpioline_info {
__u32 line_offset;
__u32 flags;
- char name[GPIO_MAX_NAME_SIZE];
- char consumer[GPIO_MAX_NAME_SIZE];
+ char name[32];
+ char consumer[32];
};
/* Maximum number of requested handles */
#define GPIOHANDLES_MAX 64
-/* Possible line status change events */
-enum {
- GPIOLINE_CHANGED_REQUESTED = 1,
- GPIOLINE_CHANGED_RELEASED,
- GPIOLINE_CHANGED_CONFIG,
-};
-
-/**
- * struct gpioline_info_changed - Information about a change in status
- * of a GPIO line
- * @info: updated line information
- * @timestamp: estimate of time of status change occurrence, in nanoseconds
- * @event_type: one of %GPIOLINE_CHANGED_REQUESTED,
- * %GPIOLINE_CHANGED_RELEASED and %GPIOLINE_CHANGED_CONFIG
- * @padding: reserved for future use
- *
- * The &struct gpioline_info embedded here has 32-bit alignment on its own,
- * but it works fine with 64-bit alignment too. With its 72 byte size, we can
- * guarantee there are no implicit holes between it and subsequent members.
- * The 20-byte padding at the end makes sure we don't add any implicit padding
- * at the end of the structure on 64-bit architectures.
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_info_changed instead.
- */
-struct gpioline_info_changed {
- struct gpioline_info info;
- __u64 timestamp;
- __u32 event_type;
- __u32 padding[5]; /* for future use */
-};
-
/* Linerequest flags */
#define GPIOHANDLE_REQUEST_INPUT (1UL << 0)
#define GPIOHANDLE_REQUEST_OUTPUT (1UL << 1)
@@ -386,13 +74,13 @@ struct gpioline_info_changed {
* @lineoffsets: an array of desired lines, specified by offset index for the
* associated GPIO device
* @flags: desired flags for the desired GPIO lines, such as
- * %GPIOHANDLE_REQUEST_OUTPUT, %GPIOHANDLE_REQUEST_ACTIVE_LOW etc, added
+ * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed
* together. Note that even if multiple lines are requested, the same flags
* must be applicable to all of them, if you want lines with individual
* flags set, request them one by one. It is possible to select
* a batch of input or output lines, but they must all have the same
* characteristics, i.e. all inputs or all outputs, all active low etc
- * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set for a requested
+ * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set for a requested
* line, this specifies the default output value, should be 0 (low) or
* 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
* @consumer_label: a desired consumer label for the selected GPIO line(s)
@@ -400,17 +88,14 @@ struct gpioline_info_changed {
* @lines: number of lines requested in this request, i.e. the number of
* valid fields in the above arrays, set to 1 to request a single line
* @fd: if successful this field will contain a valid anonymous file handle
- * after a %GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value
+ * after a GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value
* means error
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_request instead.
*/
struct gpiohandle_request {
__u32 lineoffsets[GPIOHANDLES_MAX];
__u32 flags;
__u8 default_values[GPIOHANDLES_MAX];
- char consumer_label[GPIO_MAX_NAME_SIZE];
+ char consumer_label[32];
__u32 lines;
int fd;
};
@@ -418,15 +103,12 @@ struct gpiohandle_request {
/**
* struct gpiohandle_config - Configuration for a GPIO handle request
* @flags: updated flags for the requested GPIO lines, such as
- * %GPIOHANDLE_REQUEST_OUTPUT, %GPIOHANDLE_REQUEST_ACTIVE_LOW etc, added
+ * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed
* together
- * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set in flags,
+ * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags,
* this specifies the default output value, should be 0 (low) or
* 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
* @padding: reserved for future use and should be zero filled
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_config instead.
*/
struct gpiohandle_config {
__u32 flags;
@@ -434,19 +116,21 @@ struct gpiohandle_config {
__u32 padding[4]; /* padding for future use */
};
+#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config)
+
/**
* struct gpiohandle_data - Information of values on a GPIO handle
* @values: when getting the state of lines this contains the current
* state of a line, when setting the state of lines these should contain
* the desired target state
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_values instead.
*/
struct gpiohandle_data {
__u8 values[GPIOHANDLES_MAX];
};
+#define GPIOHANDLE_GET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x08, struct gpiohandle_data)
+#define GPIOHANDLE_SET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x09, struct gpiohandle_data)
+
/* Eventrequest flags */
#define GPIOEVENT_REQUEST_RISING_EDGE (1UL << 0)
#define GPIOEVENT_REQUEST_FALLING_EDGE (1UL << 1)
@@ -457,27 +141,24 @@ struct gpiohandle_data {
* @lineoffset: the desired line to subscribe to events from, specified by
* offset index for the associated GPIO device
* @handleflags: desired handle flags for the desired GPIO line, such as
- * %GPIOHANDLE_REQUEST_ACTIVE_LOW or %GPIOHANDLE_REQUEST_OPEN_DRAIN
+ * GPIOHANDLE_REQUEST_ACTIVE_LOW or GPIOHANDLE_REQUEST_OPEN_DRAIN
* @eventflags: desired flags for the desired GPIO event line, such as
- * %GPIOEVENT_REQUEST_RISING_EDGE or %GPIOEVENT_REQUEST_FALLING_EDGE
+ * GPIOEVENT_REQUEST_RISING_EDGE or GPIOEVENT_REQUEST_FALLING_EDGE
* @consumer_label: a desired consumer label for the selected GPIO line(s)
* such as "my-listener"
* @fd: if successful this field will contain a valid anonymous file handle
- * after a %GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value
+ * after a GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value
* means error
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_request instead.
*/
struct gpioevent_request {
__u32 lineoffset;
__u32 handleflags;
__u32 eventflags;
- char consumer_label[GPIO_MAX_NAME_SIZE];
+ char consumer_label[32];
int fd;
};
-/*
+/**
* GPIO event types
*/
#define GPIOEVENT_EVENT_RISING_EDGE 0x01
@@ -487,42 +168,15 @@ struct gpioevent_request {
* struct gpioevent_data - The actual event being pushed to userspace
* @timestamp: best estimate of time of event occurrence, in nanoseconds
* @id: event identifier
- *
- * Note: This struct is part of ABI v1 and is deprecated.
- * Use &struct gpio_v2_line_event instead.
*/
struct gpioevent_data {
__u64 timestamp;
__u32 id;
};
-/*
- * v1 and v2 ioctl()s
- */
#define GPIO_GET_CHIPINFO_IOCTL _IOR(0xB4, 0x01, struct gpiochip_info)
-#define GPIO_GET_LINEINFO_UNWATCH_IOCTL _IOWR(0xB4, 0x0C, __u32)
-
-/*
- * v2 ioctl()s
- */
-#define GPIO_V2_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x05, struct gpio_v2_line_info)
-#define GPIO_V2_GET_LINEINFO_WATCH_IOCTL _IOWR(0xB4, 0x06, struct gpio_v2_line_info)
-#define GPIO_V2_GET_LINE_IOCTL _IOWR(0xB4, 0x07, struct gpio_v2_line_request)
-#define GPIO_V2_LINE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0D, struct gpio_v2_line_config)
-#define GPIO_V2_LINE_GET_VALUES_IOCTL _IOWR(0xB4, 0x0E, struct gpio_v2_line_values)
-#define GPIO_V2_LINE_SET_VALUES_IOCTL _IOWR(0xB4, 0x0F, struct gpio_v2_line_values)
-
-/*
- * v1 ioctl()s
- *
- * These ioctl()s are deprecated. Use the v2 equivalent instead.
- */
#define GPIO_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x02, struct gpioline_info)
#define GPIO_GET_LINEHANDLE_IOCTL _IOWR(0xB4, 0x03, struct gpiohandle_request)
#define GPIO_GET_LINEEVENT_IOCTL _IOWR(0xB4, 0x04, struct gpioevent_request)
-#define GPIOHANDLE_GET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x08, struct gpiohandle_data)
-#define GPIOHANDLE_SET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x09, struct gpiohandle_data)
-#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0A, struct gpiohandle_config)
-#define GPIO_GET_LINEINFO_WATCH_IOCTL _IOWR(0xB4, 0x0B, struct gpioline_info)
#endif /* _UAPI_GPIO_H_ */
diff --git a/original/uapi/linux/gtp.h b/original/uapi/linux/gtp.h
index 79f9191..c7d6675 100644
--- a/original/uapi/linux/gtp.h
+++ b/original/uapi/linux/gtp.h
@@ -2,8 +2,6 @@
#ifndef _UAPI_LINUX_GTP_H_
#define _UAPI_LINUX_GTP_H_
-#define GTP_GENL_MCGRP_NAME "gtp"
-
enum gtp_genl_cmds {
GTP_CMD_NEWPDP,
GTP_CMD_DELPDP,
diff --git a/original/uapi/linux/hdlc/ioctl.h b/original/uapi/linux/hdlc/ioctl.h
index b06341a..0fe4238 100644
--- a/original/uapi/linux/hdlc/ioctl.h
+++ b/original/uapi/linux/hdlc/ioctl.h
@@ -79,15 +79,6 @@ typedef struct {
unsigned int timeout;
} cisco_proto;
-typedef struct {
- unsigned short dce; /* 1 for DCE (network side) operation */
- unsigned int modulo; /* modulo (8 = basic / 128 = extended) */
- unsigned int window; /* frame window size */
- unsigned int t1; /* timeout t1 */
- unsigned int t2; /* timeout t2 */
- unsigned int n2; /* frame retry counter */
-} x25_hdlc_proto;
-
/* PPP doesn't need any info now - supply length = 0 to ioctl */
#endif /* __ASSEMBLY__ */
diff --git a/original/uapi/linux/hidraw.h b/original/uapi/linux/hidraw.h
index 33ebad8..98e2c49 100644
--- a/original/uapi/linux/hidraw.h
+++ b/original/uapi/linux/hidraw.h
@@ -39,13 +39,6 @@ struct hidraw_devinfo {
/* The first byte of SFEATURE and GFEATURE is the report number */
#define HIDIOCSFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len)
#define HIDIOCGFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len)
-#define HIDIOCGRAWUNIQ(len) _IOC(_IOC_READ, 'H', 0x08, len)
-/* The first byte of SINPUT and GINPUT is the report number */
-#define HIDIOCSINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x09, len)
-#define HIDIOCGINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0A, len)
-/* The first byte of SOUTPUT and GOUTPUT is the report number */
-#define HIDIOCSOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0B, len)
-#define HIDIOCGOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0C, len)
#define HIDRAW_FIRST_MINOR 0
#define HIDRAW_MAX_DEVICES 64
diff --git a/original/uapi/linux/hsr_netlink.h b/original/uapi/linux/hsr_netlink.h
index d540ea9..c218ef9 100644
--- a/original/uapi/linux/hsr_netlink.h
+++ b/original/uapi/linux/hsr_netlink.h
@@ -17,7 +17,7 @@
/* Generic Netlink HSR family definition
*/
-/* attributes for HSR or PRP node */
+/* attributes */
enum {
HSR_A_UNSPEC,
HSR_A_NODE_ADDR,
diff --git a/original/uapi/linux/hyperv.h b/original/uapi/linux/hyperv.h
index 6135d92..991b2b7 100644
--- a/original/uapi/linux/hyperv.h
+++ b/original/uapi/linux/hyperv.h
@@ -119,8 +119,8 @@ enum hv_fcopy_op {
struct hv_fcopy_hdr {
__u32 operation;
- __u8 service_id0[16]; /* currently unused */
- __u8 service_id1[16]; /* currently unused */
+ uuid_le service_id0; /* currently unused */
+ uuid_le service_id1; /* currently unused */
} __attribute__((packed));
#define OVER_WRITE 0x1
@@ -219,7 +219,7 @@ struct hv_do_fcopy {
* kernel and user-level daemon communicate using a connector channel.
*
* The user mode component first registers with the
- * kernel component. Subsequently, the kernel component requests, data
+ * the kernel component. Subsequently, the kernel component requests, data
* for the specified keys. In response to this message the user mode component
* fills in the value corresponding to the specified key. We overload the
* sequence field in the cn_msg header to define our KVP message types.
diff --git a/original/uapi/linux/hysdn_if.h b/original/uapi/linux/hysdn_if.h
new file mode 100644
index 0000000..99f77c5
--- /dev/null
+++ b/original/uapi/linux/hysdn_if.h
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* $Id: hysdn_if.h,v 1.1.8.3 2001/09/23 22:25:05 kai Exp $
+ *
+ * Linux driver for HYSDN cards
+ * ioctl definitions shared by hynetmgr and driver.
+ *
+ * Author Werner Cornelius (werner@titro.de) for Hypercope GmbH
+ * Copyright 1999 by Werner Cornelius (werner@titro.de)
+ *
+ * This software may be used and distributed according to the terms
+ * of the GNU General Public License, incorporated herein by reference.
+ *
+ */
+
+/****************/
+/* error values */
+/****************/
+#define ERR_NONE 0 /* no error occurred */
+#define ERR_ALREADY_BOOT 1000 /* we are already booting */
+#define EPOF_BAD_MAGIC 1001 /* bad magic in POF header */
+#define ERR_BOARD_DPRAM 1002 /* board DPRAM failed */
+#define EPOF_INTERNAL 1003 /* internal POF handler error */
+#define EPOF_BAD_IMG_SIZE 1004 /* POF boot image size invalid */
+#define ERR_BOOTIMG_FAIL 1005 /* 1. stage boot image did not start */
+#define ERR_BOOTSEQ_FAIL 1006 /* 2. stage boot seq handshake timeout */
+#define ERR_POF_TIMEOUT 1007 /* timeout waiting for card pof ready */
+#define ERR_NOT_BOOTED 1008 /* operation only allowed when booted */
+#define ERR_CONF_LONG 1009 /* conf line is too long */
+#define ERR_INV_CHAN 1010 /* invalid channel number */
+#define ERR_ASYNC_TIME 1011 /* timeout sending async data */
+
+
+
+
diff --git a/original/uapi/linux/i2c-dev.h b/original/uapi/linux/i2c-dev.h
index 1c4cec4..85f8047 100644
--- a/original/uapi/linux/i2c-dev.h
+++ b/original/uapi/linux/i2c-dev.h
@@ -1,10 +1,25 @@
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
- * i2c-dev.h - I2C bus char device interface
- *
- * Copyright (C) 1995-97 Simon G. Vogl
- * Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl>
- */
+ i2c-dev.h - i2c-bus driver, char device interface
+
+ Copyright (C) 1995-97 Simon G. Vogl
+ Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301 USA.
+*/
#ifndef _UAPI_LINUX_I2C_DEV_H
#define _UAPI_LINUX_I2C_DEV_H
diff --git a/original/uapi/linux/i2c.h b/original/uapi/linux/i2c.h
index 92326eb..f71a175 100644
--- a/original/uapi/linux/i2c.h
+++ b/original/uapi/linux/i2c.h
@@ -1,11 +1,29 @@
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * i2c.h - definitions for the I2C bus interface
- *
- * Copyright (C) 1995-2000 Simon G. Vogl
- * With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and
- * Frodo Looijaard <frodol@dds.nl>
- */
+/* ------------------------------------------------------------------------- */
+/* */
+/* i2c.h - definitions for the i2c-bus interface */
+/* */
+/* ------------------------------------------------------------------------- */
+/* Copyright (C) 1995-2000 Simon G. Vogl
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301 USA. */
+/* ------------------------------------------------------------------------- */
+
+/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and
+ Frodo Looijaard <frodol@dds.nl> */
#ifndef _UAPI_LINUX_I2C_H
#define _UAPI_LINUX_I2C_H
@@ -14,41 +32,18 @@
/**
* struct i2c_msg - an I2C transaction segment beginning with START
- *
- * @addr: Slave address, either 7 or 10 bits. When this is a 10 bit address,
- * %I2C_M_TEN must be set in @flags and the adapter must support
- * %I2C_FUNC_10BIT_ADDR.
- *
- * @flags:
- * Supported by all adapters:
- * %I2C_M_RD: read data (from slave to master). Guaranteed to be 0x0001!
- *
- * Optional:
- * %I2C_M_DMA_SAFE: the buffer of this message is DMA safe. Makes only sense
- * in kernelspace, because userspace buffers are copied anyway
- *
- * Only if I2C_FUNC_10BIT_ADDR is set:
- * %I2C_M_TEN: this is a 10 bit chip address
- *
- * Only if I2C_FUNC_SMBUS_READ_BLOCK_DATA is set:
- * %I2C_M_RECV_LEN: message length will be first received byte
- *
- * Only if I2C_FUNC_NOSTART is set:
- * %I2C_M_NOSTART: skip repeated start sequence
-
- * Only if I2C_FUNC_PROTOCOL_MANGLING is set:
- * %I2C_M_NO_RD_ACK: in a read message, master ACK/NACK bit is skipped
- * %I2C_M_IGNORE_NAK: treat NACK from client as ACK
- * %I2C_M_REV_DIR_ADDR: toggles the Rd/Wr bit
- * %I2C_M_STOP: force a STOP condition after the message
- *
- * @len: Number of data bytes in @buf being read from or written to the I2C
- * slave address. For read transactions where %I2C_M_RECV_LEN is set, the
- * caller guarantees that this buffer can hold up to %I2C_SMBUS_BLOCK_MAX
- * bytes in addition to the initial length byte sent by the slave (plus,
- * if used, the SMBus PEC); and this value will be incremented by the number
- * of block data bytes received.
- *
+ * @addr: Slave address, either seven or ten bits. When this is a ten
+ * bit address, I2C_M_TEN must be set in @flags and the adapter
+ * must support I2C_FUNC_10BIT_ADDR.
+ * @flags: I2C_M_RD is handled by all adapters. No other flags may be
+ * provided unless the adapter exported the relevant I2C_FUNC_*
+ * flags through i2c_check_functionality().
+ * @len: Number of data bytes in @buf being read from or written to the
+ * I2C slave address. For read transactions where I2C_M_RECV_LEN
+ * is set, the caller guarantees that this buffer can hold up to
+ * 32 bytes in addition to the initial length byte sent by the
+ * slave (plus, if used, the SMBus PEC); and this value will be
+ * incremented by the number of block data bytes received.
* @buf: The buffer into which data is read, or from which it's written.
*
* An i2c_msg is the low level representation of one segment of an I2C
@@ -65,36 +60,40 @@
* group, it is followed by a STOP. Otherwise it is followed by the next
* @i2c_msg transaction segment, beginning with a (repeated) START.
*
- * Alternatively, when the adapter supports %I2C_FUNC_PROTOCOL_MANGLING then
+ * Alternatively, when the adapter supports I2C_FUNC_PROTOCOL_MANGLING then
* passing certain @flags may have changed those standard protocol behaviors.
* Those flags are only for use with broken/nonconforming slaves, and with
- * adapters which are known to support the specific mangling options they need.
+ * adapters which are known to support the specific mangling options they
+ * need (one or more of IGNORE_NAK, NO_RD_ACK, NOSTART, and REV_DIR_ADDR).
*/
struct i2c_msg {
- __u16 addr;
+ __u16 addr; /* slave address */
__u16 flags;
-#define I2C_M_RD 0x0001 /* guaranteed to be 0x0001! */
-#define I2C_M_TEN 0x0010 /* use only if I2C_FUNC_10BIT_ADDR */
-#define I2C_M_DMA_SAFE 0x0200 /* use only in kernel space */
-#define I2C_M_RECV_LEN 0x0400 /* use only if I2C_FUNC_SMBUS_READ_BLOCK_DATA */
-#define I2C_M_NO_RD_ACK 0x0800 /* use only if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_IGNORE_NAK 0x1000 /* use only if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_REV_DIR_ADDR 0x2000 /* use only if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_NOSTART 0x4000 /* use only if I2C_FUNC_NOSTART */
-#define I2C_M_STOP 0x8000 /* use only if I2C_FUNC_PROTOCOL_MANGLING */
- __u16 len;
- __u8 *buf;
+#define I2C_M_RD 0x0001 /* read data, from slave to master */
+ /* I2C_M_RD is guaranteed to be 0x0001! */
+#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */
+#define I2C_M_DMA_SAFE 0x0200 /* the buffer of this message is DMA safe */
+ /* makes only sense in kernelspace */
+ /* userspace buffers are copied anyway */
+#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */
+#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */
+#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */
+#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */
+#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_NOSTART */
+#define I2C_M_STOP 0x8000 /* if I2C_FUNC_PROTOCOL_MANGLING */
+ __u16 len; /* msg length */
+ __u8 *buf; /* pointer to msg data */
};
/* To determine what functionality is present */
#define I2C_FUNC_I2C 0x00000001
-#define I2C_FUNC_10BIT_ADDR 0x00000002 /* required for I2C_M_TEN */
-#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* required for I2C_M_IGNORE_NAK etc. */
+#define I2C_FUNC_10BIT_ADDR 0x00000002
+#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_IGNORE_NAK etc. */
#define I2C_FUNC_SMBUS_PEC 0x00000008
-#define I2C_FUNC_NOSTART 0x00000010 /* required for I2C_M_NOSTART */
+#define I2C_FUNC_NOSTART 0x00000010 /* I2C_M_NOSTART */
#define I2C_FUNC_SLAVE 0x00000020
-#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 or later */
+#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */
#define I2C_FUNC_SMBUS_QUICK 0x00010000
#define I2C_FUNC_SMBUS_READ_BYTE 0x00020000
#define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000
@@ -103,11 +102,11 @@ struct i2c_msg {
#define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000
#define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000
#define I2C_FUNC_SMBUS_PROC_CALL 0x00800000
-#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000 /* required for I2C_M_RECV_LEN */
+#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000
#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000
#define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000 /* I2C-like block xfer */
#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */
-#define I2C_FUNC_SMBUS_HOST_NOTIFY 0x10000000 /* SMBus 2.0 or later */
+#define I2C_FUNC_SMBUS_HOST_NOTIFY 0x10000000
#define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \
I2C_FUNC_SMBUS_WRITE_BYTE)
@@ -129,11 +128,6 @@ struct i2c_msg {
I2C_FUNC_SMBUS_I2C_BLOCK | \
I2C_FUNC_SMBUS_PEC)
-/* if I2C_M_RECV_LEN is also supported */
-#define I2C_FUNC_SMBUS_EMUL_ALL (I2C_FUNC_SMBUS_EMUL | \
- I2C_FUNC_SMBUS_READ_BLOCK_DATA | \
- I2C_FUNC_SMBUS_BLOCK_PROC_CALL)
-
/*
* Data for SMBus Messages
*/
diff --git a/original/uapi/linux/icmp.h b/original/uapi/linux/icmp.h
index fb169a5..5589eeb 100644
--- a/original/uapi/linux/icmp.h
+++ b/original/uapi/linux/icmp.h
@@ -19,7 +19,6 @@
#define _UAPI_LINUX_ICMP_H
#include <linux/types.h>
-#include <asm/byteorder.h>
#define ICMP_ECHOREPLY 0 /* Echo Reply */
#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
@@ -96,26 +95,5 @@ struct icmp_filter {
__u32 data;
};
-/* RFC 4884 extension struct: one per message */
-struct icmp_ext_hdr {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 reserved1:4,
- version:4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 version:4,
- reserved1:4;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 reserved2;
- __sum16 checksum;
-};
-
-/* RFC 4884 extension object header: one for each object */
-struct icmp_extobj_hdr {
- __be16 length;
- __u8 class_num;
- __u8 class_type;
-};
#endif /* _UAPI_LINUX_ICMP_H */
diff --git a/original/uapi/linux/icmpv6.h b/original/uapi/linux/icmpv6.h
index 0564fd7..2622b5a 100644
--- a/original/uapi/linux/icmpv6.h
+++ b/original/uapi/linux/icmpv6.h
@@ -68,7 +68,6 @@ struct icmp6hdr {
#define icmp6_mtu icmp6_dataun.un_data32[0]
#define icmp6_unused icmp6_dataun.un_data32[0]
#define icmp6_maxdelay icmp6_dataun.un_data16[0]
-#define icmp6_datagram_len icmp6_dataun.un_data8[0]
#define icmp6_router icmp6_dataun.u_nd_advt.router
#define icmp6_solicited icmp6_dataun.u_nd_advt.solicited
#define icmp6_override icmp6_dataun.u_nd_advt.override
@@ -138,7 +137,6 @@ struct icmp6hdr {
#define ICMPV6_HDR_FIELD 0
#define ICMPV6_UNK_NEXTHDR 1
#define ICMPV6_UNK_OPTION 2
-#define ICMPV6_HDR_INCOMP 3
/*
* constants for (set|get)sockopt
diff --git a/original/uapi/linux/idxd.h b/original/uapi/linux/idxd.h
deleted file mode 100644
index e33997b..0000000
--- a/original/uapi/linux/idxd.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/* Copyright(c) 2019 Intel Corporation. All rights rsvd. */
-#ifndef _USR_IDXD_H_
-#define _USR_IDXD_H_
-
-#ifdef __KERNEL__
-#include <linux/types.h>
-#else
-#include <stdint.h>
-#endif
-
-/* Descriptor flags */
-#define IDXD_OP_FLAG_FENCE 0x0001
-#define IDXD_OP_FLAG_BOF 0x0002
-#define IDXD_OP_FLAG_CRAV 0x0004
-#define IDXD_OP_FLAG_RCR 0x0008
-#define IDXD_OP_FLAG_RCI 0x0010
-#define IDXD_OP_FLAG_CRSTS 0x0020
-#define IDXD_OP_FLAG_CR 0x0080
-#define IDXD_OP_FLAG_CC 0x0100
-#define IDXD_OP_FLAG_ADDR1_TCS 0x0200
-#define IDXD_OP_FLAG_ADDR2_TCS 0x0400
-#define IDXD_OP_FLAG_ADDR3_TCS 0x0800
-#define IDXD_OP_FLAG_CR_TCS 0x1000
-#define IDXD_OP_FLAG_STORD 0x2000
-#define IDXD_OP_FLAG_DRDBK 0x4000
-#define IDXD_OP_FLAG_DSTS 0x8000
-
-/* IAX */
-#define IDXD_OP_FLAG_RD_SRC2_AECS 0x010000
-
-/* Opcode */
-enum dsa_opcode {
- DSA_OPCODE_NOOP = 0,
- DSA_OPCODE_BATCH,
- DSA_OPCODE_DRAIN,
- DSA_OPCODE_MEMMOVE,
- DSA_OPCODE_MEMFILL,
- DSA_OPCODE_COMPARE,
- DSA_OPCODE_COMPVAL,
- DSA_OPCODE_CR_DELTA,
- DSA_OPCODE_AP_DELTA,
- DSA_OPCODE_DUALCAST,
- DSA_OPCODE_CRCGEN = 0x10,
- DSA_OPCODE_COPY_CRC,
- DSA_OPCODE_DIF_CHECK,
- DSA_OPCODE_DIF_INS,
- DSA_OPCODE_DIF_STRP,
- DSA_OPCODE_DIF_UPDT,
- DSA_OPCODE_CFLUSH = 0x20,
-};
-
-enum iax_opcode {
- IAX_OPCODE_NOOP = 0,
- IAX_OPCODE_DRAIN = 2,
- IAX_OPCODE_MEMMOVE,
- IAX_OPCODE_DECOMPRESS = 0x42,
- IAX_OPCODE_COMPRESS,
-};
-
-/* Completion record status */
-enum dsa_completion_status {
- DSA_COMP_NONE = 0,
- DSA_COMP_SUCCESS,
- DSA_COMP_SUCCESS_PRED,
- DSA_COMP_PAGE_FAULT_NOBOF,
- DSA_COMP_PAGE_FAULT_IR,
- DSA_COMP_BATCH_FAIL,
- DSA_COMP_BATCH_PAGE_FAULT,
- DSA_COMP_DR_OFFSET_NOINC,
- DSA_COMP_DR_OFFSET_ERANGE,
- DSA_COMP_DIF_ERR,
- DSA_COMP_BAD_OPCODE = 0x10,
- DSA_COMP_INVALID_FLAGS,
- DSA_COMP_NOZERO_RESERVE,
- DSA_COMP_XFER_ERANGE,
- DSA_COMP_DESC_CNT_ERANGE,
- DSA_COMP_DR_ERANGE,
- DSA_COMP_OVERLAP_BUFFERS,
- DSA_COMP_DCAST_ERR,
- DSA_COMP_DESCLIST_ALIGN,
- DSA_COMP_INT_HANDLE_INVAL,
- DSA_COMP_CRA_XLAT,
- DSA_COMP_CRA_ALIGN,
- DSA_COMP_ADDR_ALIGN,
- DSA_COMP_PRIV_BAD,
- DSA_COMP_TRAFFIC_CLASS_CONF,
- DSA_COMP_PFAULT_RDBA,
- DSA_COMP_HW_ERR1,
- DSA_COMP_HW_ERR_DRB,
- DSA_COMP_TRANSLATION_FAIL,
-};
-
-enum iax_completion_status {
- IAX_COMP_NONE = 0,
- IAX_COMP_SUCCESS,
- IAX_COMP_PAGE_FAULT_IR = 0x04,
- IAX_COMP_OUTBUF_OVERFLOW,
- IAX_COMP_BAD_OPCODE = 0x10,
- IAX_COMP_INVALID_FLAGS,
- IAX_COMP_NOZERO_RESERVE,
- IAX_COMP_INVALID_SIZE,
- IAX_COMP_OVERLAP_BUFFERS = 0x16,
- IAX_COMP_INT_HANDLE_INVAL = 0x19,
- IAX_COMP_CRA_XLAT,
- IAX_COMP_CRA_ALIGN,
- IAX_COMP_ADDR_ALIGN,
- IAX_COMP_PRIV_BAD,
- IAX_COMP_TRAFFIC_CLASS_CONF,
- IAX_COMP_PFAULT_RDBA,
- IAX_COMP_HW_ERR1,
- IAX_COMP_HW_ERR_DRB,
- IAX_COMP_TRANSLATION_FAIL,
- IAX_COMP_PRS_TIMEOUT,
- IAX_COMP_WATCHDOG,
- IAX_COMP_INVALID_COMP_FLAG = 0x30,
- IAX_COMP_INVALID_FILTER_FLAG,
- IAX_COMP_INVALID_NUM_ELEMS = 0x33,
-};
-
-#define DSA_COMP_STATUS_MASK 0x7f
-#define DSA_COMP_STATUS_WRITE 0x80
-
-struct dsa_hw_desc {
- uint32_t pasid:20;
- uint32_t rsvd:11;
- uint32_t priv:1;
- uint32_t flags:24;
- uint32_t opcode:8;
- uint64_t completion_addr;
- union {
- uint64_t src_addr;
- uint64_t rdback_addr;
- uint64_t pattern;
- uint64_t desc_list_addr;
- };
- union {
- uint64_t dst_addr;
- uint64_t rdback_addr2;
- uint64_t src2_addr;
- uint64_t comp_pattern;
- };
- union {
- uint32_t xfer_size;
- uint32_t desc_count;
- };
- uint16_t int_handle;
- uint16_t rsvd1;
- union {
- uint8_t expected_res;
- /* create delta record */
- struct {
- uint64_t delta_addr;
- uint32_t max_delta_size;
- uint32_t delt_rsvd;
- uint8_t expected_res_mask;
- };
- uint32_t delta_rec_size;
- uint64_t dest2;
- /* CRC */
- struct {
- uint32_t crc_seed;
- uint32_t crc_rsvd;
- uint64_t seed_addr;
- };
- /* DIF check or strip */
- struct {
- uint8_t src_dif_flags;
- uint8_t dif_chk_res;
- uint8_t dif_chk_flags;
- uint8_t dif_chk_res2[5];
- uint32_t chk_ref_tag_seed;
- uint16_t chk_app_tag_mask;
- uint16_t chk_app_tag_seed;
- };
- /* DIF insert */
- struct {
- uint8_t dif_ins_res;
- uint8_t dest_dif_flag;
- uint8_t dif_ins_flags;
- uint8_t dif_ins_res2[13];
- uint32_t ins_ref_tag_seed;
- uint16_t ins_app_tag_mask;
- uint16_t ins_app_tag_seed;
- };
- /* DIF update */
- struct {
- uint8_t src_upd_flags;
- uint8_t upd_dest_flags;
- uint8_t dif_upd_flags;
- uint8_t dif_upd_res[5];
- uint32_t src_ref_tag_seed;
- uint16_t src_app_tag_mask;
- uint16_t src_app_tag_seed;
- uint32_t dest_ref_tag_seed;
- uint16_t dest_app_tag_mask;
- uint16_t dest_app_tag_seed;
- };
-
- uint8_t op_specific[24];
- };
-} __attribute__((packed));
-
-struct iax_hw_desc {
- uint32_t pasid:20;
- uint32_t rsvd:11;
- uint32_t priv:1;
- uint32_t flags:24;
- uint32_t opcode:8;
- uint64_t completion_addr;
- uint64_t src1_addr;
- uint64_t dst_addr;
- uint32_t src1_size;
- uint16_t int_handle;
- union {
- uint16_t compr_flags;
- uint16_t decompr_flags;
- };
- uint64_t src2_addr;
- uint32_t max_dst_size;
- uint32_t src2_size;
- uint32_t filter_flags;
- uint32_t num_inputs;
-} __attribute__((packed));
-
-struct dsa_raw_desc {
- uint64_t field[8];
-} __attribute__((packed));
-
-/*
- * The status field will be modified by hardware, therefore it should be
- * volatile and prevent the compiler from optimize the read.
- */
-struct dsa_completion_record {
- volatile uint8_t status;
- union {
- uint8_t result;
- uint8_t dif_status;
- };
- uint16_t rsvd;
- uint32_t bytes_completed;
- uint64_t fault_addr;
- union {
- /* common record */
- struct {
- uint32_t invalid_flags:24;
- uint32_t rsvd2:8;
- };
-
- uint32_t delta_rec_size;
- uint32_t crc_val;
-
- /* DIF check & strip */
- struct {
- uint32_t dif_chk_ref_tag;
- uint16_t dif_chk_app_tag_mask;
- uint16_t dif_chk_app_tag;
- };
-
- /* DIF insert */
- struct {
- uint64_t dif_ins_res;
- uint32_t dif_ins_ref_tag;
- uint16_t dif_ins_app_tag_mask;
- uint16_t dif_ins_app_tag;
- };
-
- /* DIF update */
- struct {
- uint32_t dif_upd_src_ref_tag;
- uint16_t dif_upd_src_app_tag_mask;
- uint16_t dif_upd_src_app_tag;
- uint32_t dif_upd_dest_ref_tag;
- uint16_t dif_upd_dest_app_tag_mask;
- uint16_t dif_upd_dest_app_tag;
- };
-
- uint8_t op_specific[16];
- };
-} __attribute__((packed));
-
-struct dsa_raw_completion_record {
- uint64_t field[4];
-} __attribute__((packed));
-
-struct iax_completion_record {
- volatile uint8_t status;
- uint8_t error_code;
- uint16_t rsvd;
- uint32_t bytes_completed;
- uint64_t fault_addr;
- uint32_t invalid_flags;
- uint32_t rsvd2;
- uint32_t output_size;
- uint8_t output_bits;
- uint8_t rsvd3;
- uint16_t rsvd4;
- uint64_t rsvd5[4];
-} __attribute__((packed));
-
-struct iax_raw_completion_record {
- uint64_t field[8];
-} __attribute__((packed));
-
-#endif
diff --git a/original/uapi/linux/if.h b/original/uapi/linux/if.h
index 797ba2c..4bf3334 100644
--- a/original/uapi/linux/if.h
+++ b/original/uapi/linux/if.h
@@ -178,7 +178,6 @@ enum {
enum {
IF_LINK_MODE_DEFAULT,
IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */
- IF_LINK_MODE_TESTING, /* limit upward transition to testing */
};
/*
@@ -214,7 +213,6 @@ struct if_settings {
fr_proto __user *fr;
fr_proto_pvc __user *fr_pvc;
fr_proto_pvc_info __user *fr_pvc_info;
- x25_hdlc_proto __user *x25;
/* interface settings */
sync_serial_settings __user *sync;
diff --git a/original/uapi/linux/if_alg.h b/original/uapi/linux/if_alg.h
index dc52a11..bc2bcde 100644
--- a/original/uapi/linux/if_alg.h
+++ b/original/uapi/linux/if_alg.h
@@ -24,22 +24,6 @@ struct sockaddr_alg {
__u8 salg_name[64];
};
-/*
- * Linux v4.12 and later removed the 64-byte limit on salg_name[]; it's now an
- * arbitrary-length field. We had to keep the original struct above for source
- * compatibility with existing userspace programs, though. Use the new struct
- * below if support for very long algorithm names is needed. To do this,
- * allocate 'sizeof(struct sockaddr_alg_new) + strlen(algname) + 1' bytes, and
- * copy algname (including the null terminator) into salg_name.
- */
-struct sockaddr_alg_new {
- __u16 salg_family;
- __u8 salg_type[14];
- __u32 salg_feat;
- __u32 salg_mask;
- __u8 salg_name[];
-};
-
struct af_alg_iv {
__u32 ivlen;
__u8 iv[0];
@@ -51,7 +35,6 @@ struct af_alg_iv {
#define ALG_SET_OP 3
#define ALG_SET_AEAD_ASSOCLEN 4
#define ALG_SET_AEAD_AUTHSIZE 5
-#define ALG_SET_DRBG_ENTROPY 6
/* Operations */
#define ALG_OP_DECRYPT 0
diff --git a/original/uapi/linux/if_bonding.h b/original/uapi/linux/if_bonding.h
index e8eb4ad..790585f 100644
--- a/original/uapi/linux/if_bonding.h
+++ b/original/uapi/linux/if_bonding.h
@@ -94,17 +94,6 @@
#define BOND_XMIT_POLICY_LAYER23 2 /* layer 2+3 (IP ^ MAC) */
#define BOND_XMIT_POLICY_ENCAP23 3 /* encapsulated layer 2+3 */
#define BOND_XMIT_POLICY_ENCAP34 4 /* encapsulated layer 3+4 */
-#define BOND_XMIT_POLICY_VLAN_SRCMAC 5 /* vlan + source MAC */
-
-/* 802.3ad port state definitions (43.4.2.2 in the 802.3ad standard) */
-#define LACP_STATE_LACP_ACTIVITY 0x1
-#define LACP_STATE_LACP_TIMEOUT 0x2
-#define LACP_STATE_AGGREGATION 0x4
-#define LACP_STATE_SYNCHRONIZATION 0x8
-#define LACP_STATE_COLLECTING 0x10
-#define LACP_STATE_DISTRIBUTING 0x20
-#define LACP_STATE_DEFAULTED 0x40
-#define LACP_STATE_EXPIRED 0x80
typedef struct ifbond {
__s32 bond_mode;
diff --git a/original/uapi/linux/if_bridge.h b/original/uapi/linux/if_bridge.h
index 13d59c5..1b3c2b6 100644
--- a/original/uapi/linux/if_bridge.h
+++ b/original/uapi/linux/if_bridge.h
@@ -120,8 +120,6 @@ enum {
IFLA_BRIDGE_MODE,
IFLA_BRIDGE_VLAN_INFO,
IFLA_BRIDGE_VLAN_TUNNEL_INFO,
- IFLA_BRIDGE_MRP,
- IFLA_BRIDGE_CFM,
__IFLA_BRIDGE_MAX,
};
#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
@@ -132,7 +130,6 @@ enum {
#define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */
#define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */
#define BRIDGE_VLAN_INFO_BRENTRY (1<<5) /* Global bridge VLAN entry */
-#define BRIDGE_VLAN_INFO_ONLY_OPTS (1<<6) /* Skip create/delete/flags */
struct bridge_vlan_info {
__u16 flags;
@@ -159,385 +156,6 @@ struct bridge_vlan_xstats {
__u32 pad2;
};
-enum {
- IFLA_BRIDGE_MRP_UNSPEC,
- IFLA_BRIDGE_MRP_INSTANCE,
- IFLA_BRIDGE_MRP_PORT_STATE,
- IFLA_BRIDGE_MRP_PORT_ROLE,
- IFLA_BRIDGE_MRP_RING_STATE,
- IFLA_BRIDGE_MRP_RING_ROLE,
- IFLA_BRIDGE_MRP_START_TEST,
- IFLA_BRIDGE_MRP_INFO,
- IFLA_BRIDGE_MRP_IN_ROLE,
- IFLA_BRIDGE_MRP_IN_STATE,
- IFLA_BRIDGE_MRP_START_IN_TEST,
- __IFLA_BRIDGE_MRP_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_MAX (__IFLA_BRIDGE_MRP_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_INSTANCE_UNSPEC,
- IFLA_BRIDGE_MRP_INSTANCE_RING_ID,
- IFLA_BRIDGE_MRP_INSTANCE_P_IFINDEX,
- IFLA_BRIDGE_MRP_INSTANCE_S_IFINDEX,
- IFLA_BRIDGE_MRP_INSTANCE_PRIO,
- __IFLA_BRIDGE_MRP_INSTANCE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_INSTANCE_MAX (__IFLA_BRIDGE_MRP_INSTANCE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_PORT_STATE_UNSPEC,
- IFLA_BRIDGE_MRP_PORT_STATE_STATE,
- __IFLA_BRIDGE_MRP_PORT_STATE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_PORT_STATE_MAX (__IFLA_BRIDGE_MRP_PORT_STATE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_PORT_ROLE_UNSPEC,
- IFLA_BRIDGE_MRP_PORT_ROLE_ROLE,
- __IFLA_BRIDGE_MRP_PORT_ROLE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_PORT_ROLE_MAX (__IFLA_BRIDGE_MRP_PORT_ROLE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_RING_STATE_UNSPEC,
- IFLA_BRIDGE_MRP_RING_STATE_RING_ID,
- IFLA_BRIDGE_MRP_RING_STATE_STATE,
- __IFLA_BRIDGE_MRP_RING_STATE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_RING_STATE_MAX (__IFLA_BRIDGE_MRP_RING_STATE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_RING_ROLE_UNSPEC,
- IFLA_BRIDGE_MRP_RING_ROLE_RING_ID,
- IFLA_BRIDGE_MRP_RING_ROLE_ROLE,
- __IFLA_BRIDGE_MRP_RING_ROLE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_RING_ROLE_MAX (__IFLA_BRIDGE_MRP_RING_ROLE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_START_TEST_UNSPEC,
- IFLA_BRIDGE_MRP_START_TEST_RING_ID,
- IFLA_BRIDGE_MRP_START_TEST_INTERVAL,
- IFLA_BRIDGE_MRP_START_TEST_MAX_MISS,
- IFLA_BRIDGE_MRP_START_TEST_PERIOD,
- IFLA_BRIDGE_MRP_START_TEST_MONITOR,
- __IFLA_BRIDGE_MRP_START_TEST_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_INFO_UNSPEC,
- IFLA_BRIDGE_MRP_INFO_RING_ID,
- IFLA_BRIDGE_MRP_INFO_P_IFINDEX,
- IFLA_BRIDGE_MRP_INFO_S_IFINDEX,
- IFLA_BRIDGE_MRP_INFO_PRIO,
- IFLA_BRIDGE_MRP_INFO_RING_STATE,
- IFLA_BRIDGE_MRP_INFO_RING_ROLE,
- IFLA_BRIDGE_MRP_INFO_TEST_INTERVAL,
- IFLA_BRIDGE_MRP_INFO_TEST_MAX_MISS,
- IFLA_BRIDGE_MRP_INFO_TEST_MONITOR,
- IFLA_BRIDGE_MRP_INFO_I_IFINDEX,
- IFLA_BRIDGE_MRP_INFO_IN_STATE,
- IFLA_BRIDGE_MRP_INFO_IN_ROLE,
- IFLA_BRIDGE_MRP_INFO_IN_TEST_INTERVAL,
- IFLA_BRIDGE_MRP_INFO_IN_TEST_MAX_MISS,
- __IFLA_BRIDGE_MRP_INFO_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_INFO_MAX (__IFLA_BRIDGE_MRP_INFO_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_IN_STATE_UNSPEC,
- IFLA_BRIDGE_MRP_IN_STATE_IN_ID,
- IFLA_BRIDGE_MRP_IN_STATE_STATE,
- __IFLA_BRIDGE_MRP_IN_STATE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_IN_STATE_MAX (__IFLA_BRIDGE_MRP_IN_STATE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_IN_ROLE_UNSPEC,
- IFLA_BRIDGE_MRP_IN_ROLE_RING_ID,
- IFLA_BRIDGE_MRP_IN_ROLE_IN_ID,
- IFLA_BRIDGE_MRP_IN_ROLE_ROLE,
- IFLA_BRIDGE_MRP_IN_ROLE_I_IFINDEX,
- __IFLA_BRIDGE_MRP_IN_ROLE_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_IN_ROLE_MAX (__IFLA_BRIDGE_MRP_IN_ROLE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_MRP_START_IN_TEST_UNSPEC,
- IFLA_BRIDGE_MRP_START_IN_TEST_IN_ID,
- IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL,
- IFLA_BRIDGE_MRP_START_IN_TEST_MAX_MISS,
- IFLA_BRIDGE_MRP_START_IN_TEST_PERIOD,
- __IFLA_BRIDGE_MRP_START_IN_TEST_MAX,
-};
-
-#define IFLA_BRIDGE_MRP_START_IN_TEST_MAX (__IFLA_BRIDGE_MRP_START_IN_TEST_MAX - 1)
-
-struct br_mrp_instance {
- __u32 ring_id;
- __u32 p_ifindex;
- __u32 s_ifindex;
- __u16 prio;
-};
-
-struct br_mrp_ring_state {
- __u32 ring_id;
- __u32 ring_state;
-};
-
-struct br_mrp_ring_role {
- __u32 ring_id;
- __u32 ring_role;
-};
-
-struct br_mrp_start_test {
- __u32 ring_id;
- __u32 interval;
- __u32 max_miss;
- __u32 period;
- __u32 monitor;
-};
-
-struct br_mrp_in_state {
- __u32 in_state;
- __u16 in_id;
-};
-
-struct br_mrp_in_role {
- __u32 ring_id;
- __u32 in_role;
- __u32 i_ifindex;
- __u16 in_id;
-};
-
-struct br_mrp_start_in_test {
- __u32 interval;
- __u32 max_miss;
- __u32 period;
- __u16 in_id;
-};
-
-enum {
- IFLA_BRIDGE_CFM_UNSPEC,
- IFLA_BRIDGE_CFM_MEP_CREATE,
- IFLA_BRIDGE_CFM_MEP_DELETE,
- IFLA_BRIDGE_CFM_MEP_CONFIG,
- IFLA_BRIDGE_CFM_CC_CONFIG,
- IFLA_BRIDGE_CFM_CC_PEER_MEP_ADD,
- IFLA_BRIDGE_CFM_CC_PEER_MEP_REMOVE,
- IFLA_BRIDGE_CFM_CC_RDI,
- IFLA_BRIDGE_CFM_CC_CCM_TX,
- IFLA_BRIDGE_CFM_MEP_CREATE_INFO,
- IFLA_BRIDGE_CFM_MEP_CONFIG_INFO,
- IFLA_BRIDGE_CFM_CC_CONFIG_INFO,
- IFLA_BRIDGE_CFM_CC_RDI_INFO,
- IFLA_BRIDGE_CFM_CC_CCM_TX_INFO,
- IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO,
- IFLA_BRIDGE_CFM_MEP_STATUS_INFO,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO,
- __IFLA_BRIDGE_CFM_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_MAX (__IFLA_BRIDGE_CFM_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_MEP_CREATE_UNSPEC,
- IFLA_BRIDGE_CFM_MEP_CREATE_INSTANCE,
- IFLA_BRIDGE_CFM_MEP_CREATE_DOMAIN,
- IFLA_BRIDGE_CFM_MEP_CREATE_DIRECTION,
- IFLA_BRIDGE_CFM_MEP_CREATE_IFINDEX,
- __IFLA_BRIDGE_CFM_MEP_CREATE_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_MEP_CREATE_MAX (__IFLA_BRIDGE_CFM_MEP_CREATE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_MEP_DELETE_UNSPEC,
- IFLA_BRIDGE_CFM_MEP_DELETE_INSTANCE,
- __IFLA_BRIDGE_CFM_MEP_DELETE_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_MEP_DELETE_MAX (__IFLA_BRIDGE_CFM_MEP_DELETE_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_MEP_CONFIG_UNSPEC,
- IFLA_BRIDGE_CFM_MEP_CONFIG_INSTANCE,
- IFLA_BRIDGE_CFM_MEP_CONFIG_UNICAST_MAC,
- IFLA_BRIDGE_CFM_MEP_CONFIG_MDLEVEL,
- IFLA_BRIDGE_CFM_MEP_CONFIG_MEPID,
- __IFLA_BRIDGE_CFM_MEP_CONFIG_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_MEP_CONFIG_MAX (__IFLA_BRIDGE_CFM_MEP_CONFIG_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_CC_CONFIG_UNSPEC,
- IFLA_BRIDGE_CFM_CC_CONFIG_INSTANCE,
- IFLA_BRIDGE_CFM_CC_CONFIG_ENABLE,
- IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL,
- IFLA_BRIDGE_CFM_CC_CONFIG_EXP_MAID,
- __IFLA_BRIDGE_CFM_CC_CONFIG_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_CC_CONFIG_MAX (__IFLA_BRIDGE_CFM_CC_CONFIG_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_CC_PEER_MEP_UNSPEC,
- IFLA_BRIDGE_CFM_CC_PEER_MEP_INSTANCE,
- IFLA_BRIDGE_CFM_CC_PEER_MEPID,
- __IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX (__IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_CC_RDI_UNSPEC,
- IFLA_BRIDGE_CFM_CC_RDI_INSTANCE,
- IFLA_BRIDGE_CFM_CC_RDI_RDI,
- __IFLA_BRIDGE_CFM_CC_RDI_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_CC_RDI_MAX (__IFLA_BRIDGE_CFM_CC_RDI_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_CC_CCM_TX_UNSPEC,
- IFLA_BRIDGE_CFM_CC_CCM_TX_INSTANCE,
- IFLA_BRIDGE_CFM_CC_CCM_TX_DMAC,
- IFLA_BRIDGE_CFM_CC_CCM_TX_SEQ_NO_UPDATE,
- IFLA_BRIDGE_CFM_CC_CCM_TX_PERIOD,
- IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV,
- IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV_VALUE,
- IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV,
- IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV_VALUE,
- __IFLA_BRIDGE_CFM_CC_CCM_TX_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_MEP_STATUS_UNSPEC,
- IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE,
- IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN,
- IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN,
- IFLA_BRIDGE_CFM_MEP_STATUS_RX_LEVEL_LOW_SEEN,
- __IFLA_BRIDGE_CFM_MEP_STATUS_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_MEP_STATUS_MAX (__IFLA_BRIDGE_CFM_MEP_STATUS_MAX - 1)
-
-enum {
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_UNSPEC,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_RDI,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_TLV_SEEN,
- IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEQ_UNEXP_SEEN,
- __IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX,
-};
-
-#define IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX (__IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX - 1)
-
-struct bridge_stp_xstats {
- __u64 transition_blk;
- __u64 transition_fwd;
- __u64 rx_bpdu;
- __u64 tx_bpdu;
- __u64 rx_tcn;
- __u64 tx_tcn;
-};
-
-/* Bridge vlan RTM header */
-struct br_vlan_msg {
- __u8 family;
- __u8 reserved1;
- __u16 reserved2;
- __u32 ifindex;
-};
-
-enum {
- BRIDGE_VLANDB_DUMP_UNSPEC,
- BRIDGE_VLANDB_DUMP_FLAGS,
- __BRIDGE_VLANDB_DUMP_MAX,
-};
-#define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
-
-/* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */
-#define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */
-
-/* Bridge vlan RTM attributes
- * [BRIDGE_VLANDB_ENTRY] = {
- * [BRIDGE_VLANDB_ENTRY_INFO]
- * ...
- * }
- */
-enum {
- BRIDGE_VLANDB_UNSPEC,
- BRIDGE_VLANDB_ENTRY,
- __BRIDGE_VLANDB_MAX,
-};
-#define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
-
-enum {
- BRIDGE_VLANDB_ENTRY_UNSPEC,
- BRIDGE_VLANDB_ENTRY_INFO,
- BRIDGE_VLANDB_ENTRY_RANGE,
- BRIDGE_VLANDB_ENTRY_STATE,
- BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
- BRIDGE_VLANDB_ENTRY_STATS,
- __BRIDGE_VLANDB_ENTRY_MAX,
-};
-#define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
-
-/* [BRIDGE_VLANDB_ENTRY] = {
- * [BRIDGE_VLANDB_ENTRY_TUNNEL_INFO] = {
- * [BRIDGE_VLANDB_TINFO_ID]
- * ...
- * }
- * }
- */
-enum {
- BRIDGE_VLANDB_TINFO_UNSPEC,
- BRIDGE_VLANDB_TINFO_ID,
- BRIDGE_VLANDB_TINFO_CMD,
- __BRIDGE_VLANDB_TINFO_MAX,
-};
-#define BRIDGE_VLANDB_TINFO_MAX (__BRIDGE_VLANDB_TINFO_MAX - 1)
-
-/* [BRIDGE_VLANDB_ENTRY] = {
- * [BRIDGE_VLANDB_ENTRY_STATS] = {
- * [BRIDGE_VLANDB_STATS_RX_BYTES]
- * ...
- * }
- * ...
- * }
- */
-enum {
- BRIDGE_VLANDB_STATS_UNSPEC,
- BRIDGE_VLANDB_STATS_RX_BYTES,
- BRIDGE_VLANDB_STATS_RX_PACKETS,
- BRIDGE_VLANDB_STATS_TX_BYTES,
- BRIDGE_VLANDB_STATS_TX_PACKETS,
- BRIDGE_VLANDB_STATS_PAD,
- __BRIDGE_VLANDB_STATS_MAX,
-};
-#define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
-
/* Bridge multicast database attributes
* [MDBA_MDB] = {
* [MDBA_MDB_ENTRY] = {
@@ -580,33 +198,10 @@ enum {
enum {
MDBA_MDB_EATTR_UNSPEC,
MDBA_MDB_EATTR_TIMER,
- MDBA_MDB_EATTR_SRC_LIST,
- MDBA_MDB_EATTR_GROUP_MODE,
- MDBA_MDB_EATTR_SOURCE,
- MDBA_MDB_EATTR_RTPROT,
__MDBA_MDB_EATTR_MAX
};
#define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1)
-/* per mdb entry source */
-enum {
- MDBA_MDB_SRCLIST_UNSPEC,
- MDBA_MDB_SRCLIST_ENTRY,
- __MDBA_MDB_SRCLIST_MAX
-};
-#define MDBA_MDB_SRCLIST_MAX (__MDBA_MDB_SRCLIST_MAX - 1)
-
-/* per mdb entry per source attributes
- * these are embedded in MDBA_MDB_SRCLIST_ENTRY
- */
-enum {
- MDBA_MDB_SRCATTR_UNSPEC,
- MDBA_MDB_SRCATTR_ADDRESS,
- MDBA_MDB_SRCATTR_TIMER,
- __MDBA_MDB_SRCATTR_MAX
-};
-#define MDBA_MDB_SRCATTR_MAX (__MDBA_MDB_SRCATTR_MAX - 1)
-
/* multicast router types */
enum {
MDB_RTR_TYPE_DISABLED,
@@ -643,15 +238,12 @@ struct br_mdb_entry {
__u8 state;
#define MDB_FLAGS_OFFLOAD (1 << 0)
#define MDB_FLAGS_FAST_LEAVE (1 << 1)
-#define MDB_FLAGS_STAR_EXCL (1 << 2)
-#define MDB_FLAGS_BLOCKED (1 << 3)
__u8 flags;
__u16 vid;
struct {
union {
__be32 ip4;
struct in6_addr ip6;
- unsigned char mac_addr[ETH_ALEN];
} u;
__be16 proto;
} addr;
@@ -660,30 +252,16 @@ struct br_mdb_entry {
enum {
MDBA_SET_ENTRY_UNSPEC,
MDBA_SET_ENTRY,
- MDBA_SET_ENTRY_ATTRS,
__MDBA_SET_ENTRY_MAX,
};
#define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)
-/* [MDBA_SET_ENTRY_ATTRS] = {
- * [MDBE_ATTR_xxx]
- * ...
- * }
- */
-enum {
- MDBE_ATTR_UNSPEC,
- MDBE_ATTR_SOURCE,
- __MDBE_ATTR_MAX,
-};
-#define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
-
/* Embedded inside LINK_XSTATS_TYPE_BRIDGE */
enum {
BRIDGE_XSTATS_UNSPEC,
BRIDGE_XSTATS_VLAN,
BRIDGE_XSTATS_MCAST,
BRIDGE_XSTATS_PAD,
- BRIDGE_XSTATS_STP,
__BRIDGE_XSTATS_MAX
};
#define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1)
diff --git a/original/uapi/linux/if_ether.h b/original/uapi/linux/if_ether.h
index a0b6379..f6ceb2e 100644
--- a/original/uapi/linux/if_ether.h
+++ b/original/uapi/linux/if_ether.h
@@ -92,14 +92,12 @@
#define ETH_P_PREAUTH 0x88C7 /* 802.11 Preauthentication */
#define ETH_P_TIPC 0x88CA /* TIPC */
#define ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */
-#define ETH_P_MRP 0x88E3 /* Media Redundancy Protocol */
#define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */
#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */
#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
#define ETH_P_NCSI 0x88F8 /* NCSI protocol */
#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
-#define ETH_P_CFM 0x8902 /* Connectivity Fault Management */
#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
#define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */
#define ETH_P_TDLS 0x890D /* TDLS */
diff --git a/original/uapi/linux/if_frad.h b/original/uapi/linux/if_frad.h
new file mode 100644
index 0000000..3c6ee85
--- /dev/null
+++ b/original/uapi/linux/if_frad.h
@@ -0,0 +1,123 @@
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * DLCI/FRAD Definitions for Frame Relay Access Devices. DLCI devices are
+ * created for each DLCI associated with a FRAD. The FRAD driver
+ * is not truly a network device, but the lower level device
+ * handler. This allows other FRAD manufacturers to use the DLCI
+ * code, including its RFC1490 encapsulation alongside the current
+ * implementation for the Sangoma cards.
+ *
+ * Version: @(#)if_ifrad.h 0.15 31 Mar 96
+ *
+ * Author: Mike McLagan <mike.mclagan@linux.org>
+ *
+ * Changes:
+ * 0.15 Mike McLagan changed structure defs (packed)
+ * re-arranged flags
+ * added DLCI_RET vars
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#ifndef _UAPI_FRAD_H_
+#define _UAPI_FRAD_H_
+
+#include <linux/if.h>
+
+/* Structures and constants associated with the DLCI device driver */
+
+struct dlci_add
+{
+ char devname[IFNAMSIZ];
+ short dlci;
+};
+
+#define DLCI_GET_CONF (SIOCDEVPRIVATE + 2)
+#define DLCI_SET_CONF (SIOCDEVPRIVATE + 3)
+
+/*
+ * These are related to the Sangoma SDLA and should remain in order.
+ * Code within the SDLA module is based on the specifics of this
+ * structure. Change at your own peril.
+ */
+struct dlci_conf {
+ short flags;
+ short CIR_fwd;
+ short Bc_fwd;
+ short Be_fwd;
+ short CIR_bwd;
+ short Bc_bwd;
+ short Be_bwd;
+
+/* these are part of the status read */
+ short Tc_fwd;
+ short Tc_bwd;
+ short Tf_max;
+ short Tb_max;
+
+/* add any new fields here above is a mirror of sdla_dlci_conf */
+};
+
+#define DLCI_GET_SLAVE (SIOCDEVPRIVATE + 4)
+
+/* configuration flags for DLCI */
+#define DLCI_IGNORE_CIR_OUT 0x0001
+#define DLCI_ACCOUNT_CIR_IN 0x0002
+#define DLCI_BUFFER_IF 0x0008
+
+#define DLCI_VALID_FLAGS 0x000B
+
+/* defines for the actual Frame Relay hardware */
+#define FRAD_GET_CONF (SIOCDEVPRIVATE)
+#define FRAD_SET_CONF (SIOCDEVPRIVATE + 1)
+
+#define FRAD_LAST_IOCTL FRAD_SET_CONF
+
+/*
+ * Based on the setup for the Sangoma SDLA. If changes are
+ * necessary to this structure, a routine will need to be
+ * added to that module to copy fields.
+ */
+struct frad_conf
+{
+ short station;
+ short flags;
+ short kbaud;
+ short clocking;
+ short mtu;
+ short T391;
+ short T392;
+ short N391;
+ short N392;
+ short N393;
+ short CIR_fwd;
+ short Bc_fwd;
+ short Be_fwd;
+ short CIR_bwd;
+ short Bc_bwd;
+ short Be_bwd;
+
+/* Add new fields here, above is a mirror of the sdla_conf */
+
+};
+
+#define FRAD_STATION_CPE 0x0000
+#define FRAD_STATION_NODE 0x0001
+
+#define FRAD_TX_IGNORE_CIR 0x0001
+#define FRAD_RX_ACCOUNT_CIR 0x0002
+#define FRAD_DROP_ABORTED 0x0004
+#define FRAD_BUFFERIF 0x0008
+#define FRAD_STATS 0x0010
+#define FRAD_MCI 0x0100
+#define FRAD_AUTODLCI 0x8000
+#define FRAD_VALID_FLAGS 0x811F
+
+#define FRAD_CLOCK_INT 0x0001
+#define FRAD_CLOCK_EXT 0x0000
+
+
+#endif /* _UAPI_FRAD_H_ */
diff --git a/original/uapi/linux/if_link.h b/original/uapi/linux/if_link.h
index 91c8dda..8aec876 100644
--- a/original/uapi/linux/if_link.h
+++ b/original/uapi/linux/if_link.h
@@ -7,23 +7,24 @@
/* This struct should be in sync with struct rtnl_link_stats64 */
struct rtnl_link_stats {
- __u32 rx_packets;
- __u32 tx_packets;
- __u32 rx_bytes;
- __u32 tx_bytes;
- __u32 rx_errors;
- __u32 tx_errors;
- __u32 rx_dropped;
- __u32 tx_dropped;
- __u32 multicast;
+ __u32 rx_packets; /* total packets received */
+ __u32 tx_packets; /* total packets transmitted */
+ __u32 rx_bytes; /* total bytes received */
+ __u32 tx_bytes; /* total bytes transmitted */
+ __u32 rx_errors; /* bad packets received */
+ __u32 tx_errors; /* packet transmit problems */
+ __u32 rx_dropped; /* no space in linux buffers */
+ __u32 tx_dropped; /* no space available in linux */
+ __u32 multicast; /* multicast packets received */
__u32 collisions;
+
/* detailed rx_errors: */
__u32 rx_length_errors;
- __u32 rx_over_errors;
- __u32 rx_crc_errors;
- __u32 rx_frame_errors;
- __u32 rx_fifo_errors;
- __u32 rx_missed_errors;
+ __u32 rx_over_errors; /* receiver ring buff overflow */
+ __u32 rx_crc_errors; /* recved pkt with crc error */
+ __u32 rx_frame_errors; /* recv'd frame alignment error */
+ __u32 rx_fifo_errors; /* recv'r fifo overrun */
+ __u32 rx_missed_errors; /* receiver missed packet */
/* detailed tx_errors */
__u32 tx_aborted_errors;
@@ -36,201 +37,29 @@ struct rtnl_link_stats {
__u32 rx_compressed;
__u32 tx_compressed;
- __u32 rx_nohandler;
+ __u32 rx_nohandler; /* dropped, no handler found */
};
-/**
- * struct rtnl_link_stats64 - The main device statistics structure.
- *
- * @rx_packets: Number of good packets received by the interface.
- * For hardware interfaces counts all good packets received from the device
- * by the host, including packets which host had to drop at various stages
- * of processing (even in the driver).
- *
- * @tx_packets: Number of packets successfully transmitted.
- * For hardware interfaces counts packets which host was able to successfully
- * hand over to the device, which does not necessarily mean that packets
- * had been successfully transmitted out of the device, only that device
- * acknowledged it copied them out of host memory.
- *
- * @rx_bytes: Number of good received bytes, corresponding to @rx_packets.
- *
- * For IEEE 802.3 devices should count the length of Ethernet Frames
- * excluding the FCS.
- *
- * @tx_bytes: Number of good transmitted bytes, corresponding to @tx_packets.
- *
- * For IEEE 802.3 devices should count the length of Ethernet Frames
- * excluding the FCS.
- *
- * @rx_errors: Total number of bad packets received on this network device.
- * This counter must include events counted by @rx_length_errors,
- * @rx_crc_errors, @rx_frame_errors and other errors not otherwise
- * counted.
- *
- * @tx_errors: Total number of transmit problems.
- * This counter must include events counter by @tx_aborted_errors,
- * @tx_carrier_errors, @tx_fifo_errors, @tx_heartbeat_errors,
- * @tx_window_errors and other errors not otherwise counted.
- *
- * @rx_dropped: Number of packets received but not processed,
- * e.g. due to lack of resources or unsupported protocol.
- * For hardware interfaces this counter may include packets discarded
- * due to L2 address filtering but should not include packets dropped
- * by the device due to buffer exhaustion which are counted separately in
- * @rx_missed_errors (since procfs folds those two counters together).
- *
- * @tx_dropped: Number of packets dropped on their way to transmission,
- * e.g. due to lack of resources.
- *
- * @multicast: Multicast packets received.
- * For hardware interfaces this statistic is commonly calculated
- * at the device level (unlike @rx_packets) and therefore may include
- * packets which did not reach the host.
- *
- * For IEEE 802.3 devices this counter may be equivalent to:
- *
- * - 30.3.1.1.21 aMulticastFramesReceivedOK
- *
- * @collisions: Number of collisions during packet transmissions.
- *
- * @rx_length_errors: Number of packets dropped due to invalid length.
- * Part of aggregate "frame" errors in `/proc/net/dev`.
- *
- * For IEEE 802.3 devices this counter should be equivalent to a sum
- * of the following attributes:
- *
- * - 30.3.1.1.23 aInRangeLengthErrors
- * - 30.3.1.1.24 aOutOfRangeLengthField
- * - 30.3.1.1.25 aFrameTooLongErrors
- *
- * @rx_over_errors: Receiver FIFO overflow event counter.
- *
- * Historically the count of overflow events. Such events may be
- * reported in the receive descriptors or via interrupts, and may
- * not correspond one-to-one with dropped packets.
- *
- * The recommended interpretation for high speed interfaces is -
- * number of packets dropped because they did not fit into buffers
- * provided by the host, e.g. packets larger than MTU or next buffer
- * in the ring was not available for a scatter transfer.
- *
- * Part of aggregate "frame" errors in `/proc/net/dev`.
- *
- * This statistics was historically used interchangeably with
- * @rx_fifo_errors.
- *
- * This statistic corresponds to hardware events and is not commonly used
- * on software devices.
- *
- * @rx_crc_errors: Number of packets received with a CRC error.
- * Part of aggregate "frame" errors in `/proc/net/dev`.
- *
- * For IEEE 802.3 devices this counter must be equivalent to:
- *
- * - 30.3.1.1.6 aFrameCheckSequenceErrors
- *
- * @rx_frame_errors: Receiver frame alignment errors.
- * Part of aggregate "frame" errors in `/proc/net/dev`.
- *
- * For IEEE 802.3 devices this counter should be equivalent to:
- *
- * - 30.3.1.1.7 aAlignmentErrors
- *
- * @rx_fifo_errors: Receiver FIFO error counter.
- *
- * Historically the count of overflow events. Those events may be
- * reported in the receive descriptors or via interrupts, and may
- * not correspond one-to-one with dropped packets.
- *
- * This statistics was used interchangeably with @rx_over_errors.
- * Not recommended for use in drivers for high speed interfaces.
- *
- * This statistic is used on software devices, e.g. to count software
- * packet queue overflow (can) or sequencing errors (GRE).
- *
- * @rx_missed_errors: Count of packets missed by the host.
- * Folded into the "drop" counter in `/proc/net/dev`.
- *
- * Counts number of packets dropped by the device due to lack
- * of buffer space. This usually indicates that the host interface
- * is slower than the network interface, or host is not keeping up
- * with the receive packet rate.
- *
- * This statistic corresponds to hardware events and is not used
- * on software devices.
- *
- * @tx_aborted_errors:
- * Part of aggregate "carrier" errors in `/proc/net/dev`.
- * For IEEE 802.3 devices capable of half-duplex operation this counter
- * must be equivalent to:
- *
- * - 30.3.1.1.11 aFramesAbortedDueToXSColls
- *
- * High speed interfaces may use this counter as a general device
- * discard counter.
- *
- * @tx_carrier_errors: Number of frame transmission errors due to loss
- * of carrier during transmission.
- * Part of aggregate "carrier" errors in `/proc/net/dev`.
- *
- * For IEEE 802.3 devices this counter must be equivalent to:
- *
- * - 30.3.1.1.13 aCarrierSenseErrors
- *
- * @tx_fifo_errors: Number of frame transmission errors due to device
- * FIFO underrun / underflow. This condition occurs when the device
- * begins transmission of a frame but is unable to deliver the
- * entire frame to the transmitter in time for transmission.
- * Part of aggregate "carrier" errors in `/proc/net/dev`.
- *
- * @tx_heartbeat_errors: Number of Heartbeat / SQE Test errors for
- * old half-duplex Ethernet.
- * Part of aggregate "carrier" errors in `/proc/net/dev`.
- *
- * For IEEE 802.3 devices possibly equivalent to:
- *
- * - 30.3.2.1.4 aSQETestErrors
- *
- * @tx_window_errors: Number of frame transmission errors due
- * to late collisions (for Ethernet - after the first 64B of transmission).
- * Part of aggregate "carrier" errors in `/proc/net/dev`.
- *
- * For IEEE 802.3 devices this counter must be equivalent to:
- *
- * - 30.3.1.1.10 aLateCollisions
- *
- * @rx_compressed: Number of correctly received compressed packets.
- * This counters is only meaningful for interfaces which support
- * packet compression (e.g. CSLIP, PPP).
- *
- * @tx_compressed: Number of transmitted compressed packets.
- * This counters is only meaningful for interfaces which support
- * packet compression (e.g. CSLIP, PPP).
- *
- * @rx_nohandler: Number of packets received on the interface
- * but dropped by the networking stack because the device is
- * not designated to receive packets (e.g. backup link in a bond).
- */
+/* The main device statistics structure */
struct rtnl_link_stats64 {
- __u64 rx_packets;
- __u64 tx_packets;
- __u64 rx_bytes;
- __u64 tx_bytes;
- __u64 rx_errors;
- __u64 tx_errors;
- __u64 rx_dropped;
- __u64 tx_dropped;
- __u64 multicast;
+ __u64 rx_packets; /* total packets received */
+ __u64 tx_packets; /* total packets transmitted */
+ __u64 rx_bytes; /* total bytes received */
+ __u64 tx_bytes; /* total bytes transmitted */
+ __u64 rx_errors; /* bad packets received */
+ __u64 tx_errors; /* packet transmit problems */
+ __u64 rx_dropped; /* no space in linux buffers */
+ __u64 tx_dropped; /* no space available in linux */
+ __u64 multicast; /* multicast packets received */
__u64 collisions;
/* detailed rx_errors: */
__u64 rx_length_errors;
- __u64 rx_over_errors;
- __u64 rx_crc_errors;
- __u64 rx_frame_errors;
- __u64 rx_fifo_errors;
- __u64 rx_missed_errors;
+ __u64 rx_over_errors; /* receiver ring buff overflow */
+ __u64 rx_crc_errors; /* recved pkt with crc error */
+ __u64 rx_frame_errors; /* recv'd frame alignment error */
+ __u64 rx_fifo_errors; /* recv'r fifo overrun */
+ __u64 rx_missed_errors; /* receiver missed packet */
/* detailed tx_errors */
__u64 tx_aborted_errors;
@@ -242,7 +71,8 @@ struct rtnl_link_stats64 {
/* for cslip etc */
__u64 rx_compressed;
__u64 tx_compressed;
- __u64 rx_nohandler;
+
+ __u64 rx_nohandler; /* dropped, no handler found */
};
/* The struct should be in sync with struct ifmap */
@@ -339,23 +169,12 @@ enum {
IFLA_MAX_MTU,
IFLA_PROP_LIST,
IFLA_ALT_IFNAME, /* Alternative ifname */
- IFLA_PERM_ADDRESS,
- IFLA_PROTO_DOWN_REASON,
__IFLA_MAX
};
#define IFLA_MAX (__IFLA_MAX - 1)
-enum {
- IFLA_PROTO_DOWN_REASON_UNSPEC,
- IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */
- IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */
-
- __IFLA_PROTO_DOWN_REASON_CNT,
- IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1
-};
-
/* backwards compatibility for userspace */
#ifndef __KERNEL__
#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
@@ -523,10 +342,6 @@ enum {
IFLA_BRPORT_NEIGH_SUPPRESS,
IFLA_BRPORT_ISOLATED,
IFLA_BRPORT_BACKUP_PORT,
- IFLA_BRPORT_MRP_RING_OPEN,
- IFLA_BRPORT_MRP_IN_OPEN,
- IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
- IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
__IFLA_BRPORT_MAX
};
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -591,8 +406,6 @@ enum {
IFLA_MACVLAN_MACADDR,
IFLA_MACVLAN_MACADDR_DATA,
IFLA_MACVLAN_MACADDR_COUNT,
- IFLA_MACVLAN_BC_QUEUE_LEN,
- IFLA_MACVLAN_BC_QUEUE_LEN_USED,
__IFLA_MACVLAN_MAX,
};
@@ -649,7 +462,6 @@ enum {
IFLA_MACSEC_REPLAY_PROTECT,
IFLA_MACSEC_VALIDATION,
IFLA_MACSEC_PAD,
- IFLA_MACSEC_OFFLOAD,
__IFLA_MACSEC_MAX,
};
@@ -673,14 +485,6 @@ enum macsec_validation_type {
MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1,
};
-enum macsec_offload {
- MACSEC_OFFLOAD_OFF = 0,
- MACSEC_OFFLOAD_PHY = 1,
- MACSEC_OFFLOAD_MAC = 2,
- __MACSEC_OFFLOAD_END,
- MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1,
-};
-
/* IPVLAN section */
enum {
IFLA_IPVLAN_UNSPEC,
@@ -778,18 +582,6 @@ enum ifla_geneve_df {
GENEVE_DF_MAX = __GENEVE_DF_END - 1,
};
-/* Bareudp section */
-enum {
- IFLA_BAREUDP_UNSPEC,
- IFLA_BAREUDP_PORT,
- IFLA_BAREUDP_ETHERTYPE,
- IFLA_BAREUDP_SRCPORT_MIN,
- IFLA_BAREUDP_MULTIPROTO_MODE,
- __IFLA_BAREUDP_MAX
-};
-
-#define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1)
-
/* PPP section */
enum {
IFLA_PPP_UNSPEC,
@@ -1091,14 +883,7 @@ enum {
#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
-/* HSR/PRP section, both uses same interface */
-
-/* Different redundancy protocols for hsr device */
-enum {
- HSR_PROTOCOL_HSR,
- HSR_PROTOCOL_PRP,
- HSR_PROTOCOL_MAX,
-};
+/* HSR section */
enum {
IFLA_HSR_UNSPEC,
@@ -1108,9 +893,6 @@ enum {
IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */
IFLA_HSR_SEQ_NR,
IFLA_HSR_VERSION, /* HSR version */
- IFLA_HSR_PROTOCOL, /* Indicate different protocol than
- * HSR. For example PRP.
- */
__IFLA_HSR_MAX,
};
@@ -1170,12 +952,11 @@ enum {
#define XDP_FLAGS_SKB_MODE (1U << 1)
#define XDP_FLAGS_DRV_MODE (1U << 2)
#define XDP_FLAGS_HW_MODE (1U << 3)
-#define XDP_FLAGS_REPLACE (1U << 4)
#define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \
XDP_FLAGS_DRV_MODE | \
XDP_FLAGS_HW_MODE)
#define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \
- XDP_FLAGS_MODES | XDP_FLAGS_REPLACE)
+ XDP_FLAGS_MODES)
/* These are stored into IFLA_XDP_ATTACHED on dump. */
enum {
@@ -1195,7 +976,6 @@ enum {
IFLA_XDP_DRV_PROG_ID,
IFLA_XDP_SKB_PROG_ID,
IFLA_XDP_HW_PROG_ID,
- IFLA_XDP_EXPECTED_FD,
__IFLA_XDP_MAX,
};
diff --git a/original/uapi/linux/if_macsec.h b/original/uapi/linux/if_macsec.h
index 3af2aa0..98e4d5d 100644
--- a/original/uapi/linux/if_macsec.h
+++ b/original/uapi/linux/if_macsec.h
@@ -22,11 +22,9 @@
#define MACSEC_KEYID_LEN 16
-/* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */
+/* cipher IDs as per IEEE802.1AEbn-2011 */
#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
-#define MACSEC_CIPHER_ID_GCM_AES_XPN_128 0x0080C20001000003ULL
-#define MACSEC_CIPHER_ID_GCM_AES_XPN_256 0x0080C20001000004ULL
/* deprecated cipher ID for GCM-AES-128 */
#define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
@@ -47,7 +45,6 @@ enum macsec_attrs {
MACSEC_ATTR_RXSC_LIST, /* dump, nested, macsec_rxsc_attrs for each RXSC */
MACSEC_ATTR_TXSC_STATS, /* dump, nested, macsec_txsc_stats_attr */
MACSEC_ATTR_SECY_STATS, /* dump, nested, macsec_secy_stats_attr */
- MACSEC_ATTR_OFFLOAD, /* config, nested, macsec_offload_attrs */
__MACSEC_ATTR_END,
NUM_MACSEC_ATTR = __MACSEC_ATTR_END,
MACSEC_ATTR_MAX = __MACSEC_ATTR_END - 1,
@@ -90,27 +87,16 @@ enum macsec_sa_attrs {
MACSEC_SA_ATTR_UNSPEC,
MACSEC_SA_ATTR_AN, /* config/dump, u8 0..3 */
MACSEC_SA_ATTR_ACTIVE, /* config/dump, u8 0..1 */
- MACSEC_SA_ATTR_PN, /* config/dump, u32/u64 (u64 if XPN) */
+ MACSEC_SA_ATTR_PN, /* config/dump, u32 */
MACSEC_SA_ATTR_KEY, /* config, data */
MACSEC_SA_ATTR_KEYID, /* config/dump, 128-bit */
MACSEC_SA_ATTR_STATS, /* dump, nested, macsec_sa_stats_attr */
MACSEC_SA_ATTR_PAD,
- MACSEC_SA_ATTR_SSCI, /* config/dump, u32 - XPN only */
- MACSEC_SA_ATTR_SALT, /* config, 96-bit - XPN only */
__MACSEC_SA_ATTR_END,
NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END,
MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1,
};
-enum macsec_offload_attrs {
- MACSEC_OFFLOAD_ATTR_UNSPEC,
- MACSEC_OFFLOAD_ATTR_TYPE, /* config/dump, u8 0..2 */
- MACSEC_OFFLOAD_ATTR_PAD,
- __MACSEC_OFFLOAD_ATTR_END,
- NUM_MACSEC_OFFLOAD_ATTR = __MACSEC_OFFLOAD_ATTR_END,
- MACSEC_OFFLOAD_ATTR_MAX = __MACSEC_OFFLOAD_ATTR_END - 1,
-};
-
enum macsec_nl_commands {
MACSEC_CMD_GET_TXSC,
MACSEC_CMD_ADD_RXSC,
@@ -122,7 +108,6 @@ enum macsec_nl_commands {
MACSEC_CMD_ADD_RXSA,
MACSEC_CMD_DEL_RXSA,
MACSEC_CMD_UPD_RXSA,
- MACSEC_CMD_UPD_OFFLOAD,
};
/* u64 per-RXSC stats */
diff --git a/original/uapi/linux/if_packet.h b/original/uapi/linux/if_packet.h
index c07caf7..3d884d6 100644
--- a/original/uapi/linux/if_packet.h
+++ b/original/uapi/linux/if_packet.h
@@ -2,7 +2,6 @@
#ifndef __LINUX_IF_PACKET_H
#define __LINUX_IF_PACKET_H
-#include <asm/byteorder.h>
#include <linux/types.h>
struct sockaddr_pkt {
@@ -297,17 +296,6 @@ struct packet_mreq {
unsigned char mr_address[8];
};
-struct fanout_args {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u16 id;
- __u16 type_flags;
-#else
- __u16 type_flags;
- __u16 id;
-#endif
- __u32 max_num_members;
-};
-
#define PACKET_MR_MULTICAST 0
#define PACKET_MR_PROMISC 1
#define PACKET_MR_ALLMULTI 2
diff --git a/original/uapi/linux/if_pppol2tp.h b/original/uapi/linux/if_pppol2tp.h
index a910443..060b4d1 100644
--- a/original/uapi/linux/if_pppol2tp.h
+++ b/original/uapi/linux/if_pppol2tp.h
@@ -75,7 +75,7 @@ struct pppol2tpv3in6_addr {
};
/* Socket options:
- * DEBUG - bitmask of debug message categories (not used)
+ * DEBUG - bitmask of debug message categories
* SENDSEQ - 0 => don't send packets with sequence numbers
* 1 => send packets with sequence numbers
* RECVSEQ - 0 => receive packet sequence numbers are optional
diff --git a/original/uapi/linux/if_x25.h b/original/uapi/linux/if_x25.h
index 3a5938e..5d96244 100644
--- a/original/uapi/linux/if_x25.h
+++ b/original/uapi/linux/if_x25.h
@@ -18,7 +18,7 @@
#include <linux/types.h>
-/* Documentation/networking/x25-iface.rst */
+/* Documentation/networking/x25-iface.txt */
#define X25_IFACE_DATA 0x00
#define X25_IFACE_CONNECT 0x01
#define X25_IFACE_DISCONNECT 0x02
diff --git a/original/uapi/linux/if_xdp.h b/original/uapi/linux/if_xdp.h
index a78a809..be328c5 100644
--- a/original/uapi/linux/if_xdp.h
+++ b/original/uapi/linux/if_xdp.h
@@ -73,12 +73,9 @@ struct xdp_umem_reg {
};
struct xdp_statistics {
- __u64 rx_dropped; /* Dropped for other reasons */
+ __u64 rx_dropped; /* Dropped for reasons other than invalid desc */
__u64 rx_invalid_descs; /* Dropped due to invalid descriptor */
__u64 tx_invalid_descs; /* Dropped due to invalid descriptor */
- __u64 rx_ring_full; /* Dropped due to rx ring being full */
- __u64 rx_fill_ring_empty_descs; /* Failed to retrieve item from fill ring */
- __u64 tx_ring_empty_descs; /* Failed to retrieve item from tx ring */
};
struct xdp_options {
diff --git a/original/uapi/linux/iio/types.h b/original/uapi/linux/iio/types.h
index 48c1314..fdd81af 100644
--- a/original/uapi/linux/iio/types.h
+++ b/original/uapi/linux/iio/types.h
@@ -94,7 +94,6 @@ enum iio_modifier {
IIO_MOD_PM10,
IIO_MOD_ETHANOL,
IIO_MOD_H2,
- IIO_MOD_O2,
};
enum iio_event_type {
diff --git a/original/uapi/linux/in.h b/original/uapi/linux/in.h
index 7d66876..e7ad9d3 100644
--- a/original/uapi/linux/in.h
+++ b/original/uapi/linux/in.h
@@ -74,12 +74,8 @@ enum {
#define IPPROTO_UDPLITE IPPROTO_UDPLITE
IPPROTO_MPLS = 137, /* MPLS in IP (RFC 4023) */
#define IPPROTO_MPLS IPPROTO_MPLS
- IPPROTO_ETHERNET = 143, /* Ethernet-within-IPv6 Encapsulation */
-#define IPPROTO_ETHERNET IPPROTO_ETHERNET
IPPROTO_RAW = 255, /* Raw IP packets */
#define IPPROTO_RAW IPPROTO_RAW
- IPPROTO_MPTCP = 262, /* Multipath TCP connection */
-#define IPPROTO_MPTCP IPPROTO_MPTCP
IPPROTO_MAX
};
#endif
@@ -123,7 +119,6 @@ struct in_addr {
#define IP_CHECKSUM 23
#define IP_BIND_ADDRESS_NO_PORT 24
#define IP_RECVFRAGSIZE 25
-#define IP_RECVERR_RFC4884 26
/* IP_MTU_DISCOVER values */
#define IP_PMTUDISC_DONT 0 /* Never send DF frames */
@@ -135,7 +130,7 @@ struct in_addr {
* this socket to prevent accepting spoofed ones.
*/
#define IP_PMTUDISC_INTERFACE 4
-/* weaker version of IP_PMTUDISC_INTERFACE, which allows packets to get
+/* weaker version of IP_PMTUDISC_INTERFACE, which allos packets to get
* fragmented if they exeed the interface mtu
*/
#define IP_PMTUDISC_OMIT 5
diff --git a/original/uapi/linux/in6.h b/original/uapi/linux/in6.h
index 5ad396a..9f2273a 100644
--- a/original/uapi/linux/in6.h
+++ b/original/uapi/linux/in6.h
@@ -179,7 +179,6 @@ struct in6_flowlabel_req {
#define IPV6_LEAVE_ANYCAST 28
#define IPV6_MULTICAST_ALL 29
#define IPV6_ROUTER_ALERT_ISOLATE 30
-#define IPV6_RECVERR_RFC4884 31
/* IPV6_MTU_DISCOVER values */
#define IPV6_PMTUDISC_DONT 0
diff --git a/original/uapi/linux/incrementalfs.h b/original/uapi/linux/incrementalfs.h
deleted file mode 100644
index f1a6199..0000000
--- a/original/uapi/linux/incrementalfs.h
+++ /dev/null
@@ -1,586 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Userspace interface for Incremental FS.
- *
- * Incremental FS is special-purpose Linux virtual file system that allows
- * execution of a program while its binary and resource files are still being
- * lazily downloaded over the network, USB etc.
- *
- * Copyright 2019 Google LLC
- */
-#ifndef _UAPI_LINUX_INCREMENTALFS_H
-#define _UAPI_LINUX_INCREMENTALFS_H
-
-#include <linux/limits.h>
-#include <linux/ioctl.h>
-#include <linux/types.h>
-#include <linux/xattr.h>
-
-/* ===== constants ===== */
-#define INCFS_NAME "incremental-fs"
-
-/*
- * Magic number used in file header and in memory superblock
- * Note that it is a 5 byte unsigned long. Thus on 32 bit kernels, it is
- * truncated to a 4 byte number
- */
-#define INCFS_MAGIC_NUMBER (0x5346434e49ul & ULONG_MAX)
-
-#define INCFS_DATA_FILE_BLOCK_SIZE 4096
-#define INCFS_HEADER_VER 1
-
-/* TODO: This value is assumed in incfs_copy_signature_info_from_user to be the
- * actual signature length. Set back to 64 when fixed.
- */
-#define INCFS_MAX_HASH_SIZE 32
-#define INCFS_MAX_FILE_ATTR_SIZE 512
-
-#define INCFS_INDEX_NAME ".index"
-#define INCFS_INCOMPLETE_NAME ".incomplete"
-#define INCFS_PENDING_READS_FILENAME ".pending_reads"
-#define INCFS_LOG_FILENAME ".log"
-#define INCFS_BLOCKS_WRITTEN_FILENAME ".blocks_written"
-#define INCFS_XATTR_ID_NAME (XATTR_USER_PREFIX "incfs.id")
-#define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
-#define INCFS_XATTR_METADATA_NAME (XATTR_USER_PREFIX "incfs.metadata")
-#define INCFS_XATTR_VERITY_NAME (XATTR_USER_PREFIX "incfs.verity")
-
-#define INCFS_MAX_SIGNATURE_SIZE 8096
-#define INCFS_SIGNATURE_VERSION 2
-#define INCFS_SIGNATURE_SECTIONS 2
-
-#define INCFS_IOCTL_BASE_CODE 'g'
-
-/* ===== ioctl requests on the command dir ===== */
-
-/*
- * Create a new file
- * May only be called on .pending_reads file
- */
-#define INCFS_IOC_CREATE_FILE \
- _IOWR(INCFS_IOCTL_BASE_CODE, 30, struct incfs_new_file_args)
-
-/* Read file signature */
-#define INCFS_IOC_READ_FILE_SIGNATURE \
- _IOR(INCFS_IOCTL_BASE_CODE, 31, struct incfs_get_file_sig_args)
-
-/*
- * Fill in one or more data block. This may only be called on a handle
- * passed as a parameter to INCFS_IOC_PERMIT_FILLING
- *
- * Returns number of blocks filled in, or error if none were
- */
-#define INCFS_IOC_FILL_BLOCKS \
- _IOR(INCFS_IOCTL_BASE_CODE, 32, struct incfs_fill_blocks)
-
-/*
- * Permit INCFS_IOC_FILL_BLOCKS on the given file descriptor
- * May only be called on .pending_reads file
- *
- * Returns 0 on success or error
- */
-#define INCFS_IOC_PERMIT_FILL \
- _IOW(INCFS_IOCTL_BASE_CODE, 33, struct incfs_permit_fill)
-
-/*
- * Fills buffer with ranges of populated blocks
- *
- * Returns 0 if all ranges written
- * error otherwise
- *
- * Either way, range_buffer_size_out is set to the number
- * of bytes written. Should be set to 0 by caller. The ranges
- * filled are valid, but if an error was returned there might
- * be more ranges to come.
- *
- * Ranges are ranges of filled blocks:
- *
- * 1 2 7 9
- *
- * means blocks 1, 2, 7, 8, 9 are filled, 0, 3, 4, 5, 6 and 10 on
- * are not
- *
- * If hashing is enabled for the file, the hash blocks are simply
- * treated as though they immediately followed the data blocks.
- */
-#define INCFS_IOC_GET_FILLED_BLOCKS \
- _IOR(INCFS_IOCTL_BASE_CODE, 34, struct incfs_get_filled_blocks_args)
-
-/*
- * Creates a new mapped file
- * May only be called on .pending_reads file
- */
-#define INCFS_IOC_CREATE_MAPPED_FILE \
- _IOWR(INCFS_IOCTL_BASE_CODE, 35, struct incfs_create_mapped_file_args)
-
-/*
- * Get number of blocks, total and filled
- * May only be called on .pending_reads file
- */
-#define INCFS_IOC_GET_BLOCK_COUNT \
- _IOR(INCFS_IOCTL_BASE_CODE, 36, struct incfs_get_block_count_args)
-
-/*
- * Get per UID read timeouts
- * May only be called on .pending_reads file
- */
-#define INCFS_IOC_GET_READ_TIMEOUTS \
- _IOR(INCFS_IOCTL_BASE_CODE, 37, struct incfs_get_read_timeouts_args)
-
-/*
- * Set per UID read timeouts
- * May only be called on .pending_reads file
- */
-#define INCFS_IOC_SET_READ_TIMEOUTS \
- _IOW(INCFS_IOCTL_BASE_CODE, 38, struct incfs_set_read_timeouts_args)
-
-/*
- * Get last read error
- * May only be called on .pending_reads file
- */
-#define INCFS_IOC_GET_LAST_READ_ERROR \
- _IOW(INCFS_IOCTL_BASE_CODE, 39, struct incfs_get_last_read_error_args)
-
-/* ===== sysfs feature flags ===== */
-/*
- * Each flag is represented by a file in /sys/fs/incremental-fs/features
- * If the file exists the feature is supported
- * Also the file contents will be the line "supported"
- */
-
-/*
- * Basic flag stating that the core incfs file system is available
- */
-#define INCFS_FEATURE_FLAG_COREFS "corefs"
-
-/*
- * zstd compression support
- */
-#define INCFS_FEATURE_FLAG_ZSTD "zstd"
-
-/*
- * v2 feature set support. Covers:
- * INCFS_IOC_CREATE_MAPPED_FILE
- * INCFS_IOC_GET_BLOCK_COUNT
- * INCFS_IOC_GET_READ_TIMEOUTS/INCFS_IOC_SET_READ_TIMEOUTS
- * .blocks_written status file
- * .incomplete folder
- * report_uid mount option
- */
-#define INCFS_FEATURE_FLAG_V2 "v2"
-
-enum incfs_compression_alg {
- COMPRESSION_NONE = 0,
- COMPRESSION_LZ4 = 1,
- COMPRESSION_ZSTD = 2,
-};
-
-enum incfs_block_flags {
- INCFS_BLOCK_FLAGS_NONE = 0,
- INCFS_BLOCK_FLAGS_HASH = 1,
-};
-
-typedef struct {
- __u8 bytes[16];
-} incfs_uuid_t __attribute__((aligned (8)));
-
-/*
- * Description of a pending read. A pending read - a read call by
- * a userspace program for which the filesystem currently doesn't have data.
- *
- * Reads from .pending_reads and .log return an array of these structure
- */
-struct incfs_pending_read_info {
- /* Id of a file that is being read from. */
- incfs_uuid_t file_id;
-
- /* A number of microseconds since system boot to the read. */
- __aligned_u64 timestamp_us;
-
- /* Index of a file block that is being read. */
- __u32 block_index;
-
- /* A serial number of this pending read. */
- __u32 serial_number;
-};
-
-/*
- * Description of a pending read. A pending read - a read call by
- * a userspace program for which the filesystem currently doesn't have data.
- *
- * This version of incfs_pending_read_info is used whenever the file system is
- * mounted with the report_uid flag
- */
-struct incfs_pending_read_info2 {
- /* Id of a file that is being read from. */
- incfs_uuid_t file_id;
-
- /* A number of microseconds since system boot to the read. */
- __aligned_u64 timestamp_us;
-
- /* Index of a file block that is being read. */
- __u32 block_index;
-
- /* A serial number of this pending read. */
- __u32 serial_number;
-
- /* The UID of the reading process */
- __u32 uid;
-
- __u32 reserved;
-};
-
-/*
- * Description of a data or hash block to add to a data file.
- */
-struct incfs_fill_block {
- /* Index of a data block. */
- __u32 block_index;
-
- /* Length of data */
- __u32 data_len;
-
- /*
- * A pointer to an actual data for the block.
- *
- * Equivalent to: __u8 *data;
- */
- __aligned_u64 data;
-
- /*
- * Compression algorithm used to compress the data block.
- * Values from enum incfs_compression_alg.
- */
- __u8 compression;
-
- /* Values from enum incfs_block_flags */
- __u8 flags;
-
- __u16 reserved1;
-
- __u32 reserved2;
-
- __aligned_u64 reserved3;
-};
-
-/*
- * Description of a number of blocks to add to a data file
- *
- * Argument for INCFS_IOC_FILL_BLOCKS
- */
-struct incfs_fill_blocks {
- /* Number of blocks */
- __u64 count;
-
- /* A pointer to an array of incfs_fill_block structs */
- __aligned_u64 fill_blocks;
-};
-
-/*
- * Permit INCFS_IOC_FILL_BLOCKS on the given file descriptor
- * May only be called on .pending_reads file
- *
- * Argument for INCFS_IOC_PERMIT_FILL
- */
-struct incfs_permit_fill {
- /* File to permit fills on */
- __u32 file_descriptor;
-};
-
-enum incfs_hash_tree_algorithm {
- INCFS_HASH_TREE_NONE = 0,
- INCFS_HASH_TREE_SHA256 = 1
-};
-
-/*
- * Create a new file or directory.
- */
-struct incfs_new_file_args {
- /* Id of a file to create. */
- incfs_uuid_t file_id;
-
- /*
- * Total size of the new file. Ignored if S_ISDIR(mode).
- */
- __aligned_u64 size;
-
- /*
- * File mode. Permissions and dir flag.
- */
- __u16 mode;
-
- __u16 reserved1;
-
- __u32 reserved2;
-
- /*
- * A pointer to a null-terminated relative path to the file's parent
- * dir.
- * Max length: PATH_MAX
- *
- * Equivalent to: char *directory_path;
- */
- __aligned_u64 directory_path;
-
- /*
- * A pointer to a null-terminated file's name.
- * Max length: PATH_MAX
- *
- * Equivalent to: char *file_name;
- */
- __aligned_u64 file_name;
-
- /*
- * A pointer to a file attribute to be set on creation.
- *
- * Equivalent to: u8 *file_attr;
- */
- __aligned_u64 file_attr;
-
- /*
- * Length of the data buffer specfied by file_attr.
- * Max value: INCFS_MAX_FILE_ATTR_SIZE
- */
- __u32 file_attr_len;
-
- __u32 reserved4;
-
- /*
- * Points to an APK V4 Signature data blob
- * Signature must have two sections
- * Format is:
- * u32 version
- * u32 size_of_hash_info_section
- * u8 hash_info_section[]
- * u32 size_of_signing_info_section
- * u8 signing_info_section[]
- *
- * Note that incfs does not care about what is in signing_info_section
- *
- * hash_info_section has following format:
- * u32 hash_algorithm; // Must be SHA256 == 1
- * u8 log2_blocksize; // Must be 12 for 4096 byte blocks
- * u32 salt_size;
- * u8 salt[];
- * u32 hash_size;
- * u8 root_hash[];
- */
- __aligned_u64 signature_info;
-
- /* Size of signature_info */
- __aligned_u64 signature_size;
-
- __aligned_u64 reserved6;
-};
-
-/*
- * Request a digital signature blob for a given file.
- * Argument for INCFS_IOC_READ_FILE_SIGNATURE ioctl
- */
-struct incfs_get_file_sig_args {
- /*
- * A pointer to the data buffer to save an signature blob to.
- *
- * Equivalent to: u8 *file_signature;
- */
- __aligned_u64 file_signature;
-
- /* Size of the buffer at file_signature. */
- __u32 file_signature_buf_size;
-
- /*
- * Number of bytes save file_signature buffer.
- * It is set after ioctl done.
- */
- __u32 file_signature_len_out;
-};
-
-struct incfs_filled_range {
- __u32 begin;
- __u32 end;
-};
-
-/*
- * Request ranges of filled blocks
- * Argument for INCFS_IOC_GET_FILLED_BLOCKS
- */
-struct incfs_get_filled_blocks_args {
- /*
- * A buffer to populate with ranges of filled blocks
- *
- * Equivalent to struct incfs_filled_ranges *range_buffer
- */
- __aligned_u64 range_buffer;
-
- /* Size of range_buffer */
- __u32 range_buffer_size;
-
- /* Start index to read from */
- __u32 start_index;
-
- /*
- * End index to read to. 0 means read to end. This is a range,
- * so incfs will read from start_index to end_index - 1
- */
- __u32 end_index;
-
- /* Actual number of blocks in file */
- __u32 total_blocks_out;
-
- /* The number of data blocks in file */
- __u32 data_blocks_out;
-
- /* Number of bytes written to range buffer */
- __u32 range_buffer_size_out;
-
- /* Sector scanned up to, if the call was interrupted */
- __u32 index_out;
-};
-
-/*
- * Create a new mapped file
- * Argument for INCFS_IOC_CREATE_MAPPED_FILE
- */
-struct incfs_create_mapped_file_args {
- /*
- * Total size of the new file.
- */
- __aligned_u64 size;
-
- /*
- * File mode. Permissions and dir flag.
- */
- __u16 mode;
-
- __u16 reserved1;
-
- __u32 reserved2;
-
- /*
- * A pointer to a null-terminated relative path to the incfs mount
- * point
- * Max length: PATH_MAX
- *
- * Equivalent to: char *directory_path;
- */
- __aligned_u64 directory_path;
-
- /*
- * A pointer to a null-terminated file name.
- * Max length: PATH_MAX
- *
- * Equivalent to: char *file_name;
- */
- __aligned_u64 file_name;
-
- /* Id of source file to map. */
- incfs_uuid_t source_file_id;
-
- /*
- * Offset in source file to start mapping. Must be a multiple of
- * INCFS_DATA_FILE_BLOCK_SIZE
- */
- __aligned_u64 source_offset;
-};
-
-/*
- * Get information about the blocks in this file
- * Argument for INCFS_IOC_GET_BLOCK_COUNT
- */
-struct incfs_get_block_count_args {
- /* Total number of data blocks in the file */
- __u32 total_data_blocks_out;
-
- /* Number of filled data blocks in the file */
- __u32 filled_data_blocks_out;
-
- /* Total number of hash blocks in the file */
- __u32 total_hash_blocks_out;
-
- /* Number of filled hash blocks in the file */
- __u32 filled_hash_blocks_out;
-};
-
-/* Description of timeouts for one UID */
-struct incfs_per_uid_read_timeouts {
- /* UID to apply these timeouts to */
- __u32 uid;
-
- /*
- * Min time in microseconds to read any block. Note that this doesn't
- * apply to reads which are satisfied from the page cache.
- */
- __u32 min_time_us;
-
- /*
- * Min time in microseconds to satisfy a pending read. Any pending read
- * which is filled before this time will be delayed so that the total
- * read time >= this value.
- */
- __u32 min_pending_time_us;
-
- /*
- * Max time in microseconds to satisfy a pending read before the read
- * times out. If set to U32_MAX, defaults to mount options
- * read_timeout_ms * 1000. Must be >= min_pending_time_us
- */
- __u32 max_pending_time_us;
-};
-
-/*
- * Get the read timeouts array
- * Argument for INCFS_IOC_GET_READ_TIMEOUTS
- */
-struct incfs_get_read_timeouts_args {
- /*
- * A pointer to a buffer to fill with the current timeouts
- *
- * Equivalent to struct incfs_per_uid_read_timeouts *
- */
- __aligned_u64 timeouts_array;
-
- /* Size of above buffer in bytes */
- __u32 timeouts_array_size;
-
- /* Size used in bytes, or size needed if -ENOMEM returned */
- __u32 timeouts_array_size_out;
-};
-
-/*
- * Set the read timeouts array
- * Arguments for INCFS_IOC_SET_READ_TIMEOUTS
- */
-struct incfs_set_read_timeouts_args {
- /*
- * A pointer to an array containing the new timeouts
- * This will replace any existing timeouts
- *
- * Equivalent to struct incfs_per_uid_read_timeouts *
- */
- __aligned_u64 timeouts_array;
-
- /* Size of above array in bytes. Must be < 256 */
- __u32 timeouts_array_size;
-};
-
-/*
- * Get last read error struct
- * Arguments for INCFS_IOC_GET_LAST_READ_ERROR
- */
-struct incfs_get_last_read_error_args {
- /* File id of last file that had a read error */
- incfs_uuid_t file_id_out;
-
- /* Time of last read error, in us, from CLOCK_MONOTONIC */
- __u64 time_us_out;
-
- /* Index of page that was being read at last read error */
- __u32 page_out;
-
- /* errno of last read error */
- __u32 errno_out;
-
- __u64 reserved;
-};
-
-#endif /* _UAPI_LINUX_INCREMENTALFS_H */
diff --git a/original/uapi/linux/inet_diag.h b/original/uapi/linux/inet_diag.h
index 20ee93f..a1ff345 100644
--- a/original/uapi/linux/inet_diag.h
+++ b/original/uapi/linux/inet_diag.h
@@ -64,12 +64,9 @@ struct inet_diag_req_raw {
enum {
INET_DIAG_REQ_NONE,
INET_DIAG_REQ_BYTECODE,
- INET_DIAG_REQ_SK_BPF_STORAGES,
- INET_DIAG_REQ_PROTOCOL,
- __INET_DIAG_REQ_MAX,
};
-#define INET_DIAG_REQ_MAX (__INET_DIAG_REQ_MAX - 1)
+#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
/* Bytecode is sequence of 4 byte commands followed by variable arguments.
* All the commands identified by "code" are conditional jumps forward:
@@ -97,7 +94,6 @@ enum {
INET_DIAG_BC_MARK_COND,
INET_DIAG_BC_S_EQ,
INET_DIAG_BC_D_EQ,
- INET_DIAG_BC_CGROUP_COND, /* u64 cgroup v2 ID */
};
struct inet_diag_hostcond {
@@ -158,9 +154,6 @@ enum {
INET_DIAG_CLASS_ID, /* request as INET_DIAG_TCLASS */
INET_DIAG_MD5SIG,
INET_DIAG_ULP_INFO,
- INET_DIAG_SK_BPF_STORAGES,
- INET_DIAG_CGROUP_ID,
- INET_DIAG_SOCKOPT,
__INET_DIAG_MAX,
};
@@ -170,7 +163,6 @@ enum {
INET_ULP_INFO_UNSPEC,
INET_ULP_INFO_NAME,
INET_ULP_INFO_TLS,
- INET_ULP_INFO_MPTCP,
__INET_ULP_INFO_MAX,
};
#define INET_ULP_INFO_MAX (__INET_ULP_INFO_MAX - 1)
@@ -184,23 +176,6 @@ struct inet_diag_meminfo {
__u32 idiag_tmem;
};
-/* INET_DIAG_SOCKOPT */
-
-struct inet_diag_sockopt {
- __u8 recverr:1,
- is_icsk:1,
- freebind:1,
- hdrincl:1,
- mc_loop:1,
- transparent:1,
- mc_all:1,
- nodefrag:1;
- __u8 bind_address_no_port:1,
- recverr_rfc4884:1,
- defer_connect:1,
- unused:5;
-};
-
/* INET_DIAG_VEGASINFO */
struct tcpvegas_info {
diff --git a/original/uapi/linux/input-event-codes.h b/original/uapi/linux/input-event-codes.h
index ee93428..69a1b64 100644
--- a/original/uapi/linux/input-event-codes.h
+++ b/original/uapi/linux/input-event-codes.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Input event codes
*
@@ -515,9 +515,6 @@
#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */
#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */
#define KEY_IMAGES 0x1ba /* AL Image Browser */
-#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */
-#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */
-#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */
#define KEY_DEL_EOL 0x1c0
#define KEY_DEL_EOS 0x1c1
@@ -545,7 +542,6 @@
#define KEY_FN_F 0x1e2
#define KEY_FN_S 0x1e3
#define KEY_FN_B 0x1e4
-#define KEY_FN_RIGHT_SHIFT 0x1e5
#define KEY_BRL_DOT1 0x1f1
#define KEY_BRL_DOT2 0x1f2
@@ -656,9 +652,6 @@
/* Electronic privacy screen control */
#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
-/* Select an area of screen to be copied */
-#define KEY_SELECTIVE_SCREENSHOT 0x27a
-
/*
* Some keyboards have keys which do not have a defined meaning, these keys
* are intended to be programmed / bound to macros by the user. For most
@@ -892,8 +885,10 @@
#define SW_LINEIN_INSERT 0x0d /* set = inserted */
#define SW_MUTE_DEVICE 0x0e /* set = device disabled */
#define SW_PEN_INSERTED 0x0f /* set = pen inserted */
-#define SW_MACHINE_COVER 0x10 /* set = cover closed */
-#define SW_MAX 0x10
+#define SW_HPHL_OVERCURRENT 0x10 /* set = over current on left hph */
+#define SW_HPHR_OVERCURRENT 0x11 /* set = over current on right hph */
+#define SW_UNSUPPORT_INSERT 0x12 /* set = unsupported device inserted */
+#define SW_MAX 0x20
#define SW_CNT (SW_MAX+1)
/*
diff --git a/original/uapi/linux/input.h b/original/uapi/linux/input.h
index ee31274..9a61c28 100644
--- a/original/uapi/linux/input.h
+++ b/original/uapi/linux/input.h
@@ -84,7 +84,7 @@ struct input_id {
* 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
+ * 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 {
diff --git a/original/uapi/linux/io_uring.h b/original/uapi/linux/io_uring.h
index 2514eb6..55cfcb7 100644
--- a/original/uapi/linux/io_uring.h
+++ b/original/uapi/linux/io_uring.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Header file for the io_uring interface.
*
@@ -23,70 +23,32 @@ struct io_uring_sqe {
__u64 off; /* offset into file */
__u64 addr2;
};
- union {
- __u64 addr; /* pointer to buffer or iovecs */
- __u64 splice_off_in;
- };
+ __u64 addr; /* pointer to buffer or iovecs */
__u32 len; /* buffer size or number of iovecs */
union {
__kernel_rwf_t rw_flags;
__u32 fsync_flags;
- __u16 poll_events; /* compatibility */
- __u32 poll32_events; /* word-reversed for BE */
+ __u16 poll_events;
__u32 sync_range_flags;
__u32 msg_flags;
__u32 timeout_flags;
__u32 accept_flags;
__u32 cancel_flags;
- __u32 open_flags;
- __u32 statx_flags;
- __u32 fadvise_advice;
- __u32 splice_flags;
- __u32 rename_flags;
- __u32 unlink_flags;
};
__u64 user_data; /* data to be passed back at completion time */
union {
- struct {
- /* pack this to avoid bogus arm OABI complaints */
- union {
- /* index into fixed buffers, if used */
- __u16 buf_index;
- /* for grouped buffer selection */
- __u16 buf_group;
- } __attribute__((packed));
- /* personality to use, if used */
- __u16 personality;
- __s32 splice_fd_in;
- };
+ __u16 buf_index; /* index into fixed buffers, if used */
__u64 __pad2[3];
};
};
-enum {
- IOSQE_FIXED_FILE_BIT,
- IOSQE_IO_DRAIN_BIT,
- IOSQE_IO_LINK_BIT,
- IOSQE_IO_HARDLINK_BIT,
- IOSQE_ASYNC_BIT,
- IOSQE_BUFFER_SELECT_BIT,
-};
-
/*
* sqe->flags
*/
-/* use fixed fileset */
-#define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT)
-/* issue after inflight IO */
-#define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT)
-/* links next sqe */
-#define IOSQE_IO_LINK (1U << IOSQE_IO_LINK_BIT)
-/* like LINK, but stronger */
-#define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
-/* always go async */
-#define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
-/* select buffer from sqe->buf_group */
-#define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
+#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
+#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
+#define IOSQE_IO_LINK (1U << 2) /* links next sqe */
+#define IOSQE_IO_HARDLINK (1U << 3) /* like LINK, but stronger */
/*
* io_uring_setup() flags
@@ -95,9 +57,6 @@ enum {
#define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */
#define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */
#define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */
-#define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */
-#define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */
-#define IORING_SETUP_R_DISABLED (1U << 6) /* start with ring disabled */
enum {
IORING_OP_NOP,
@@ -117,26 +76,6 @@ enum {
IORING_OP_ASYNC_CANCEL,
IORING_OP_LINK_TIMEOUT,
IORING_OP_CONNECT,
- IORING_OP_FALLOCATE,
- IORING_OP_OPENAT,
- IORING_OP_CLOSE,
- IORING_OP_FILES_UPDATE,
- IORING_OP_STATX,
- IORING_OP_READ,
- IORING_OP_WRITE,
- IORING_OP_FADVISE,
- IORING_OP_MADVISE,
- IORING_OP_SEND,
- IORING_OP_RECV,
- IORING_OP_OPENAT2,
- IORING_OP_EPOLL_CTL,
- IORING_OP_SPLICE,
- IORING_OP_PROVIDE_BUFFERS,
- IORING_OP_REMOVE_BUFFERS,
- IORING_OP_TEE,
- IORING_OP_SHUTDOWN,
- IORING_OP_RENAMEAT,
- IORING_OP_UNLINKAT,
/* this goes last, obviously */
IORING_OP_LAST,
@@ -151,13 +90,6 @@ enum {
* sqe->timeout_flags
*/
#define IORING_TIMEOUT_ABS (1U << 0)
-#define IORING_TIMEOUT_UPDATE (1U << 1)
-
-/*
- * sqe->splice_flags
- * extends splice(2) flags
- */
-#define SPLICE_F_FD_IN_FIXED (1U << 31) /* the last bit of __u32 */
/*
* IO completion data structure (Completion Queue Entry)
@@ -169,17 +101,6 @@ struct io_uring_cqe {
};
/*
- * cqe->flags
- *
- * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID
- */
-#define IORING_CQE_F_BUFFER (1U << 0)
-
-enum {
- IORING_CQE_BUFFER_SHIFT = 16,
-};
-
-/*
* Magic offsets for the application to mmap the data it needs
*/
#define IORING_OFF_SQ_RING 0ULL
@@ -205,7 +126,6 @@ struct io_sqring_offsets {
* sq_ring->flags
*/
#define IORING_SQ_NEED_WAKEUP (1U << 0) /* needs io_uring_enter wakeup */
-#define IORING_SQ_CQ_OVERFLOW (1U << 1) /* CQ ring is overflown */
struct io_cqring_offsets {
__u32 head;
@@ -214,25 +134,14 @@ struct io_cqring_offsets {
__u32 ring_entries;
__u32 overflow;
__u32 cqes;
- __u32 flags;
- __u32 resv1;
- __u64 resv2;
+ __u64 resv[2];
};
/*
- * cq_ring->flags
- */
-
-/* disable eventfd notifications */
-#define IORING_CQ_EVENTFD_DISABLED (1U << 0)
-
-/*
* io_uring_enter(2) flags
*/
#define IORING_ENTER_GETEVENTS (1U << 0)
#define IORING_ENTER_SQ_WAKEUP (1U << 1)
-#define IORING_ENTER_SQ_WAIT (1U << 2)
-#define IORING_ENTER_EXT_ARG (1U << 3)
/*
* Passed in for io_uring_setup(2). Copied back with updated info on success
@@ -244,8 +153,7 @@ struct io_uring_params {
__u32 sq_thread_cpu;
__u32 sq_thread_idle;
__u32 features;
- __u32 wq_fd;
- __u32 resv[3];
+ __u32 resv[4];
struct io_sqring_offsets sq_off;
struct io_cqring_offsets cq_off;
};
@@ -256,104 +164,22 @@ struct io_uring_params {
#define IORING_FEAT_SINGLE_MMAP (1U << 0)
#define IORING_FEAT_NODROP (1U << 1)
#define IORING_FEAT_SUBMIT_STABLE (1U << 2)
-#define IORING_FEAT_RW_CUR_POS (1U << 3)
-#define IORING_FEAT_CUR_PERSONALITY (1U << 4)
-#define IORING_FEAT_FAST_POLL (1U << 5)
-#define IORING_FEAT_POLL_32BITS (1U << 6)
-#define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
-#define IORING_FEAT_EXT_ARG (1U << 8)
-#define IORING_FEAT_NATIVE_WORKERS (1U << 9)
/*
* io_uring_register(2) opcodes and arguments
*/
-enum {
- IORING_REGISTER_BUFFERS = 0,
- IORING_UNREGISTER_BUFFERS = 1,
- IORING_REGISTER_FILES = 2,
- IORING_UNREGISTER_FILES = 3,
- IORING_REGISTER_EVENTFD = 4,
- IORING_UNREGISTER_EVENTFD = 5,
- IORING_REGISTER_FILES_UPDATE = 6,
- IORING_REGISTER_EVENTFD_ASYNC = 7,
- IORING_REGISTER_PROBE = 8,
- IORING_REGISTER_PERSONALITY = 9,
- IORING_UNREGISTER_PERSONALITY = 10,
- IORING_REGISTER_RESTRICTIONS = 11,
- IORING_REGISTER_ENABLE_RINGS = 12,
-
- /* this goes last */
- IORING_REGISTER_LAST
-};
+#define IORING_REGISTER_BUFFERS 0
+#define IORING_UNREGISTER_BUFFERS 1
+#define IORING_REGISTER_FILES 2
+#define IORING_UNREGISTER_FILES 3
+#define IORING_REGISTER_EVENTFD 4
+#define IORING_UNREGISTER_EVENTFD 5
+#define IORING_REGISTER_FILES_UPDATE 6
-/* deprecated, see struct io_uring_rsrc_update */
struct io_uring_files_update {
__u32 offset;
__u32 resv;
__aligned_u64 /* __s32 * */ fds;
};
-struct io_uring_rsrc_update {
- __u32 offset;
- __u32 resv;
- __aligned_u64 data;
-};
-
-/* Skip updating fd indexes set to this value in the fd table */
-#define IORING_REGISTER_FILES_SKIP (-2)
-
-#define IO_URING_OP_SUPPORTED (1U << 0)
-
-struct io_uring_probe_op {
- __u8 op;
- __u8 resv;
- __u16 flags; /* IO_URING_OP_* flags */
- __u32 resv2;
-};
-
-struct io_uring_probe {
- __u8 last_op; /* last opcode supported */
- __u8 ops_len; /* length of ops[] array below */
- __u16 resv;
- __u32 resv2[3];
- struct io_uring_probe_op ops[0];
-};
-
-struct io_uring_restriction {
- __u16 opcode;
- union {
- __u8 register_op; /* IORING_RESTRICTION_REGISTER_OP */
- __u8 sqe_op; /* IORING_RESTRICTION_SQE_OP */
- __u8 sqe_flags; /* IORING_RESTRICTION_SQE_FLAGS_* */
- };
- __u8 resv;
- __u32 resv2[3];
-};
-
-/*
- * io_uring_restriction->opcode values
- */
-enum {
- /* Allow an io_uring_register(2) opcode */
- IORING_RESTRICTION_REGISTER_OP = 0,
-
- /* Allow an sqe opcode */
- IORING_RESTRICTION_SQE_OP = 1,
-
- /* Allow sqe flags */
- IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
-
- /* Require sqe flags (these flags must be set on each submission) */
- IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
-
- IORING_RESTRICTION_LAST
-};
-
-struct io_uring_getevents_arg {
- __u64 sigmask;
- __u32 sigmask_sz;
- __u32 pad;
- __u64 ts;
-};
-
#endif
diff --git a/original/uapi/linux/iommu.h b/original/uapi/linux/iommu.h
index e1d9e75..4ad3496 100644
--- a/original/uapi/linux/iommu.h
+++ b/original/uapi/linux/iommu.h
@@ -81,10 +81,7 @@ struct iommu_fault_unrecoverable {
/**
* struct iommu_fault_page_request - Page Request data
* @flags: encodes whether the corresponding fields are valid and whether this
- * is the last page in group (IOMMU_FAULT_PAGE_REQUEST_* values).
- * When IOMMU_FAULT_PAGE_RESPONSE_NEEDS_PASID is set, the page response
- * must have the same PASID value as the page request. When it is clear,
- * the page response should not have a PASID.
+ * is the last page in group (IOMMU_FAULT_PAGE_REQUEST_* values)
* @pasid: Process Address Space ID
* @grpid: Page Request Group Index
* @perm: requested page permissions (IOMMU_FAULT_PERM_* values)
@@ -95,7 +92,6 @@ struct iommu_fault_page_request {
#define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0)
#define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1)
#define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2)
-#define IOMMU_FAULT_PAGE_RESPONSE_NEEDS_PASID (1 << 3)
__u32 flags;
__u32 pasid;
__u32 grpid;
@@ -139,7 +135,6 @@ enum iommu_page_response_code {
/**
* struct iommu_page_response - Generic page response information
- * @argsz: User filled size of this data
* @version: API version of this structure
* @flags: encodes whether the corresponding fields are valid
* (IOMMU_FAULT_PAGE_RESPONSE_* values)
@@ -148,7 +143,6 @@ enum iommu_page_response_code {
* @code: response code from &enum iommu_page_response_code
*/
struct iommu_page_response {
- __u32 argsz;
#define IOMMU_PAGE_RESP_VERSION_1 1
__u32 version;
#define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
@@ -224,7 +218,6 @@ struct iommu_inv_pasid_info {
/**
* struct iommu_cache_invalidate_info - First level/stage invalidation
* information
- * @argsz: User filled size of this data
* @version: API version of this structure
* @cache: bitfield that allows to select which caches to invalidate
* @granularity: defines the lowest granularity used for the invalidation:
@@ -253,7 +246,6 @@ struct iommu_inv_pasid_info {
* must support the used granularity.
*/
struct iommu_cache_invalidate_info {
- __u32 argsz;
#define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1
__u32 version;
/* IOMMU paging structure cache */
@@ -263,11 +255,11 @@ struct iommu_cache_invalidate_info {
#define IOMMU_CACHE_INV_TYPE_NR (3)
__u8 cache;
__u8 granularity;
- __u8 padding[6];
+ __u8 padding[2];
union {
struct iommu_inv_pasid_info pasid_info;
struct iommu_inv_addr_info addr_info;
- } granu;
+ };
};
/**
@@ -288,20 +280,13 @@ struct iommu_gpasid_bind_data_vtd {
#define IOMMU_SVA_VTD_GPASID_PWT (1 << 3) /* page-level write through */
#define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4) /* extended mem type enable */
#define IOMMU_SVA_VTD_GPASID_CD (1 << 5) /* PASID-level cache disable */
-#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6)
__u64 flags;
__u32 pat;
__u32 emt;
};
-#define IOMMU_SVA_VTD_GPASID_MTS_MASK (IOMMU_SVA_VTD_GPASID_CD | \
- IOMMU_SVA_VTD_GPASID_EMTE | \
- IOMMU_SVA_VTD_GPASID_PCD | \
- IOMMU_SVA_VTD_GPASID_PWT)
-
/**
* struct iommu_gpasid_bind_data - Information about device and guest PASID binding
- * @argsz: User filled size of this data
* @version: Version of this data structure
* @format: PASID table entry format
* @flags: Additional information on guest bind request
@@ -319,23 +304,21 @@ struct iommu_gpasid_bind_data_vtd {
* PASID to host PASID based on this bind data.
*/
struct iommu_gpasid_bind_data {
- __u32 argsz;
#define IOMMU_GPASID_BIND_VERSION_1 1
__u32 version;
#define IOMMU_PASID_FORMAT_INTEL_VTD 1
-#define IOMMU_PASID_FORMAT_LAST 2
__u32 format;
- __u32 addr_width;
#define IOMMU_SVA_GPASID_VAL (1 << 0) /* guest PASID valid */
__u64 flags;
__u64 gpgd;
__u64 hpasid;
__u64 gpasid;
- __u8 padding[8];
+ __u32 addr_width;
+ __u8 padding[12];
/* Vendor specific data */
union {
struct iommu_gpasid_bind_data_vtd vtd;
- } vendor;
+ };
};
#endif /* _UAPI_IOMMU_H */
diff --git a/original/uapi/linux/ipmi_msgdefs.h b/original/uapi/linux/ipmi_msgdefs.h
index 0934af3..c2b23a9 100644
--- a/original/uapi/linux/ipmi_msgdefs.h
+++ b/original/uapi/linux/ipmi_msgdefs.h
@@ -69,8 +69,6 @@
#define IPMI_ERR_MSG_TRUNCATED 0xc6
#define IPMI_REQ_LEN_INVALID_ERR 0xc7
#define IPMI_REQ_LEN_EXCEEDED_ERR 0xc8
-#define IPMI_DEVICE_IN_FW_UPDATE_ERR 0xd1
-#define IPMI_DEVICE_IN_INIT_ERR 0xd2
#define IPMI_NOT_IN_MY_STATE_ERR 0xd5 /* IPMI 2.0 */
#define IPMI_LOST_ARBITRATION_ERR 0x81
#define IPMI_BUS_ERR 0x82
diff --git a/original/uapi/linux/ipv6.h b/original/uapi/linux/ipv6.h
index 7060377..9c0f4a9 100644
--- a/original/uapi/linux/ipv6.h
+++ b/original/uapi/linux/ipv6.h
@@ -40,7 +40,6 @@ struct in6_ifreq {
#define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */
#define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */
#define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */
-#define IPV6_SRCRT_TYPE_3 3 /* RPL Segment Routing with IPv6 */
#define IPV6_SRCRT_TYPE_4 4 /* Segment Routing with IPv6 */
/*
@@ -188,8 +187,6 @@ enum {
DEVCONF_DISABLE_POLICY,
DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN,
DEVCONF_NDISC_TCLASS,
- DEVCONF_RPL_SEG_ENABLED,
- DEVCONF_RA_DEFRTR_METRIC,
DEVCONF_MAX
};
diff --git a/original/uapi/linux/isst_if.h b/original/uapi/linux/isst_if.h
index ba078f8..0a52b7b 100644
--- a/original/uapi/linux/isst_if.h
+++ b/original/uapi/linux/isst_if.h
@@ -69,7 +69,7 @@ struct isst_if_cpu_maps {
* @logical_cpu: Logical CPU number to get target PCI device.
* @reg: PUNIT register offset
* @value: For write operation value to write and for
- * read placeholder read value
+ * for read placeholder read value
*
* Structure to specify read/write data to PUNIT registers.
*/
diff --git a/original/uapi/linux/kd.h b/original/uapi/linux/kd.h
index ee929ec..4616b31 100644
--- a/original/uapi/linux/kd.h
+++ b/original/uapi/linux/kd.h
@@ -173,7 +173,7 @@ struct console_font {
#define KD_FONT_OP_SET 0 /* Set font */
#define KD_FONT_OP_GET 1 /* Get font */
#define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to name / NULL */
-#define KD_FONT_OP_COPY 3 /* Obsolete, do not use */
+#define KD_FONT_OP_COPY 3 /* Copy from another console */
#define KD_FONT_FLAG_DONT_RECALC 1 /* Don't recalculate hw charcell size [compat] */
diff --git a/original/uapi/linux/kernel.h b/original/uapi/linux/kernel.h
index fadf2db..0ff8f74 100644
--- a/original/uapi/linux/kernel.h
+++ b/original/uapi/linux/kernel.h
@@ -3,6 +3,13 @@
#define _UAPI_LINUX_KERNEL_H
#include <linux/sysinfo.h>
-#include <linux/const.h>
+
+/*
+ * 'kernel.h' contains some often-used function prototypes etc
+ */
+#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
+#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
+
+#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
#endif /* _UAPI_LINUX_KERNEL_H */
diff --git a/original/uapi/linux/keyboard.h b/original/uapi/linux/keyboard.h
index 36d230c..4846716 100644
--- a/original/uapi/linux/keyboard.h
+++ b/original/uapi/linux/keyboard.h
@@ -27,6 +27,7 @@
#define MAX_NR_FUNC 256 /* max nr of strings assigned to keys */
#define KT_LATIN 0 /* we depend on this being zero */
+#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */
#define KT_FN 1
#define KT_SPEC 2
#define KT_PAD 3
@@ -37,7 +38,6 @@
#define KT_META 8
#define KT_ASCII 9
#define KT_LOCK 10
-#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */
#define KT_SLOCK 12
#define KT_DEAD2 13
#define KT_BRL 14
diff --git a/original/uapi/linux/keyctl.h b/original/uapi/linux/keyctl.h
index 4c8884e..ed3d589 100644
--- a/original/uapi/linux/keyctl.h
+++ b/original/uapi/linux/keyctl.h
@@ -69,7 +69,6 @@
#define KEYCTL_RESTRICT_KEYRING 29 /* Restrict keys allowed to link to a keyring */
#define KEYCTL_MOVE 30 /* Move keys between keyrings */
#define KEYCTL_CAPABILITIES 31 /* Find capabilities of keyrings subsystem */
-#define KEYCTL_WATCH_KEY 32 /* Watch a key or ring of keys for changes */
/* keyctl structures */
struct keyctl_dh_params {
@@ -131,6 +130,5 @@ struct keyctl_pkey_params {
#define KEYCTL_CAPS0_MOVE 0x80 /* KEYCTL_MOVE supported */
#define KEYCTL_CAPS1_NS_KEYRING_NAME 0x01 /* Keyring names are per-user_namespace */
#define KEYCTL_CAPS1_NS_KEY_TAG 0x02 /* Key indexing can include a namespace tag */
-#define KEYCTL_CAPS1_NOTIFICATIONS 0x04 /* Keys generate watchable notifications */
#endif /* _LINUX_KEYCTL_H */
diff --git a/original/uapi/linux/kfd_ioctl.h b/original/uapi/linux/kfd_ioctl.h
index 695b606..20917c5 100644
--- a/original/uapi/linux/kfd_ioctl.h
+++ b/original/uapi/linux/kfd_ioctl.h
@@ -26,12 +26,8 @@
#include <drm/drm.h>
#include <linux/ioctl.h>
-/*
- * - 1.1 - initial version
- * - 1.3 - Add SMI events support
- */
#define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 3
+#define KFD_IOCTL_MINOR_VERSION 1
struct kfd_ioctl_get_version_args {
__u32 major_version; /* from KFD */
@@ -255,7 +251,7 @@ struct kfd_memory_exception_failure {
__u32 imprecise; /* Can't determine the exact fault address */
};
-/* memory exception data */
+/* memory exception data*/
struct kfd_hsa_memory_exception_data {
struct kfd_memory_exception_failure failure;
__u64 va;
@@ -414,20 +410,6 @@ struct kfd_ioctl_unmap_memory_from_gpu_args {
__u32 n_success; /* to/from KFD */
};
-/* Allocate GWS for specific queue
- *
- * @queue_id: queue's id that GWS is allocated for
- * @num_gws: how many GWS to allocate
- * @first_gws: index of the first GWS allocated.
- * only support contiguous GWS allocation
- */
-struct kfd_ioctl_alloc_queue_gws_args {
- __u32 queue_id; /* to KFD */
- __u32 num_gws; /* to KFD */
- __u32 first_gws; /* from KFD */
- __u32 pad;
-};
-
struct kfd_ioctl_get_dmabuf_info_args {
__u64 size; /* from KFD */
__u64 metadata_ptr; /* to KFD */
@@ -446,24 +428,6 @@ struct kfd_ioctl_import_dmabuf_args {
__u32 dmabuf_fd; /* to KFD */
};
-/*
- * KFD SMI(System Management Interface) events
- */
-enum kfd_smi_event {
- KFD_SMI_EVENT_NONE = 0, /* not used */
- KFD_SMI_EVENT_VMFAULT = 1, /* event start counting at 1 */
- KFD_SMI_EVENT_THERMAL_THROTTLE = 2,
- KFD_SMI_EVENT_GPU_PRE_RESET = 3,
- KFD_SMI_EVENT_GPU_POST_RESET = 4,
-};
-
-#define KFD_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1))
-
-struct kfd_ioctl_smi_events_args {
- __u32 gpuid; /* to KFD */
- __u32 anon_fd; /* from KFD */
-};
-
/* Register offset inside the remapped mmio page
*/
enum kfd_mmio_remap {
@@ -565,13 +529,7 @@ enum kfd_mmio_remap {
#define AMDKFD_IOC_IMPORT_DMABUF \
AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
-#define AMDKFD_IOC_ALLOC_QUEUE_GWS \
- AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
-
-#define AMDKFD_IOC_SMI_EVENTS \
- AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
-
#define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x20
+#define AMDKFD_COMMAND_END 0x1E
#endif
diff --git a/original/uapi/linux/kvm.h b/original/uapi/linux/kvm.h
index f6afee2..f0a16b4 100644
--- a/original/uapi/linux/kvm.h
+++ b/original/uapi/linux/kvm.h
@@ -116,7 +116,7 @@ struct kvm_irq_level {
* ACPI gsi notion of irq.
* For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47..
* For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23..
- * For ARM: See Documentation/virt/kvm/api.rst
+ * For ARM: See Documentation/virt/kvm/api.txt
*/
union {
__u32 irq;
@@ -188,13 +188,10 @@ struct kvm_s390_cmma_log {
struct kvm_hyperv_exit {
#define KVM_EXIT_HYPERV_SYNIC 1
#define KVM_EXIT_HYPERV_HCALL 2
-#define KVM_EXIT_HYPERV_SYNDBG 3
__u32 type;
- __u32 pad1;
union {
struct {
__u32 msr;
- __u32 pad2;
__u64 control;
__u64 evt_page;
__u64 msg_page;
@@ -204,29 +201,6 @@ struct kvm_hyperv_exit {
__u64 result;
__u64 params[2];
} hcall;
- struct {
- __u32 msr;
- __u32 pad2;
- __u64 control;
- __u64 status;
- __u64 send_page;
- __u64 recv_page;
- __u64 pending_page;
- } syndbg;
- } u;
-};
-
-struct kvm_xen_exit {
-#define KVM_EXIT_XEN_HCALL 1
- __u32 type;
- union {
- struct {
- __u32 longmode;
- __u32 cpl;
- __u64 input;
- __u64 result;
- __u64 params[6];
- } hcall;
} u;
};
@@ -262,12 +236,6 @@ struct kvm_xen_exit {
#define KVM_EXIT_IOAPIC_EOI 26
#define KVM_EXIT_HYPERV 27
#define KVM_EXIT_ARM_NISV 28
-#define KVM_EXIT_X86_RDMSR 29
-#define KVM_EXIT_X86_WRMSR 30
-#define KVM_EXIT_DIRTY_RING_FULL 31
-#define KVM_EXIT_AP_RESET_HOLD 32
-#define KVM_EXIT_X86_BUS_LOCK 33
-#define KVM_EXIT_XEN 34
/* For KVM_EXIT_INTERNAL_ERROR */
/* Emulate instruction failed. */
@@ -309,7 +277,6 @@ struct kvm_run {
/* KVM_EXIT_FAIL_ENTRY */
struct {
__u64 hardware_entry_failure_reason;
- __u32 cpu;
} fail_entry;
/* KVM_EXIT_EXCEPTION */
struct {
@@ -433,19 +400,6 @@ struct kvm_run {
__u64 esr_iss;
__u64 fault_ipa;
} arm_nisv;
- /* KVM_EXIT_X86_RDMSR / KVM_EXIT_X86_WRMSR */
- struct {
- __u8 error; /* user -> kernel */
- __u8 pad[7];
-#define KVM_MSR_EXIT_REASON_INVAL (1 << 0)
-#define KVM_MSR_EXIT_REASON_UNKNOWN (1 << 1)
-#define KVM_MSR_EXIT_REASON_FILTER (1 << 2)
- __u32 reason; /* kernel -> user */
- __u32 index; /* kernel -> user */
- __u64 data; /* kernel <-> user */
- } msr;
- /* KVM_EXIT_XEN */
- struct kvm_xen_exit xen;
/* Fix the size of the union. */
char padding[256];
};
@@ -520,17 +474,12 @@ struct kvm_s390_mem_op {
__u32 size; /* amount of bytes */
__u32 op; /* type of operation */
__u64 buf; /* buffer in userspace */
- union {
- __u8 ar; /* the access register number */
- __u32 sida_offset; /* offset into the sida */
- __u8 reserved[32]; /* should be set to 0 */
- };
+ __u8 ar; /* the access register number */
+ __u8 reserved[31]; /* should be set to 0 */
};
/* types for kvm_s390_mem_op->op */
#define KVM_S390_MEMOP_LOGICAL_READ 0
#define KVM_S390_MEMOP_LOGICAL_WRITE 1
-#define KVM_S390_MEMOP_SIDA_READ 2
-#define KVM_S390_MEMOP_SIDA_WRITE 3
/* flags for kvm_s390_mem_op->flags */
#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
@@ -592,7 +541,6 @@ struct kvm_vapic_addr {
#define KVM_MP_STATE_CHECK_STOP 6
#define KVM_MP_STATE_OPERATING 7
#define KVM_MP_STATE_LOAD 8
-#define KVM_MP_STATE_AP_RESET_HOLD 9
struct kvm_mp_state {
__u32 mp_state;
@@ -824,10 +772,9 @@ struct kvm_ppc_resize_hpt {
#define KVM_VM_PPC_HV 1
#define KVM_VM_PPC_PR 2
-/* on MIPS, 0 indicates auto, 1 forces VZ ASE, 2 forces trap & emulate */
-#define KVM_VM_MIPS_AUTO 0
+/* on MIPS, 0 forces trap & emulate, 1 forces VZ ASE */
+#define KVM_VM_MIPS_TE 0
#define KVM_VM_MIPS_VZ 1
-#define KVM_VM_MIPS_TE 2
#define KVM_S390_SIE_PAGE_OFFSET 1
@@ -1062,22 +1009,6 @@ struct kvm_ppc_resize_hpt {
#define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176
#define KVM_CAP_ARM_NISV_TO_USER 177
#define KVM_CAP_ARM_INJECT_EXT_DABT 178
-#define KVM_CAP_S390_VCPU_RESETS 179
-#define KVM_CAP_S390_PROTECTED 180
-#define KVM_CAP_PPC_SECURE_GUEST 181
-#define KVM_CAP_HALT_POLL 182
-#define KVM_CAP_ASYNC_PF_INT 183
-#define KVM_CAP_LAST_CPU 184
-#define KVM_CAP_SMALLER_MAXPHYADDR 185
-#define KVM_CAP_S390_DIAG318 186
-#define KVM_CAP_STEAL_TIME 187
-#define KVM_CAP_X86_USER_SPACE_MSR 188
-#define KVM_CAP_X86_MSR_FILTER 189
-#define KVM_CAP_ENFORCE_PV_FEATURE_CPUID 190
-#define KVM_CAP_SYS_HYPERV_CPUID 191
-#define KVM_CAP_DIRTY_LOG_RING 192
-#define KVM_CAP_X86_BUS_LOCK_EXIT 193
-#define KVM_CAP_PPC_DAWR1 194
#ifdef KVM_CAP_IRQ_ROUTING
@@ -1151,11 +1082,6 @@ struct kvm_x86_mce {
#endif
#ifdef KVM_CAP_XEN_HVM
-#define KVM_XEN_HVM_CONFIG_HYPERCALL_MSR (1 << 0)
-#define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
-#define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
-#define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
-
struct kvm_xen_hvm_config {
__u32 flags;
__u32 msr;
@@ -1173,7 +1099,7 @@ struct kvm_xen_hvm_config {
*
* KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
* the irqfd to operate in resampling mode for level triggered interrupt
- * emulation. See Documentation/virt/kvm/api.rst.
+ * emulation. See Documentation/virt/kvm/api.txt.
*/
#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
@@ -1541,106 +1467,12 @@ struct kvm_enc_region {
/* Available with KVM_CAP_MANUAL_DIRTY_LOG_PROTECT_2 */
#define KVM_CLEAR_DIRTY_LOG _IOWR(KVMIO, 0xc0, struct kvm_clear_dirty_log)
-/* Available with KVM_CAP_HYPERV_CPUID (vcpu) / KVM_CAP_SYS_HYPERV_CPUID (system) */
+/* Available with KVM_CAP_HYPERV_CPUID */
#define KVM_GET_SUPPORTED_HV_CPUID _IOWR(KVMIO, 0xc1, struct kvm_cpuid2)
/* Available with KVM_CAP_ARM_SVE */
#define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int)
-/* Available with KVM_CAP_S390_VCPU_RESETS */
-#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3)
-#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4)
-
-struct kvm_s390_pv_sec_parm {
- __u64 origin;
- __u64 length;
-};
-
-struct kvm_s390_pv_unp {
- __u64 addr;
- __u64 size;
- __u64 tweak;
-};
-
-enum pv_cmd_id {
- KVM_PV_ENABLE,
- KVM_PV_DISABLE,
- KVM_PV_SET_SEC_PARMS,
- KVM_PV_UNPACK,
- KVM_PV_VERIFY,
- KVM_PV_PREP_RESET,
- KVM_PV_UNSHARE_ALL,
-};
-
-struct kvm_pv_cmd {
- __u32 cmd; /* Command to be executed */
- __u16 rc; /* Ultravisor return code */
- __u16 rrc; /* Ultravisor return reason code */
- __u64 data; /* Data or address */
- __u32 flags; /* flags for future extensions. Must be 0 for now */
- __u32 reserved[3];
-};
-
-/* Available with KVM_CAP_S390_PROTECTED */
-#define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd)
-
-/* Available with KVM_CAP_X86_MSR_FILTER */
-#define KVM_X86_SET_MSR_FILTER _IOW(KVMIO, 0xc6, struct kvm_msr_filter)
-
-/* Available with KVM_CAP_DIRTY_LOG_RING */
-#define KVM_RESET_DIRTY_RINGS _IO(KVMIO, 0xc7)
-
-/* Per-VM Xen attributes */
-#define KVM_XEN_HVM_GET_ATTR _IOWR(KVMIO, 0xc8, struct kvm_xen_hvm_attr)
-#define KVM_XEN_HVM_SET_ATTR _IOW(KVMIO, 0xc9, struct kvm_xen_hvm_attr)
-
-struct kvm_xen_hvm_attr {
- __u16 type;
- __u16 pad[3];
- union {
- __u8 long_mode;
- __u8 vector;
- struct {
- __u64 gfn;
- } shared_info;
- __u64 pad[8];
- } u;
-};
-
-/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_SHARED_INFO */
-#define KVM_XEN_ATTR_TYPE_LONG_MODE 0x0
-#define KVM_XEN_ATTR_TYPE_SHARED_INFO 0x1
-#define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
-
-/* Per-vCPU Xen attributes */
-#define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
-#define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
-
-struct kvm_xen_vcpu_attr {
- __u16 type;
- __u16 pad[3];
- union {
- __u64 gpa;
- __u64 pad[8];
- struct {
- __u64 state;
- __u64 state_entry_time;
- __u64 time_running;
- __u64 time_runnable;
- __u64 time_blocked;
- __u64 time_offline;
- } runstate;
- } u;
-};
-
-/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_SHARED_INFO */
-#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO 0x0
-#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO 0x1
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR 0x2
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT 0x3
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA 0x4
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST 0x5
-
/* Secure Encrypted Virtualization command */
enum sev_cmd_id {
/* Guest initialization commands */
@@ -1669,8 +1501,6 @@ enum sev_cmd_id {
KVM_SEV_DBG_ENCRYPT,
/* Guest certificates commands */
KVM_SEV_CERT_EXPORT,
- /* Attestation report */
- KVM_SEV_GET_ATTESTATION_REPORT,
KVM_SEV_NR_MAX,
};
@@ -1723,12 +1553,6 @@ struct kvm_sev_dbg {
__u32 len;
};
-struct kvm_sev_attestation_report {
- __u8 mnonce[16];
- __u64 uaddr;
- __u32 len;
-};
-
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1799,58 +1623,4 @@ struct kvm_hyperv_eventfd {
#define KVM_HYPERV_CONN_ID_MASK 0x00ffffff
#define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0)
-#define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0)
-#define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1)
-
-/*
- * Arch needs to define the macro after implementing the dirty ring
- * feature. KVM_DIRTY_LOG_PAGE_OFFSET should be defined as the
- * starting page offset of the dirty ring structures.
- */
-#ifndef KVM_DIRTY_LOG_PAGE_OFFSET
-#define KVM_DIRTY_LOG_PAGE_OFFSET 0
-#endif
-
-/*
- * KVM dirty GFN flags, defined as:
- *
- * |---------------+---------------+--------------|
- * | bit 1 (reset) | bit 0 (dirty) | Status |
- * |---------------+---------------+--------------|
- * | 0 | 0 | Invalid GFN |
- * | 0 | 1 | Dirty GFN |
- * | 1 | X | GFN to reset |
- * |---------------+---------------+--------------|
- *
- * Lifecycle of a dirty GFN goes like:
- *
- * dirtied harvested reset
- * 00 -----------> 01 -------------> 1X -------+
- * ^ |
- * | |
- * +------------------------------------------+
- *
- * The userspace program is only responsible for the 01->1X state
- * conversion after harvesting an entry. Also, it must not skip any
- * dirty bits, so that dirty bits are always harvested in sequence.
- */
-#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
-#define KVM_DIRTY_GFN_F_RESET BIT(1)
-#define KVM_DIRTY_GFN_F_MASK 0x3
-
-/*
- * KVM dirty rings should be mapped at KVM_DIRTY_LOG_PAGE_OFFSET of
- * per-vcpu mmaped regions as an array of struct kvm_dirty_gfn. The
- * size of the gfn buffer is decided by the first argument when
- * enabling KVM_CAP_DIRTY_LOG_RING.
- */
-struct kvm_dirty_gfn {
- __u32 flags;
- __u32 slot;
- __u64 offset;
-};
-
-#define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
-#define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
-
#endif /* __LINUX_KVM_H */
diff --git a/original/uapi/linux/l2tp.h b/original/uapi/linux/l2tp.h
index bab8c97..61158f5 100644
--- a/original/uapi/linux/l2tp.h
+++ b/original/uapi/linux/l2tp.h
@@ -108,7 +108,7 @@ enum {
L2TP_ATTR_VLAN_ID, /* u16 (not used) */
L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
- L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags (not used) */
+ L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */
L2TP_ATTR_RECV_SEQ, /* u8 */
L2TP_ATTR_SEND_SEQ, /* u8 */
L2TP_ATTR_LNS_MODE, /* u8 */
@@ -144,8 +144,6 @@ enum {
L2TP_ATTR_RX_OOS_PACKETS, /* u64 */
L2TP_ATTR_RX_ERRORS, /* u64 */
L2TP_ATTR_STATS_PAD,
- L2TP_ATTR_RX_COOKIE_DISCARDS, /* u64 */
- L2TP_ATTR_RX_INVALID, /* u64 */
__L2TP_ATTR_STATS_MAX,
};
@@ -179,9 +177,7 @@ enum l2tp_seqmode {
};
/**
- * enum l2tp_debug_flags - debug message categories for L2TP tunnels/sessions.
- *
- * Unused.
+ * enum l2tp_debug_flags - debug message categories for L2TP tunnels/sessions
*
* @L2TP_MSG_DEBUG: verbose debug (if compiled in)
* @L2TP_MSG_CONTROL: userspace - kernel interface
diff --git a/original/uapi/linux/lightnvm.h b/original/uapi/linux/lightnvm.h
index ead2e72..f9a1be7 100644
--- a/original/uapi/linux/lightnvm.h
+++ b/original/uapi/linux/lightnvm.h
@@ -21,7 +21,7 @@
#define _UAPI_LINUX_LIGHTNVM_H
#ifdef __KERNEL__
-#include <linux/const.h>
+#include <linux/kernel.h>
#include <linux/ioctl.h>
#else /* __KERNEL__ */
#include <stdio.h>
diff --git a/original/uapi/linux/lirc.h b/original/uapi/linux/lirc.h
index c45a4ea..f99d9dc 100644
--- a/original/uapi/linux/lirc.h
+++ b/original/uapi/linux/lirc.h
@@ -139,7 +139,7 @@
*/
#define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32)
-/**
+/*
* struct lirc_scancode - decoded scancode with protocol for use with
* LIRC_MODE_SCANCODE
*
@@ -196,7 +196,6 @@ struct lirc_scancode {
* @RC_PROTO_RCMM24: RC-MM protocol 24 bits
* @RC_PROTO_RCMM32: RC-MM protocol 32 bits
* @RC_PROTO_XBOX_DVD: Xbox DVD Movie Playback Kit protocol
- * @RC_PROTO_MAX: Maximum value of enum rc_proto
*/
enum rc_proto {
RC_PROTO_UNKNOWN = 0,
@@ -227,7 +226,6 @@ enum rc_proto {
RC_PROTO_RCMM24 = 25,
RC_PROTO_RCMM32 = 26,
RC_PROTO_XBOX_DVD = 27,
- RC_PROTO_MAX = RC_PROTO_XBOX_DVD,
};
#endif
diff --git a/original/uapi/linux/loop.h b/original/uapi/linux/loop.h
index 24a1c45..080a8df 100644
--- a/original/uapi/linux/loop.h
+++ b/original/uapi/linux/loop.h
@@ -25,16 +25,6 @@ enum {
LO_FLAGS_DIRECT_IO = 16,
};
-/* LO_FLAGS that can be set using LOOP_SET_STATUS(64) */
-#define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN)
-
-/* LO_FLAGS that can be cleared using LOOP_SET_STATUS(64) */
-#define LOOP_SET_STATUS_CLEARABLE_FLAGS (LO_FLAGS_AUTOCLEAR)
-
-/* LO_FLAGS that can be set using LOOP_CONFIGURE */
-#define LOOP_CONFIGURE_SETTABLE_FLAGS (LO_FLAGS_READ_ONLY | LO_FLAGS_AUTOCLEAR \
- | LO_FLAGS_PARTSCAN | LO_FLAGS_DIRECT_IO)
-
#include <asm/posix_types.h> /* for __kernel_old_dev_t */
#include <linux/types.h> /* for __u64 */
@@ -47,7 +37,7 @@ struct loop_info {
int lo_offset;
int lo_encrypt_type;
int lo_encrypt_key_size; /* ioctl w/o */
- int lo_flags;
+ int lo_flags; /* ioctl r/o */
char lo_name[LO_NAME_SIZE];
unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
unsigned long lo_init[2];
@@ -63,29 +53,13 @@ struct loop_info64 {
__u32 lo_number; /* ioctl r/o */
__u32 lo_encrypt_type;
__u32 lo_encrypt_key_size; /* ioctl w/o */
- __u32 lo_flags;
+ __u32 lo_flags; /* ioctl r/o */
__u8 lo_file_name[LO_NAME_SIZE];
__u8 lo_crypt_name[LO_NAME_SIZE];
__u8 lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
__u64 lo_init[2];
};
-/**
- * struct loop_config - Complete configuration for a loop device.
- * @fd: fd of the file to be used as a backing file for the loop device.
- * @block_size: block size to use; ignored if 0.
- * @info: struct loop_info64 to configure the loop device with.
- *
- * This structure is used with the LOOP_CONFIGURE ioctl, and can be used to
- * atomically setup and configure all loop device parameters at once.
- */
-struct loop_config {
- __u32 fd;
- __u32 block_size;
- struct loop_info64 info;
- __u64 __reserved[8];
-};
-
/*
* Loop filter types
*/
@@ -116,7 +90,6 @@ struct loop_config {
#define LOOP_SET_CAPACITY 0x4C07
#define LOOP_SET_DIRECT_IO 0x4C08
#define LOOP_SET_BLOCK_SIZE 0x4C09
-#define LOOP_CONFIGURE 0x4C0A
/* /dev/loop-control interface */
#define LOOP_CTL_ADD 0x4C80
diff --git a/original/uapi/linux/lwtunnel.h b/original/uapi/linux/lwtunnel.h
index 568a430..f6035f7 100644
--- a/original/uapi/linux/lwtunnel.h
+++ b/original/uapi/linux/lwtunnel.h
@@ -13,7 +13,6 @@ enum lwtunnel_encap_types {
LWTUNNEL_ENCAP_SEG6,
LWTUNNEL_ENCAP_BPF,
LWTUNNEL_ENCAP_SEG6_LOCAL,
- LWTUNNEL_ENCAP_RPL,
__LWTUNNEL_ENCAP_MAX,
};
diff --git a/original/uapi/linux/magic.h b/original/uapi/linux/magic.h
index f3956fc..b1fbe15 100644
--- a/original/uapi/linux/magic.h
+++ b/original/uapi/linux/magic.h
@@ -58,6 +58,8 @@
#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
#define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
+#define SDCARDFS_SUPER_MAGIC 0x5dca2df5
+
#define SMB_SUPER_MAGIC 0x517B
#define CGROUP_SUPER_MAGIC 0x27e0eb
#define CGROUP2_SUPER_MAGIC 0x63677270
@@ -87,14 +89,12 @@
#define NSFS_MAGIC 0x6e736673
#define BPF_FS_MAGIC 0xcafe4a11
#define AAFS_MAGIC 0x5a3c69f0
-#define ZONEFS_MAGIC 0x5a4f4653
/* Since UDF 2.01 is ISO 13346 based... */
#define UDF_SUPER_MAGIC 0x15013346
#define BALLOON_KVM_MAGIC 0x13661366
#define ZSMALLOC_MAGIC 0x58295829
#define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */
-#define DEVMEM_MAGIC 0x454d444d /* "DMEM" */
#define Z3FOLD_MAGIC 0x33
#define PPC_CMM_MAGIC 0xc7571590
diff --git a/original/uapi/linux/map_to_7segment.h b/original/uapi/linux/map_to_7segment.h
index 8b02088..f9ed181 100644
--- a/original/uapi/linux/map_to_7segment.h
+++ b/original/uapi/linux/map_to_7segment.h
@@ -24,7 +24,7 @@
* of (ASCII) characters to a 7-segments notation.
*
* The 7 segment's wikipedia notation below is used as standard.
- * See: https://en.wikipedia.org/wiki/Seven_segment_display
+ * See: http://en.wikipedia.org/wiki/Seven_segment_display
*
* Notation: +-a-+
* f b
@@ -45,22 +45,17 @@
* In device drivers it is recommended, if required, to make the char map
* accessible via the sysfs interface using the following scheme:
*
- * static ssize_t map_seg7_show(struct device *dev,
- * struct device_attribute *attr, char *buf)
- * {
+ * static ssize_t show_map(struct device *dev, char *buf) {
* memcpy(buf, &map_seg7, sizeof(map_seg7));
* return sizeof(map_seg7);
* }
- * static ssize_t map_seg7_store(struct device *dev,
- * struct device_attribute *attr, const char *buf,
- * size_t cnt)
- * {
+ * static ssize_t store_map(struct device *dev, const char *buf, size_t cnt) {
* if(cnt != sizeof(map_seg7))
* return -EINVAL;
* memcpy(&map_seg7, buf, cnt);
* return cnt;
* }
- * static DEVICE_ATTR_RW(map_seg7);
+ * static DEVICE_ATTR(map_seg7, PERMS_RW, show_map, store_map);
*
* History:
* 2005-05-31 RFC linux-kernel@vger.kernel.org
diff --git a/original/uapi/linux/mdio.h b/original/uapi/linux/mdio.h
index 3f302e2..4bcb41c 100644
--- a/original/uapi/linux/mdio.h
+++ b/original/uapi/linux/mdio.h
@@ -324,30 +324,4 @@ static inline __u16 mdio_phy_id_c45(int prtad, int devad)
return MDIO_PHY_ID_C45 | (prtad << 5) | devad;
}
-/* UsxgmiiChannelInfo[15:0] for USXGMII in-band auto-negotiation.*/
-#define MDIO_USXGMII_EEE_CLK_STP 0x0080 /* EEE clock stop supported */
-#define MDIO_USXGMII_EEE 0x0100 /* EEE supported */
-#define MDIO_USXGMII_SPD_MASK 0x0e00 /* USXGMII speed mask */
-#define MDIO_USXGMII_FULL_DUPLEX 0x1000 /* USXGMII full duplex */
-#define MDIO_USXGMII_DPX_SPD_MASK 0x1e00 /* USXGMII duplex and speed bits */
-#define MDIO_USXGMII_10 0x0000 /* 10Mbps */
-#define MDIO_USXGMII_10HALF 0x0000 /* 10Mbps half-duplex */
-#define MDIO_USXGMII_10FULL 0x1000 /* 10Mbps full-duplex */
-#define MDIO_USXGMII_100 0x0200 /* 100Mbps */
-#define MDIO_USXGMII_100HALF 0x0200 /* 100Mbps half-duplex */
-#define MDIO_USXGMII_100FULL 0x1200 /* 100Mbps full-duplex */
-#define MDIO_USXGMII_1000 0x0400 /* 1000Mbps */
-#define MDIO_USXGMII_1000HALF 0x0400 /* 1000Mbps half-duplex */
-#define MDIO_USXGMII_1000FULL 0x1400 /* 1000Mbps full-duplex */
-#define MDIO_USXGMII_10G 0x0600 /* 10Gbps */
-#define MDIO_USXGMII_10GHALF 0x0600 /* 10Gbps half-duplex */
-#define MDIO_USXGMII_10GFULL 0x1600 /* 10Gbps full-duplex */
-#define MDIO_USXGMII_2500 0x0800 /* 2500Mbps */
-#define MDIO_USXGMII_2500HALF 0x0800 /* 2500Mbps half-duplex */
-#define MDIO_USXGMII_2500FULL 0x1800 /* 2500Mbps full-duplex */
-#define MDIO_USXGMII_5000 0x0a00 /* 5000Mbps */
-#define MDIO_USXGMII_5000HALF 0x0a00 /* 5000Mbps half-duplex */
-#define MDIO_USXGMII_5000FULL 0x1a00 /* 5000Mbps full-duplex */
-#define MDIO_USXGMII_LINK 0x8000 /* PHY link with copper-side partner */
-
#endif /* _UAPI__LINUX_MDIO_H__ */
diff --git a/original/uapi/linux/media-bus-format.h b/original/uapi/linux/media-bus-format.h
index 0dfc11e..16c1fa2 100644
--- a/original/uapi/linux/media-bus-format.h
+++ b/original/uapi/linux/media-bus-format.h
@@ -34,7 +34,7 @@
#define MEDIA_BUS_FMT_FIXED 0x0001
-/* RGB - next is 0x101e */
+/* RGB - next is 0x101d */
#define MEDIA_BUS_FMT_RGB444_1X12 0x1016
#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001
#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002
@@ -56,7 +56,6 @@
#define MEDIA_BUS_FMT_RGB888_2X12_BE 0x100b
#define MEDIA_BUS_FMT_RGB888_2X12_LE 0x100c
#define MEDIA_BUS_FMT_RGB888_3X8 0x101c
-#define MEDIA_BUS_FMT_RGB888_3X8_DELTA 0x101d
#define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG 0x1011
#define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA 0x1012
#define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d
@@ -65,7 +64,7 @@
#define MEDIA_BUS_FMT_RGB121212_1X36 0x1019
#define MEDIA_BUS_FMT_RGB161616_1X48 0x101a
-/* YUV (including grey) - next is 0x202e */
+/* YUV (including grey) - next is 0x202d */
#define MEDIA_BUS_FMT_Y8_1X8 0x2001
#define MEDIA_BUS_FMT_UV8_1X8 0x2015
#define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002
@@ -87,7 +86,6 @@
#define MEDIA_BUS_FMT_VYUY12_2X12 0x201d
#define MEDIA_BUS_FMT_YUYV12_2X12 0x201e
#define MEDIA_BUS_FMT_YVYU12_2X12 0x201f
-#define MEDIA_BUS_FMT_Y14_1X14 0x202d
#define MEDIA_BUS_FMT_UYVY8_1X16 0x200f
#define MEDIA_BUS_FMT_VYUY8_1X16 0x2010
#define MEDIA_BUS_FMT_YUYV8_1X16 0x2011
@@ -157,12 +155,4 @@
/* HSV - next is 0x6002 */
#define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001
-/*
- * This format should be used when the same driver handles
- * both sides of the link and the bus format is a fixed
- * metadata format that is not configurable from userspace.
- * Width and height will be set to 0 for this format.
- */
-#define MEDIA_BUS_FMT_METADATA_FIXED 0x7001
-
#endif /* __LINUX_MEDIA_BUS_FORMAT_H */
diff --git a/original/uapi/linux/media.h b/original/uapi/linux/media.h
index 200fa84..383ac7b 100644
--- a/original/uapi/linux/media.h
+++ b/original/uapi/linux/media.h
@@ -127,7 +127,6 @@ struct media_device_info {
#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
#define MEDIA_ENT_F_PROC_VIDEO_ENCODER (MEDIA_ENT_F_BASE + 0x4007)
#define MEDIA_ENT_F_PROC_VIDEO_DECODER (MEDIA_ENT_F_BASE + 0x4008)
-#define MEDIA_ENT_F_PROC_VIDEO_ISP (MEDIA_ENT_F_BASE + 0x4009)
/*
* Switch and bridge entity functions
diff --git a/original/uapi/linux/mei.h b/original/uapi/linux/mei.h
index 4f36384..c6aec86 100644
--- a/original/uapi/linux/mei.h
+++ b/original/uapi/linux/mei.h
@@ -66,53 +66,4 @@ struct mei_connect_client_data {
*/
#define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, __u32)
-/**
- * struct mei_connect_client_vtag - mei client information struct with vtag
- *
- * @in_client_uuid: UUID of client to connect
- * @vtag: virtual tag
- * @reserved: reserved for future use
- */
-struct mei_connect_client_vtag {
- uuid_le in_client_uuid;
- __u8 vtag;
- __u8 reserved[3];
-};
-
-/**
- * struct mei_connect_client_data_vtag - IOCTL connect data union
- *
- * @connect: input connect data
- * @out_client_properties: output client data
- */
-struct mei_connect_client_data_vtag {
- union {
- struct mei_connect_client_vtag connect;
- struct mei_client out_client_properties;
- };
-};
-
-/**
- * DOC:
- * This IOCTL is used to associate the current file descriptor with a
- * FW Client (given by UUID), and virtual tag (vtag).
- * The IOCTL opens a communication channel between a host client and
- * a FW client on a tagged channel. From this point on, every read
- * and write will communicate with the associated FW client with
- * on the tagged channel.
- * Upone close() the communication is terminated.
- *
- * The IOCTL argument is a struct with a union that contains
- * the input parameter and the output parameter for this IOCTL.
- *
- * The input parameter is UUID of the FW Client, a vtag [0,255]
- * The output parameter is the properties of the FW client
- * (FW protocool version and max message size).
- *
- * Clients that do not support tagged connection
- * will respond with -EOPNOTSUPP.
- */
-#define IOCTL_MEI_CONNECT_CLIENT_VTAG \
- _IOWR('H', 0x04, struct mei_connect_client_data_vtag)
-
#endif /* _LINUX_MEI_H */
diff --git a/original/uapi/linux/membarrier.h b/original/uapi/linux/membarrier.h
index 7376058..5891d76 100644
--- a/original/uapi/linux/membarrier.h
+++ b/original/uapi/linux/membarrier.h
@@ -114,26 +114,6 @@
* If this command is not implemented by an
* architecture, -EINVAL is returned.
* Returns 0 on success.
- * @MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ:
- * Ensure the caller thread, upon return from
- * system call, that all its running thread
- * siblings have any currently running rseq
- * critical sections restarted if @flags
- * parameter is 0; if @flags parameter is
- * MEMBARRIER_CMD_FLAG_CPU,
- * then this operation is performed only
- * on CPU indicated by @cpu_id. If this command is
- * not implemented by an architecture, -EINVAL
- * is returned. A process needs to register its
- * intent to use the private expedited rseq
- * command prior to using it, otherwise
- * this command returns -EPERM.
- * @MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ:
- * Register the process intent to use
- * MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ.
- * If this command is not implemented by an
- * architecture, -EINVAL is returned.
- * Returns 0 on success.
* @MEMBARRIER_CMD_SHARED:
* Alias to MEMBARRIER_CMD_GLOBAL. Provided for
* header backward compatibility.
@@ -151,15 +131,9 @@ enum membarrier_cmd {
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = (1 << 4),
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 5),
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 6),
- MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = (1 << 7),
- MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = (1 << 8),
/* Alias for header backward compatibility. */
MEMBARRIER_CMD_SHARED = MEMBARRIER_CMD_GLOBAL,
};
-enum membarrier_cmd_flag {
- MEMBARRIER_CMD_FLAG_CPU = (1 << 0),
-};
-
#endif /* _UAPI_LINUX_MEMBARRIER_H */
diff --git a/original/uapi/linux/mempolicy.h b/original/uapi/linux/mempolicy.h
index 8948467..3354774 100644
--- a/original/uapi/linux/mempolicy.h
+++ b/original/uapi/linux/mempolicy.h
@@ -28,14 +28,12 @@ enum {
/* Flags for set_mempolicy */
#define MPOL_F_STATIC_NODES (1 << 15)
#define MPOL_F_RELATIVE_NODES (1 << 14)
-#define MPOL_F_NUMA_BALANCING (1 << 13) /* Optimize with NUMA balancing if possible */
/*
* MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to
* either set_mempolicy() or mbind().
*/
-#define MPOL_MODE_FLAGS \
- (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES | MPOL_F_NUMA_BALANCING)
+#define MPOL_MODE_FLAGS (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES)
/* Flags for get_mempolicy */
#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */
diff --git a/original/uapi/linux/mic_common.h b/original/uapi/linux/mic_common.h
new file mode 100644
index 0000000..504e523
--- /dev/null
+++ b/original/uapi/linux/mic_common.h
@@ -0,0 +1,235 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Intel MIC Platform Software Stack (MPSS)
+ *
+ * Copyright(c) 2013 Intel Corporation.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * The full GNU General Public License is included in this distribution in
+ * the file called "COPYING".
+ *
+ * Intel MIC driver.
+ *
+ */
+#ifndef __MIC_COMMON_H_
+#define __MIC_COMMON_H_
+
+#include <linux/virtio_ring.h>
+
+#define __mic_align(a, x) (((a) + (x) - 1) & ~((x) - 1))
+
+/**
+ * struct mic_device_desc: Virtio device information shared between the
+ * virtio driver and userspace backend
+ *
+ * @type: Device type: console/network/disk etc. Type 0/-1 terminates.
+ * @num_vq: Number of virtqueues.
+ * @feature_len: Number of bytes of feature bits. Multiply by 2: one for
+ host features and one for guest acknowledgements.
+ * @config_len: Number of bytes of the config array after virtqueues.
+ * @status: A status byte, written by the Guest.
+ * @config: Start of the following variable length config.
+ */
+struct mic_device_desc {
+ __s8 type;
+ __u8 num_vq;
+ __u8 feature_len;
+ __u8 config_len;
+ __u8 status;
+ __le64 config[0];
+} __attribute__ ((aligned(8)));
+
+/**
+ * struct mic_device_ctrl: Per virtio device information in the device page
+ * used internally by the host and card side drivers.
+ *
+ * @vdev: Used for storing MIC vdev information by the guest.
+ * @config_change: Set to 1 by host when a config change is requested.
+ * @vdev_reset: Set to 1 by guest to indicate virtio device has been reset.
+ * @guest_ack: Set to 1 by guest to ack a command.
+ * @host_ack: Set to 1 by host to ack a command.
+ * @used_address_updated: Set to 1 by guest when the used address should be
+ * updated.
+ * @c2h_vdev_db: The doorbell number to be used by guest. Set by host.
+ * @h2c_vdev_db: The doorbell number to be used by host. Set by guest.
+ */
+struct mic_device_ctrl {
+ __le64 vdev;
+ __u8 config_change;
+ __u8 vdev_reset;
+ __u8 guest_ack;
+ __u8 host_ack;
+ __u8 used_address_updated;
+ __s8 c2h_vdev_db;
+ __s8 h2c_vdev_db;
+} __attribute__ ((aligned(8)));
+
+/**
+ * struct mic_bootparam: Virtio device independent information in device page
+ *
+ * @magic: A magic value used by the card to ensure it can see the host
+ * @h2c_config_db: Host to Card Virtio config doorbell set by card
+ * @node_id: Unique id of the node
+ * @h2c_scif_db - Host to card SCIF doorbell set by card
+ * @c2h_scif_db - Card to host SCIF doorbell set by host
+ * @scif_host_dma_addr - SCIF host queue pair DMA address
+ * @scif_card_dma_addr - SCIF card queue pair DMA address
+ */
+struct mic_bootparam {
+ __le32 magic;
+ __s8 h2c_config_db;
+ __u8 node_id;
+ __u8 h2c_scif_db;
+ __u8 c2h_scif_db;
+ __u64 scif_host_dma_addr;
+ __u64 scif_card_dma_addr;
+} __attribute__ ((aligned(8)));
+
+/**
+ * struct mic_device_page: High level representation of the device page
+ *
+ * @bootparam: The bootparam structure is used for sharing information and
+ * status updates between MIC host and card drivers.
+ * @desc: Array of MIC virtio device descriptors.
+ */
+struct mic_device_page {
+ struct mic_bootparam bootparam;
+ struct mic_device_desc desc[0];
+};
+/**
+ * struct mic_vqconfig: This is how we expect the device configuration field
+ * for a virtqueue to be laid out in config space.
+ *
+ * @address: Guest/MIC physical address of the virtio ring
+ * (avail and desc rings)
+ * @used_address: Guest/MIC physical address of the used ring
+ * @num: The number of entries in the virtio_ring
+ */
+struct mic_vqconfig {
+ __le64 address;
+ __le64 used_address;
+ __le16 num;
+} __attribute__ ((aligned(8)));
+
+/*
+ * The alignment to use between consumer and producer parts of vring.
+ * This is pagesize for historical reasons.
+ */
+#define MIC_VIRTIO_RING_ALIGN 4096
+
+#define MIC_MAX_VRINGS 4
+#define MIC_VRING_ENTRIES 128
+
+/*
+ * Max vring entries (power of 2) to ensure desc and avail rings
+ * fit in a single page
+ */
+#define MIC_MAX_VRING_ENTRIES 128
+
+/**
+ * Max size of the desc block in bytes: includes:
+ * - struct mic_device_desc
+ * - struct mic_vqconfig (num_vq of these)
+ * - host and guest features
+ * - virtio device config space
+ */
+#define MIC_MAX_DESC_BLK_SIZE 256
+
+/**
+ * struct _mic_vring_info - Host vring info exposed to userspace backend
+ * for the avail index and magic for the card.
+ *
+ * @avail_idx: host avail idx
+ * @magic: A magic debug cookie.
+ */
+struct _mic_vring_info {
+ __u16 avail_idx;
+ __le32 magic;
+};
+
+/**
+ * struct mic_vring - Vring information.
+ *
+ * @vr: The virtio ring.
+ * @info: Host vring information exposed to the userspace backend for the
+ * avail index and magic for the card.
+ * @va: The va for the buffer allocated for vr and info.
+ * @len: The length of the buffer required for allocating vr and info.
+ */
+struct mic_vring {
+ struct vring vr;
+ struct _mic_vring_info *info;
+ void *va;
+ int len;
+};
+
+#define mic_aligned_desc_size(d) __mic_align(mic_desc_size(d), 8)
+
+#ifndef INTEL_MIC_CARD
+static inline unsigned mic_desc_size(const struct mic_device_desc *desc)
+{
+ return sizeof(*desc) + desc->num_vq * sizeof(struct mic_vqconfig)
+ + desc->feature_len * 2 + desc->config_len;
+}
+
+static inline struct mic_vqconfig *
+mic_vq_config(const struct mic_device_desc *desc)
+{
+ return (struct mic_vqconfig *)(desc + 1);
+}
+
+static inline __u8 *mic_vq_features(const struct mic_device_desc *desc)
+{
+ return (__u8 *)(mic_vq_config(desc) + desc->num_vq);
+}
+
+static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc)
+{
+ return mic_vq_features(desc) + desc->feature_len * 2;
+}
+static inline unsigned mic_total_desc_size(struct mic_device_desc *desc)
+{
+ return mic_aligned_desc_size(desc) + sizeof(struct mic_device_ctrl);
+}
+#endif
+
+/* Device page size */
+#define MIC_DP_SIZE 4096
+
+#define MIC_MAGIC 0xc0ffee00
+
+/**
+ * enum mic_states - MIC states.
+ */
+enum mic_states {
+ MIC_READY = 0,
+ MIC_BOOTING,
+ MIC_ONLINE,
+ MIC_SHUTTING_DOWN,
+ MIC_RESETTING,
+ MIC_RESET_FAILED,
+ MIC_LAST
+};
+
+/**
+ * enum mic_status - MIC status reported by card after
+ * a host or card initiated shutdown or a card crash.
+ */
+enum mic_status {
+ MIC_NOP = 0,
+ MIC_CRASHED,
+ MIC_HALTED,
+ MIC_POWER_OFF,
+ MIC_RESTART,
+ MIC_STATUS_LAST
+};
+
+#endif
diff --git a/original/uapi/linux/mic_ioctl.h b/original/uapi/linux/mic_ioctl.h
new file mode 100644
index 0000000..687b9cd
--- /dev/null
+++ b/original/uapi/linux/mic_ioctl.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Intel MIC Platform Software Stack (MPSS)
+ *
+ * Copyright(c) 2013 Intel Corporation.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * The full GNU General Public License is included in this distribution in
+ * the file called "COPYING".
+ *
+ * Intel MIC Host driver.
+ *
+ */
+#ifndef _MIC_IOCTL_H_
+#define _MIC_IOCTL_H_
+
+#include <linux/types.h>
+
+/*
+ * mic_copy - MIC virtio descriptor copy.
+ *
+ * @iov: An array of IOVEC structures containing user space buffers.
+ * @iovcnt: Number of IOVEC structures in iov.
+ * @vr_idx: The vring index.
+ * @update_used: A non zero value results in used index being updated.
+ * @out_len: The aggregate of the total length written to or read from
+ * the virtio device.
+ */
+struct mic_copy_desc {
+#ifdef __KERNEL__
+ struct iovec __user *iov;
+#else
+ struct iovec *iov;
+#endif
+ __u32 iovcnt;
+ __u8 vr_idx;
+ __u8 update_used;
+ __u32 out_len;
+};
+
+/*
+ * Add a new virtio device
+ * The (struct mic_device_desc *) pointer points to a device page entry
+ * for the virtio device consisting of:
+ * - struct mic_device_desc
+ * - struct mic_vqconfig (num_vq of these)
+ * - host and guest features
+ * - virtio device config space
+ * The total size referenced by the pointer should equal the size returned
+ * by desc_size() in mic_common.h
+ */
+#define MIC_VIRTIO_ADD_DEVICE _IOWR('s', 1, struct mic_device_desc *)
+
+/*
+ * Copy the number of entries in the iovec and update the used index
+ * if requested by the user.
+ */
+#define MIC_VIRTIO_COPY_DESC _IOWR('s', 2, struct mic_copy_desc *)
+
+/*
+ * Notify virtio device of a config change
+ * The (__u8 *) pointer points to config space values for the device
+ * as they should be written into the device page. The total size
+ * referenced by the pointer should equal the config_len field of struct
+ * mic_device_desc.
+ */
+#define MIC_VIRTIO_CONFIG_CHANGE _IOWR('s', 5, __u8 *)
+
+#endif
diff --git a/original/uapi/linux/mii.h b/original/uapi/linux/mii.h
index 39f7c44..51b48e4 100644
--- a/original/uapi/linux/mii.h
+++ b/original/uapi/linux/mii.h
@@ -131,33 +131,14 @@
#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */
#define NWAYTEST_RESV2 0xfe00 /* Unused... */
-/* MAC and PHY tx_config_Reg[15:0] for SGMII in-band auto-negotiation.*/
-#define ADVERTISE_SGMII 0x0001 /* MAC can do SGMII */
-#define LPA_SGMII 0x0001 /* PHY can do SGMII */
-#define LPA_SGMII_SPD_MASK 0x0c00 /* SGMII speed mask */
-#define LPA_SGMII_FULL_DUPLEX 0x1000 /* SGMII full duplex */
-#define LPA_SGMII_DPX_SPD_MASK 0x1C00 /* SGMII duplex and speed bits */
-#define LPA_SGMII_10 0x0000 /* 10Mbps */
-#define LPA_SGMII_10HALF 0x0000 /* Can do 10mbps half-duplex */
-#define LPA_SGMII_10FULL 0x1000 /* Can do 10mbps full-duplex */
-#define LPA_SGMII_100 0x0400 /* 100Mbps */
-#define LPA_SGMII_100HALF 0x0400 /* Can do 100mbps half-duplex */
-#define LPA_SGMII_100FULL 0x1400 /* Can do 100mbps full-duplex */
-#define LPA_SGMII_1000 0x0800 /* 1000Mbps */
-#define LPA_SGMII_1000HALF 0x0800 /* Can do 1000mbps half-duplex */
-#define LPA_SGMII_1000FULL 0x1800 /* Can do 1000mbps full-duplex */
-#define LPA_SGMII_LINK 0x8000 /* PHY link with copper-side partner */
-
/* 1000BASE-T Control register */
#define ADVERTISE_1000FULL 0x0200 /* Advertise 1000BASE-T full duplex */
#define ADVERTISE_1000HALF 0x0100 /* Advertise 1000BASE-T half duplex */
-#define CTL1000_PREFER_MASTER 0x0400 /* prefer to operate as master */
#define CTL1000_AS_MASTER 0x0800
#define CTL1000_ENABLE_MASTER 0x1000
/* 1000BASE-T Status register */
#define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */
-#define LPA_1000MSRES 0x4000 /* Master/Slave resolution status */
#define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */
#define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */
#define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */
diff --git a/original/uapi/linux/misc/bcm_vk.h b/original/uapi/linux/misc/bcm_vk.h
deleted file mode 100644
index ec28e0b..0000000
--- a/original/uapi/linux/misc/bcm_vk.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Copyright 2018-2020 Broadcom.
- */
-
-#ifndef __UAPI_LINUX_MISC_BCM_VK_H
-#define __UAPI_LINUX_MISC_BCM_VK_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-#define BCM_VK_MAX_FILENAME 64
-
-struct vk_image {
- __u32 type; /* Type of image */
-#define VK_IMAGE_TYPE_BOOT1 1 /* 1st stage (load to SRAM) */
-#define VK_IMAGE_TYPE_BOOT2 2 /* 2nd stage (load to DDR) */
- __u8 filename[BCM_VK_MAX_FILENAME]; /* Filename of image */
-};
-
-struct vk_reset {
- __u32 arg1;
- __u32 arg2;
-};
-
-#define VK_MAGIC 0x5e
-
-/* Load image to Valkyrie */
-#define VK_IOCTL_LOAD_IMAGE _IOW(VK_MAGIC, 0x2, struct vk_image)
-
-/* Send Reset to Valkyrie */
-#define VK_IOCTL_RESET _IOW(VK_MAGIC, 0x4, struct vk_reset)
-
-/*
- * Firmware Status accessed directly via BAR space
- */
-#define VK_BAR_FWSTS 0x41c
-#define VK_BAR_COP_FWSTS 0x428
-/* VK_FWSTS definitions */
-#define VK_FWSTS_RELOCATION_ENTRY (1UL << 0)
-#define VK_FWSTS_RELOCATION_EXIT (1UL << 1)
-#define VK_FWSTS_INIT_START (1UL << 2)
-#define VK_FWSTS_ARCH_INIT_DONE (1UL << 3)
-#define VK_FWSTS_PRE_KNL1_INIT_DONE (1UL << 4)
-#define VK_FWSTS_PRE_KNL2_INIT_DONE (1UL << 5)
-#define VK_FWSTS_POST_KNL_INIT_DONE (1UL << 6)
-#define VK_FWSTS_INIT_DONE (1UL << 7)
-#define VK_FWSTS_APP_INIT_START (1UL << 8)
-#define VK_FWSTS_APP_INIT_DONE (1UL << 9)
-#define VK_FWSTS_MASK 0xffffffff
-#define VK_FWSTS_READY (VK_FWSTS_INIT_START | \
- VK_FWSTS_ARCH_INIT_DONE | \
- VK_FWSTS_PRE_KNL1_INIT_DONE | \
- VK_FWSTS_PRE_KNL2_INIT_DONE | \
- VK_FWSTS_POST_KNL_INIT_DONE | \
- VK_FWSTS_INIT_DONE | \
- VK_FWSTS_APP_INIT_START | \
- VK_FWSTS_APP_INIT_DONE)
-/* Deinit */
-#define VK_FWSTS_APP_DEINIT_START (1UL << 23)
-#define VK_FWSTS_APP_DEINIT_DONE (1UL << 24)
-#define VK_FWSTS_DRV_DEINIT_START (1UL << 25)
-#define VK_FWSTS_DRV_DEINIT_DONE (1UL << 26)
-#define VK_FWSTS_RESET_DONE (1UL << 27)
-#define VK_FWSTS_DEINIT_TRIGGERED (VK_FWSTS_APP_DEINIT_START | \
- VK_FWSTS_APP_DEINIT_DONE | \
- VK_FWSTS_DRV_DEINIT_START | \
- VK_FWSTS_DRV_DEINIT_DONE)
-/* Last nibble for reboot reason */
-#define VK_FWSTS_RESET_REASON_SHIFT 28
-#define VK_FWSTS_RESET_REASON_MASK (0xf << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_SYS_PWRUP (0x0 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_MBOX_DB (0x1 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_M7_WDOG (0x2 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_TEMP (0x3 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_PCI_FLR (0x4 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_PCI_HOT (0x5 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_PCI_WARM (0x6 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_PCI_COLD (0x7 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_L1 (0x8 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_L0 (0x9 << VK_FWSTS_RESET_REASON_SHIFT)
-#define VK_FWSTS_RESET_UNKNOWN (0xf << VK_FWSTS_RESET_REASON_SHIFT)
-
-#endif /* __UAPI_LINUX_MISC_BCM_VK_H */
diff --git a/original/uapi/linux/mman.h b/original/uapi/linux/mman.h
index f55bc68..fc1a64c 100644
--- a/original/uapi/linux/mman.h
+++ b/original/uapi/linux/mman.h
@@ -5,9 +5,8 @@
#include <asm/mman.h>
#include <asm-generic/hugetlb_encode.h>
-#define MREMAP_MAYMOVE 1
-#define MREMAP_FIXED 2
-#define MREMAP_DONTUNMAP 4
+#define MREMAP_MAYMOVE 1
+#define MREMAP_FIXED 2
#define OVERCOMMIT_GUESS 0
#define OVERCOMMIT_ALWAYS 1
@@ -27,7 +26,6 @@
#define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
#define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
-#define MAP_HUGE_16KB HUGETLB_FLAG_ENCODE_16KB
#define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
diff --git a/original/uapi/linux/mmc/ioctl.h b/original/uapi/linux/mmc/ioctl.h
index 27a3984..00c0812 100644
--- a/original/uapi/linux/mmc/ioctl.h
+++ b/original/uapi/linux/mmc/ioctl.h
@@ -3,7 +3,6 @@
#define LINUX_MMC_IOCTL_H
#include <linux/types.h>
-#include <linux/major.h>
struct mmc_ioc_cmd {
/*
diff --git a/original/uapi/linux/mount.h b/original/uapi/linux/mount.h
index e6524ea..96a0240 100644
--- a/original/uapi/linux/mount.h
+++ b/original/uapi/linux/mount.h
@@ -1,8 +1,6 @@
#ifndef _UAPI_LINUX_MOUNT_H
#define _UAPI_LINUX_MOUNT_H
-#include <linux/types.h>
-
/*
* These are the fs-independent mount-flags: up to 32 flags are supported
*
@@ -18,7 +16,6 @@
#define MS_REMOUNT 32 /* Alter flags of a mounted FS */
#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */
#define MS_DIRSYNC 128 /* Directory modifications are synchronous */
-#define MS_NOSYMFOLLOW 256 /* Do not follow symlinks */
#define MS_NOATIME 1024 /* Do not update access times. */
#define MS_NODIRATIME 2048 /* Do not update directory access times */
#define MS_BIND 4096
@@ -119,19 +116,5 @@ enum fsconfig_command {
#define MOUNT_ATTR_NOATIME 0x00000010 /* - Do not update access times. */
#define MOUNT_ATTR_STRICTATIME 0x00000020 /* - Always perform atime updates */
#define MOUNT_ATTR_NODIRATIME 0x00000080 /* Do not update directory access times */
-#define MOUNT_ATTR_IDMAP 0x00100000 /* Idmap mount to @userns_fd in struct mount_attr. */
-
-/*
- * mount_setattr()
- */
-struct mount_attr {
- __u64 attr_set;
- __u64 attr_clr;
- __u64 propagation;
- __u64 userns_fd;
-};
-
-/* List of all mount_attr versions. */
-#define MOUNT_ATTR_SIZE_VER0 32 /* sizeof first published struct */
#endif /* _UAPI_LINUX_MOUNT_H */
diff --git a/original/uapi/linux/mptcp.h b/original/uapi/linux/mptcp.h
deleted file mode 100644
index e1172c1..0000000
--- a/original/uapi/linux/mptcp.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-#ifndef _UAPI_MPTCP_H
-#define _UAPI_MPTCP_H
-
-#include <linux/const.h>
-#include <linux/types.h>
-
-#define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
-#define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
-#define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
-#define MPTCP_SUBFLOW_FLAG_JOIN_LOC _BITUL(3)
-#define MPTCP_SUBFLOW_FLAG_BKUP_REM _BITUL(4)
-#define MPTCP_SUBFLOW_FLAG_BKUP_LOC _BITUL(5)
-#define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED _BITUL(6)
-#define MPTCP_SUBFLOW_FLAG_CONNECTED _BITUL(7)
-#define MPTCP_SUBFLOW_FLAG_MAPVALID _BITUL(8)
-
-enum {
- MPTCP_SUBFLOW_ATTR_UNSPEC,
- MPTCP_SUBFLOW_ATTR_TOKEN_REM,
- MPTCP_SUBFLOW_ATTR_TOKEN_LOC,
- MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ,
- MPTCP_SUBFLOW_ATTR_MAP_SEQ,
- MPTCP_SUBFLOW_ATTR_MAP_SFSEQ,
- MPTCP_SUBFLOW_ATTR_SSN_OFFSET,
- MPTCP_SUBFLOW_ATTR_MAP_DATALEN,
- MPTCP_SUBFLOW_ATTR_FLAGS,
- MPTCP_SUBFLOW_ATTR_ID_REM,
- MPTCP_SUBFLOW_ATTR_ID_LOC,
- MPTCP_SUBFLOW_ATTR_PAD,
- __MPTCP_SUBFLOW_ATTR_MAX
-};
-
-#define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1)
-
-/* netlink interface */
-#define MPTCP_PM_NAME "mptcp_pm"
-#define MPTCP_PM_CMD_GRP_NAME "mptcp_pm_cmds"
-#define MPTCP_PM_EV_GRP_NAME "mptcp_pm_events"
-#define MPTCP_PM_VER 0x1
-
-/*
- * ATTR types defined for MPTCP
- */
-enum {
- MPTCP_PM_ATTR_UNSPEC,
-
- MPTCP_PM_ATTR_ADDR, /* nested address */
- MPTCP_PM_ATTR_RCV_ADD_ADDRS, /* u32 */
- MPTCP_PM_ATTR_SUBFLOWS, /* u32 */
-
- __MPTCP_PM_ATTR_MAX
-};
-
-#define MPTCP_PM_ATTR_MAX (__MPTCP_PM_ATTR_MAX - 1)
-
-enum {
- MPTCP_PM_ADDR_ATTR_UNSPEC,
-
- MPTCP_PM_ADDR_ATTR_FAMILY, /* u16 */
- MPTCP_PM_ADDR_ATTR_ID, /* u8 */
- MPTCP_PM_ADDR_ATTR_ADDR4, /* struct in_addr */
- MPTCP_PM_ADDR_ATTR_ADDR6, /* struct in6_addr */
- MPTCP_PM_ADDR_ATTR_PORT, /* u16 */
- MPTCP_PM_ADDR_ATTR_FLAGS, /* u32 */
- MPTCP_PM_ADDR_ATTR_IF_IDX, /* s32 */
-
- __MPTCP_PM_ADDR_ATTR_MAX
-};
-
-#define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1)
-
-#define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
-#define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
-#define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
-
-enum {
- MPTCP_PM_CMD_UNSPEC,
-
- MPTCP_PM_CMD_ADD_ADDR,
- MPTCP_PM_CMD_DEL_ADDR,
- MPTCP_PM_CMD_GET_ADDR,
- MPTCP_PM_CMD_FLUSH_ADDRS,
- MPTCP_PM_CMD_SET_LIMITS,
- MPTCP_PM_CMD_GET_LIMITS,
- MPTCP_PM_CMD_SET_FLAGS,
-
- __MPTCP_PM_CMD_AFTER_LAST
-};
-
-#define MPTCP_INFO_FLAG_FALLBACK _BITUL(0)
-#define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1)
-
-struct mptcp_info {
- __u8 mptcpi_subflows;
- __u8 mptcpi_add_addr_signal;
- __u8 mptcpi_add_addr_accepted;
- __u8 mptcpi_subflows_max;
- __u8 mptcpi_add_addr_signal_max;
- __u8 mptcpi_add_addr_accepted_max;
- __u32 mptcpi_flags;
- __u32 mptcpi_token;
- __u64 mptcpi_write_seq;
- __u64 mptcpi_snd_una;
- __u64 mptcpi_rcv_nxt;
- __u8 mptcpi_local_addr_used;
- __u8 mptcpi_local_addr_max;
-};
-
-/*
- * MPTCP_EVENT_CREATED: token, family, saddr4 | saddr6, daddr4 | daddr6,
- * sport, dport
- * A new MPTCP connection has been created. It is the good time to allocate
- * memory and send ADD_ADDR if needed. Depending on the traffic-patterns
- * it can take a long time until the MPTCP_EVENT_ESTABLISHED is sent.
- *
- * MPTCP_EVENT_ESTABLISHED: token, family, saddr4 | saddr6, daddr4 | daddr6,
- * sport, dport
- * A MPTCP connection is established (can start new subflows).
- *
- * MPTCP_EVENT_CLOSED: token
- * A MPTCP connection has stopped.
- *
- * MPTCP_EVENT_ANNOUNCED: token, rem_id, family, daddr4 | daddr6 [, dport]
- * A new address has been announced by the peer.
- *
- * MPTCP_EVENT_REMOVED: token, rem_id
- * An address has been lost by the peer.
- *
- * MPTCP_EVENT_SUB_ESTABLISHED: token, family, saddr4 | saddr6,
- * daddr4 | daddr6, sport, dport, backup,
- * if_idx [, error]
- * A new subflow has been established. 'error' should not be set.
- *
- * MPTCP_EVENT_SUB_CLOSED: token, family, saddr4 | saddr6, daddr4 | daddr6,
- * sport, dport, backup, if_idx [, error]
- * A subflow has been closed. An error (copy of sk_err) could be set if an
- * error has been detected for this subflow.
- *
- * MPTCP_EVENT_SUB_PRIORITY: token, family, saddr4 | saddr6, daddr4 | daddr6,
- * sport, dport, backup, if_idx [, error]
- * The priority of a subflow has changed. 'error' should not be set.
- */
-enum mptcp_event_type {
- MPTCP_EVENT_UNSPEC = 0,
- MPTCP_EVENT_CREATED = 1,
- MPTCP_EVENT_ESTABLISHED = 2,
- MPTCP_EVENT_CLOSED = 3,
-
- MPTCP_EVENT_ANNOUNCED = 6,
- MPTCP_EVENT_REMOVED = 7,
-
- MPTCP_EVENT_SUB_ESTABLISHED = 10,
- MPTCP_EVENT_SUB_CLOSED = 11,
-
- MPTCP_EVENT_SUB_PRIORITY = 13,
-};
-
-enum mptcp_event_attr {
- MPTCP_ATTR_UNSPEC = 0,
-
- MPTCP_ATTR_TOKEN, /* u32 */
- MPTCP_ATTR_FAMILY, /* u16 */
- MPTCP_ATTR_LOC_ID, /* u8 */
- MPTCP_ATTR_REM_ID, /* u8 */
- MPTCP_ATTR_SADDR4, /* be32 */
- MPTCP_ATTR_SADDR6, /* struct in6_addr */
- MPTCP_ATTR_DADDR4, /* be32 */
- MPTCP_ATTR_DADDR6, /* struct in6_addr */
- MPTCP_ATTR_SPORT, /* be16 */
- MPTCP_ATTR_DPORT, /* be16 */
- MPTCP_ATTR_BACKUP, /* u8 */
- MPTCP_ATTR_ERROR, /* u8 */
- MPTCP_ATTR_FLAGS, /* u16 */
- MPTCP_ATTR_TIMEOUT, /* u32 */
- MPTCP_ATTR_IF_IDX, /* s32 */
-
- __MPTCP_ATTR_AFTER_LAST
-};
-
-#define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
-
-#endif /* _UAPI_MPTCP_H */
diff --git a/original/uapi/linux/mroute.h b/original/uapi/linux/mroute.h
index 1a42f5f..11c8c1f 100644
--- a/original/uapi/linux/mroute.h
+++ b/original/uapi/linux/mroute.h
@@ -113,8 +113,8 @@ struct igmpmsg {
__u32 unused1,unused2;
unsigned char im_msgtype; /* What is this */
unsigned char im_mbz; /* Must be zero */
- unsigned char im_vif; /* Low 8 bits of Interface */
- unsigned char im_vif_hi; /* High 8 bits of Interface */
+ unsigned char im_vif; /* Interface (this ought to be a vifi_t!) */
+ unsigned char unused3;
struct in_addr im_src,im_dst;
};
@@ -169,7 +169,6 @@ enum {
IPMRA_CREPORT_SRC_ADDR,
IPMRA_CREPORT_DST_ADDR,
IPMRA_CREPORT_PKT,
- IPMRA_CREPORT_TABLE,
__IPMRA_CREPORT_MAX
};
#define IPMRA_CREPORT_MAX (__IPMRA_CREPORT_MAX - 1)
diff --git a/original/uapi/linux/mroute6.h b/original/uapi/linux/mroute6.h
index a1fd617..c36177a 100644
--- a/original/uapi/linux/mroute6.h
+++ b/original/uapi/linux/mroute6.h
@@ -2,7 +2,7 @@
#ifndef _UAPI__LINUX_MROUTE6_H
#define _UAPI__LINUX_MROUTE6_H
-#include <linux/const.h>
+#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/sockios.h>
#include <linux/in6.h> /* For struct sockaddr_in6. */
diff --git a/original/uapi/linux/mrp_bridge.h b/original/uapi/linux/mrp_bridge.h
deleted file mode 100644
index bd4424d..0000000
--- a/original/uapi/linux/mrp_bridge.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-
-#ifndef _UAPI_LINUX_MRP_BRIDGE_H_
-#define _UAPI_LINUX_MRP_BRIDGE_H_
-
-#include <linux/types.h>
-#include <linux/if_ether.h>
-
-#define MRP_MAX_FRAME_LENGTH 200
-#define MRP_DEFAULT_PRIO 0x8000
-#define MRP_DOMAIN_UUID_LENGTH 16
-#define MRP_VERSION 1
-#define MRP_FRAME_PRIO 7
-#define MRP_OUI_LENGTH 3
-#define MRP_MANUFACTURE_DATA_LENGTH 2
-
-enum br_mrp_ring_role_type {
- BR_MRP_RING_ROLE_DISABLED,
- BR_MRP_RING_ROLE_MRC,
- BR_MRP_RING_ROLE_MRM,
- BR_MRP_RING_ROLE_MRA,
-};
-
-enum br_mrp_in_role_type {
- BR_MRP_IN_ROLE_DISABLED,
- BR_MRP_IN_ROLE_MIC,
- BR_MRP_IN_ROLE_MIM,
-};
-
-enum br_mrp_ring_state_type {
- BR_MRP_RING_STATE_OPEN,
- BR_MRP_RING_STATE_CLOSED,
-};
-
-enum br_mrp_in_state_type {
- BR_MRP_IN_STATE_OPEN,
- BR_MRP_IN_STATE_CLOSED,
-};
-
-enum br_mrp_port_state_type {
- BR_MRP_PORT_STATE_DISABLED,
- BR_MRP_PORT_STATE_BLOCKED,
- BR_MRP_PORT_STATE_FORWARDING,
- BR_MRP_PORT_STATE_NOT_CONNECTED,
-};
-
-enum br_mrp_port_role_type {
- BR_MRP_PORT_ROLE_PRIMARY,
- BR_MRP_PORT_ROLE_SECONDARY,
- BR_MRP_PORT_ROLE_INTER,
-};
-
-enum br_mrp_tlv_header_type {
- BR_MRP_TLV_HEADER_END = 0x0,
- BR_MRP_TLV_HEADER_COMMON = 0x1,
- BR_MRP_TLV_HEADER_RING_TEST = 0x2,
- BR_MRP_TLV_HEADER_RING_TOPO = 0x3,
- BR_MRP_TLV_HEADER_RING_LINK_DOWN = 0x4,
- BR_MRP_TLV_HEADER_RING_LINK_UP = 0x5,
- BR_MRP_TLV_HEADER_IN_TEST = 0x6,
- BR_MRP_TLV_HEADER_IN_TOPO = 0x7,
- BR_MRP_TLV_HEADER_IN_LINK_DOWN = 0x8,
- BR_MRP_TLV_HEADER_IN_LINK_UP = 0x9,
- BR_MRP_TLV_HEADER_IN_LINK_STATUS = 0xa,
- BR_MRP_TLV_HEADER_OPTION = 0x7f,
-};
-
-enum br_mrp_sub_tlv_header_type {
- BR_MRP_SUB_TLV_HEADER_TEST_MGR_NACK = 0x1,
- BR_MRP_SUB_TLV_HEADER_TEST_PROPAGATE = 0x2,
- BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR = 0x3,
-};
-
-#endif
diff --git a/original/uapi/linux/ndctl.h b/original/uapi/linux/ndctl.h
index 8cf1e48..de5d902 100644
--- a/original/uapi/linux/ndctl.h
+++ b/original/uapi/linux/ndctl.h
@@ -244,12 +244,6 @@ struct nd_cmd_pkg {
#define NVDIMM_FAMILY_HPE2 2
#define NVDIMM_FAMILY_MSFT 3
#define NVDIMM_FAMILY_HYPERV 4
-#define NVDIMM_FAMILY_PAPR 5
-#define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_PAPR
-
-#define NVDIMM_BUS_FAMILY_NFIT 0
-#define NVDIMM_BUS_FAMILY_INTEL 1
-#define NVDIMM_BUS_FAMILY_MAX NVDIMM_BUS_FAMILY_INTEL
#define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL,\
struct nd_cmd_pkg)
diff --git a/original/uapi/linux/neighbour.h b/original/uapi/linux/neighbour.h
index dc8b722..cd144e3 100644
--- a/original/uapi/linux/neighbour.h
+++ b/original/uapi/linux/neighbour.h
@@ -29,8 +29,6 @@ enum {
NDA_LINK_NETNSID,
NDA_SRC_VNI,
NDA_PROTOCOL, /* Originator of entry */
- NDA_NH_ID,
- NDA_FDB_EXT_ATTRS,
__NDA_MAX
};
@@ -173,27 +171,4 @@ enum {
};
#define NDTA_MAX (__NDTA_MAX - 1)
- /* FDB activity notification bits used in NFEA_ACTIVITY_NOTIFY:
- * - FDB_NOTIFY_BIT - notify on activity/expire for any entry
- * - FDB_NOTIFY_INACTIVE_BIT - mark as inactive to avoid multiple notifications
- */
-enum {
- FDB_NOTIFY_BIT = (1 << 0),
- FDB_NOTIFY_INACTIVE_BIT = (1 << 1)
-};
-
-/* embedded into NDA_FDB_EXT_ATTRS:
- * [NDA_FDB_EXT_ATTRS] = {
- * [NFEA_ACTIVITY_NOTIFY]
- * ...
- * }
- */
-enum {
- NFEA_UNSPEC,
- NFEA_ACTIVITY_NOTIFY,
- NFEA_DONT_REFRESH,
- __NFEA_MAX
-};
-#define NFEA_MAX (__NFEA_MAX - 1)
-
#endif
diff --git a/original/uapi/linux/net_dropmon.h b/original/uapi/linux/net_dropmon.h
index 66048cc..8bf79a9 100644
--- a/original/uapi/linux/net_dropmon.h
+++ b/original/uapi/linux/net_dropmon.h
@@ -92,7 +92,6 @@ enum net_dm_attr {
NET_DM_ATTR_HW_TRAP_COUNT, /* u32 */
NET_DM_ATTR_SW_DROPS, /* flag */
NET_DM_ATTR_HW_DROPS, /* flag */
- NET_DM_ATTR_FLOW_ACTION_COOKIE, /* binary */
__NET_DM_ATTR_MAX,
NET_DM_ATTR_MAX = __NET_DM_ATTR_MAX - 1
diff --git a/original/uapi/linux/net_tstamp.h b/original/uapi/linux/net_tstamp.h
index 7ed0b3d..e5b3972 100644
--- a/original/uapi/linux/net_tstamp.h
+++ b/original/uapi/linux/net_tstamp.h
@@ -90,17 +90,6 @@ enum hwtstamp_tx_types {
* queue.
*/
HWTSTAMP_TX_ONESTEP_SYNC,
-
- /*
- * Same as HWTSTAMP_TX_ONESTEP_SYNC, but also enables time
- * stamp insertion directly into PDelay_Resp packets. In this
- * case, neither transmitted Sync nor PDelay_Resp packets will
- * receive a time stamp via the socket error queue.
- */
- HWTSTAMP_TX_ONESTEP_P2P,
-
- /* add new constants above here */
- __HWTSTAMP_TX_CNT
};
/* possible values for hwtstamp_config->rx_filter */
@@ -143,9 +132,6 @@ enum hwtstamp_rx_filters {
/* NTP, UDP, all versions and packet modes */
HWTSTAMP_FILTER_NTP_ALL,
-
- /* add new constants above here */
- __HWTSTAMP_FILTER_CNT
};
/* SCM_TIMESTAMPING_PKTINFO control message */
diff --git a/original/uapi/linux/netfilter.h b/original/uapi/linux/netfilter.h
index ef9a442..ca9e63d 100644
--- a/original/uapi/linux/netfilter.h
+++ b/original/uapi/linux/netfilter.h
@@ -45,8 +45,7 @@ enum nf_inet_hooks {
NF_INET_FORWARD,
NF_INET_LOCAL_OUT,
NF_INET_POST_ROUTING,
- NF_INET_NUMHOOKS,
- NF_INET_INGRESS = NF_INET_NUMHOOKS,
+ NF_INET_NUMHOOKS
};
enum nf_dev_hooks {
diff --git a/original/uapi/linux/netfilter/ipset/ip_set.h b/original/uapi/linux/netfilter/ipset/ip_set.h
index 6397d75..11a72a9 100644
--- a/original/uapi/linux/netfilter/ipset/ip_set.h
+++ b/original/uapi/linux/netfilter/ipset/ip_set.h
@@ -92,11 +92,11 @@ enum {
/* Reserve empty slots */
IPSET_ATTR_CADT_MAX = 16,
/* Create-only specific attributes */
- IPSET_ATTR_INITVAL, /* was unused IPSET_ATTR_GC */
+ IPSET_ATTR_GC,
IPSET_ATTR_HASHSIZE,
IPSET_ATTR_MAXELEM,
IPSET_ATTR_NETMASK,
- IPSET_ATTR_BUCKETSIZE, /* was unused IPSET_ATTR_PROBES */
+ IPSET_ATTR_PROBES,
IPSET_ATTR_RESIZE,
IPSET_ATTR_SIZE,
/* Kernel-only */
@@ -214,8 +214,6 @@ enum ipset_cadt_flags {
enum ipset_create_flags {
IPSET_CREATE_FLAG_BIT_FORCEADD = 0,
IPSET_CREATE_FLAG_FORCEADD = (1 << IPSET_CREATE_FLAG_BIT_FORCEADD),
- IPSET_CREATE_FLAG_BIT_BUCKETSIZE = 1,
- IPSET_CREATE_FLAG_BUCKETSIZE = (1 << IPSET_CREATE_FLAG_BIT_BUCKETSIZE),
IPSET_CREATE_FLAG_BIT_MAX = 7,
};
diff --git a/original/uapi/linux/netfilter/nf_conntrack_common.h b/original/uapi/linux/netfilter/nf_conntrack_common.h
index 4b33950..336014b 100644
--- a/original/uapi/linux/netfilter/nf_conntrack_common.h
+++ b/original/uapi/linux/netfilter/nf_conntrack_common.h
@@ -97,15 +97,6 @@ enum ip_conntrack_status {
IPS_UNTRACKED_BIT = 12,
IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
-#ifdef __KERNEL__
- /* Re-purposed for in-kernel use:
- * Tags a conntrack entry that clashed with an existing entry
- * on insert.
- */
- IPS_NAT_CLASH_BIT = IPS_UNTRACKED_BIT,
- IPS_NAT_CLASH = IPS_UNTRACKED,
-#endif
-
/* Conntrack got a helper explicitly attached via CT target. */
IPS_HELPER_BIT = 13,
IPS_HELPER = (1 << IPS_HELPER_BIT),
@@ -114,19 +105,14 @@ enum ip_conntrack_status {
IPS_OFFLOAD_BIT = 14,
IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT),
- /* Conntrack has been offloaded to hardware. */
- IPS_HW_OFFLOAD_BIT = 15,
- IPS_HW_OFFLOAD = (1 << IPS_HW_OFFLOAD_BIT),
-
/* Be careful here, modifying these bits can make things messy,
* so don't let users modify them directly.
*/
IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK |
IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING |
- IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED |
- IPS_OFFLOAD | IPS_HW_OFFLOAD),
+ IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_OFFLOAD),
- __IPS_MAX_BIT = 16,
+ __IPS_MAX_BIT = 15,
};
/* Connection tracking event types */
diff --git a/original/uapi/linux/netfilter/nf_nat.h b/original/uapi/linux/netfilter/nf_nat.h
index a64586e..4a95c0d 100644
--- a/original/uapi/linux/netfilter/nf_nat.h
+++ b/original/uapi/linux/netfilter/nf_nat.h
@@ -11,7 +11,6 @@
#define NF_NAT_RANGE_PERSISTENT (1 << 3)
#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4)
#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5)
-#define NF_NAT_RANGE_NETMAP (1 << 6)
#define NF_NAT_RANGE_PROTO_RANDOM_ALL \
(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
@@ -19,8 +18,7 @@
#define NF_NAT_RANGE_MASK \
(NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \
NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \
- NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \
- NF_NAT_RANGE_NETMAP)
+ NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET)
struct nf_nat_ipv4_range {
unsigned int flags;
diff --git a/original/uapi/linux/netfilter/nf_tables.h b/original/uapi/linux/netfilter/nf_tables.h
index 79bab7a..bb9b049 100644
--- a/original/uapi/linux/netfilter/nf_tables.h
+++ b/original/uapi/linux/netfilter/nf_tables.h
@@ -48,7 +48,6 @@ enum nft_registers {
#define NFT_REG_SIZE 16
#define NFT_REG32_SIZE 4
-#define NFT_REG32_COUNT (NFT_REG32_15 - NFT_REG32_00 + 1)
/**
* enum nft_verdicts - nf_tables internal verdicts
@@ -133,7 +132,7 @@ enum nf_tables_msg_types {
* @NFTA_LIST_ELEM: list element (NLA_NESTED)
*/
enum nft_list_attributes {
- NFTA_LIST_UNSPEC,
+ NFTA_LIST_UNPEC,
NFTA_LIST_ELEM,
__NFTA_LIST_MAX
};
@@ -164,10 +163,7 @@ enum nft_hook_attributes {
*/
enum nft_table_flags {
NFT_TABLE_F_DORMANT = 0x1,
- NFT_TABLE_F_OWNER = 0x2,
};
-#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT | \
- NFT_TABLE_F_OWNER)
/**
* enum nft_table_attributes - nf_tables table netlink attributes
@@ -175,8 +171,6 @@ enum nft_table_flags {
* @NFTA_TABLE_NAME: name of the table (NLA_STRING)
* @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32)
* @NFTA_TABLE_USE: number of chains in this table (NLA_U32)
- * @NFTA_TABLE_USERDATA: user data (NLA_BINARY)
- * @NFTA_TABLE_OWNER: owner of this table through netlink portID (NLA_U32)
*/
enum nft_table_attributes {
NFTA_TABLE_UNSPEC,
@@ -185,21 +179,10 @@ enum nft_table_attributes {
NFTA_TABLE_USE,
NFTA_TABLE_HANDLE,
NFTA_TABLE_PAD,
- NFTA_TABLE_USERDATA,
- NFTA_TABLE_OWNER,
__NFTA_TABLE_MAX
};
#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
-enum nft_chain_flags {
- NFT_CHAIN_BASE = (1 << 0),
- NFT_CHAIN_HW_OFFLOAD = (1 << 1),
- NFT_CHAIN_BINDING = (1 << 2),
-};
-#define NFT_CHAIN_FLAGS (NFT_CHAIN_BASE | \
- NFT_CHAIN_HW_OFFLOAD | \
- NFT_CHAIN_BINDING)
-
/**
* enum nft_chain_attributes - nf_tables chain netlink attributes
*
@@ -212,8 +195,6 @@ enum nft_chain_flags {
* @NFTA_CHAIN_TYPE: type name of the string (NLA_NUL_STRING)
* @NFTA_CHAIN_COUNTERS: counter specification of the chain (NLA_NESTED: nft_counter_attributes)
* @NFTA_CHAIN_FLAGS: chain flags
- * @NFTA_CHAIN_ID: uniquely identifies a chain in a transaction (NLA_U32)
- * @NFTA_CHAIN_USERDATA: user data (NLA_BINARY)
*/
enum nft_chain_attributes {
NFTA_CHAIN_UNSPEC,
@@ -227,8 +208,6 @@ enum nft_chain_attributes {
NFTA_CHAIN_COUNTERS,
NFTA_CHAIN_PAD,
NFTA_CHAIN_FLAGS,
- NFTA_CHAIN_ID,
- NFTA_CHAIN_USERDATA,
__NFTA_CHAIN_MAX
};
#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
@@ -258,7 +237,6 @@ enum nft_rule_attributes {
NFTA_RULE_PAD,
NFTA_RULE_ID,
NFTA_RULE_POSITION_ID,
- NFTA_RULE_CHAIN_ID,
__NFTA_RULE_MAX
};
#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
@@ -297,8 +275,6 @@ enum nft_rule_compat_attributes {
* @NFT_SET_TIMEOUT: set uses timeouts
* @NFT_SET_EVAL: set can be updated from the evaluation path
* @NFT_SET_OBJECT: set contains stateful objects
- * @NFT_SET_CONCAT: set contains a concatenation
- * @NFT_SET_EXPR: set contains expressions
*/
enum nft_set_flags {
NFT_SET_ANONYMOUS = 0x1,
@@ -308,8 +284,6 @@ enum nft_set_flags {
NFT_SET_TIMEOUT = 0x10,
NFT_SET_EVAL = 0x20,
NFT_SET_OBJECT = 0x40,
- NFT_SET_CONCAT = 0x80,
- NFT_SET_EXPR = 0x100,
};
/**
@@ -327,29 +301,15 @@ enum nft_set_policies {
* enum nft_set_desc_attributes - set element description
*
* @NFTA_SET_DESC_SIZE: number of elements in set (NLA_U32)
- * @NFTA_SET_DESC_CONCAT: description of field concatenation (NLA_NESTED)
*/
enum nft_set_desc_attributes {
NFTA_SET_DESC_UNSPEC,
NFTA_SET_DESC_SIZE,
- NFTA_SET_DESC_CONCAT,
__NFTA_SET_DESC_MAX
};
#define NFTA_SET_DESC_MAX (__NFTA_SET_DESC_MAX - 1)
/**
- * enum nft_set_field_attributes - attributes of concatenated fields
- *
- * @NFTA_SET_FIELD_LEN: length of single field, in bits (NLA_U32)
- */
-enum nft_set_field_attributes {
- NFTA_SET_FIELD_UNSPEC,
- NFTA_SET_FIELD_LEN,
- __NFTA_SET_FIELD_MAX
-};
-#define NFTA_SET_FIELD_MAX (__NFTA_SET_FIELD_MAX - 1)
-
-/**
* enum nft_set_attributes - nf_tables set netlink attributes
*
* @NFTA_SET_TABLE: table name (NLA_STRING)
@@ -367,8 +327,6 @@ enum nft_set_field_attributes {
* @NFTA_SET_USERDATA: user data (NLA_BINARY)
* @NFTA_SET_OBJ_TYPE: stateful object type (NLA_U32: NFT_OBJECT_*)
* @NFTA_SET_HANDLE: set handle (NLA_U64)
- * @NFTA_SET_EXPR: set expression (NLA_NESTED: nft_expr_attributes)
- * @NFTA_SET_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes)
*/
enum nft_set_attributes {
NFTA_SET_UNSPEC,
@@ -388,8 +346,6 @@ enum nft_set_attributes {
NFTA_SET_PAD,
NFTA_SET_OBJ_TYPE,
NFTA_SET_HANDLE,
- NFTA_SET_EXPR,
- NFTA_SET_EXPRESSIONS,
__NFTA_SET_MAX
};
#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
@@ -414,8 +370,6 @@ enum nft_set_elem_flags {
* @NFTA_SET_ELEM_USERDATA: user data (NLA_BINARY)
* @NFTA_SET_ELEM_EXPR: expression (NLA_NESTED: nft_expr_attributes)
* @NFTA_SET_ELEM_OBJREF: stateful object reference (NLA_STRING)
- * @NFTA_SET_ELEM_KEY_END: closing key value (NLA_NESTED: nft_data)
- * @NFTA_SET_ELEM_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes)
*/
enum nft_set_elem_attributes {
NFTA_SET_ELEM_UNSPEC,
@@ -428,8 +382,6 @@ enum nft_set_elem_attributes {
NFTA_SET_ELEM_EXPR,
NFTA_SET_ELEM_PAD,
NFTA_SET_ELEM_OBJREF,
- NFTA_SET_ELEM_KEY_END,
- NFTA_SET_ELEM_EXPRESSIONS,
__NFTA_SET_ELEM_MAX
};
#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
@@ -495,13 +447,11 @@ enum nft_data_attributes {
*
* @NFTA_VERDICT_CODE: nf_tables verdict (NLA_U32: enum nft_verdicts)
* @NFTA_VERDICT_CHAIN: jump target chain name (NLA_STRING)
- * @NFTA_VERDICT_CHAIN_ID: jump target chain ID (NLA_U32)
*/
enum nft_verdict_attributes {
NFTA_VERDICT_UNSPEC,
NFTA_VERDICT_CODE,
NFTA_VERDICT_CHAIN,
- NFTA_VERDICT_CHAIN_ID,
__NFTA_VERDICT_MAX
};
#define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1)
@@ -535,20 +485,6 @@ enum nft_immediate_attributes {
#define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1)
/**
- * enum nft_bitwise_ops - nf_tables bitwise operations
- *
- * @NFT_BITWISE_BOOL: mask-and-xor operation used to implement NOT, AND, OR and
- * XOR boolean operations
- * @NFT_BITWISE_LSHIFT: left-shift operation
- * @NFT_BITWISE_RSHIFT: right-shift operation
- */
-enum nft_bitwise_ops {
- NFT_BITWISE_BOOL,
- NFT_BITWISE_LSHIFT,
- NFT_BITWISE_RSHIFT,
-};
-
-/**
* enum nft_bitwise_attributes - nf_tables bitwise expression netlink attributes
*
* @NFTA_BITWISE_SREG: source register (NLA_U32: nft_registers)
@@ -556,20 +492,16 @@ enum nft_bitwise_ops {
* @NFTA_BITWISE_LEN: length of operands (NLA_U32)
* @NFTA_BITWISE_MASK: mask value (NLA_NESTED: nft_data_attributes)
* @NFTA_BITWISE_XOR: xor value (NLA_NESTED: nft_data_attributes)
- * @NFTA_BITWISE_OP: type of operation (NLA_U32: nft_bitwise_ops)
- * @NFTA_BITWISE_DATA: argument for non-boolean operations
- * (NLA_NESTED: nft_data_attributes)
*
- * The bitwise expression supports boolean and shift operations. It implements
- * the boolean operations by performing the following operation:
+ * The bitwise expression performs the following operation:
*
* dreg = (sreg & mask) ^ xor
*
- * with these mask and xor values:
+ * which allow to express all bitwise operations:
*
* mask xor
* NOT: 1 1
- * OR: ~x x
+ * OR: 0 x
* XOR: 1 x
* AND: x 0
*/
@@ -580,8 +512,6 @@ enum nft_bitwise_attributes {
NFTA_BITWISE_LEN,
NFTA_BITWISE_MASK,
NFTA_BITWISE_XOR,
- NFTA_BITWISE_OP,
- NFTA_BITWISE_DATA,
__NFTA_BITWISE_MAX
};
#define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1)
@@ -713,7 +643,6 @@ enum nft_dynset_ops {
enum nft_dynset_flags {
NFT_DYNSET_F_INV = (1 << 0),
- NFT_DYNSET_F_EXPR = (1 << 1),
};
/**
@@ -727,7 +656,6 @@ enum nft_dynset_flags {
* @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64)
* @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes)
* @NFTA_DYNSET_FLAGS: flags (NLA_U32)
- * @NFTA_DYNSET_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes)
*/
enum nft_dynset_attributes {
NFTA_DYNSET_UNSPEC,
@@ -740,7 +668,6 @@ enum nft_dynset_attributes {
NFTA_DYNSET_EXPR,
NFTA_DYNSET_PAD,
NFTA_DYNSET_FLAGS,
- NFTA_DYNSET_EXPRESSIONS,
__NFTA_DYNSET_MAX,
};
#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
@@ -763,12 +690,10 @@ enum nft_payload_bases {
*
* @NFT_PAYLOAD_CSUM_NONE: no checksumming
* @NFT_PAYLOAD_CSUM_INET: internet checksum (RFC 791)
- * @NFT_PAYLOAD_CSUM_SCTP: CRC-32c, for use in SCTP header (RFC 3309)
*/
enum nft_payload_csum_types {
NFT_PAYLOAD_CSUM_NONE,
NFT_PAYLOAD_CSUM_INET,
- NFT_PAYLOAD_CSUM_SCTP,
};
enum nft_payload_csum_flags {
@@ -880,8 +805,6 @@ enum nft_exthdr_attributes {
* @NFT_META_TIME_NS: time since epoch (in nanoseconds)
* @NFT_META_TIME_DAY: day of week (from 0 = Sunday to 6 = Saturday)
* @NFT_META_TIME_HOUR: hour of day (in seconds)
- * @NFT_META_SDIF: slave device interface index
- * @NFT_META_SDIFNAME: slave device interface name
*/
enum nft_meta_keys {
NFT_META_LEN,
@@ -917,8 +840,6 @@ enum nft_meta_keys {
NFT_META_TIME_NS,
NFT_META_TIME_DAY,
NFT_META_TIME_HOUR,
- NFT_META_SDIF,
- NFT_META_SDIFNAME,
};
/**
@@ -1028,12 +949,10 @@ enum nft_socket_attributes {
*
* @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option
* @NFT_SOCKET_MARK: Value of the socket mark
- * @NFT_SOCKET_WILDCARD: Whether the socket is zero-bound (e.g. 0.0.0.0 or ::0)
*/
enum nft_socket_keys {
NFT_SOCKET_TRANSPARENT,
NFT_SOCKET_MARK,
- NFT_SOCKET_WILDCARD,
__NFT_SOCKET_MAX
};
#define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -1577,7 +1496,6 @@ enum nft_ct_expectation_attributes {
* @NFTA_OBJ_DATA: stateful object data (NLA_NESTED)
* @NFTA_OBJ_USE: number of references to this expression (NLA_U32)
* @NFTA_OBJ_HANDLE: object handle (NLA_U64)
- * @NFTA_OBJ_USERDATA: user data (NLA_BINARY)
*/
enum nft_object_attributes {
NFTA_OBJ_UNSPEC,
@@ -1588,25 +1506,11 @@ enum nft_object_attributes {
NFTA_OBJ_USE,
NFTA_OBJ_HANDLE,
NFTA_OBJ_PAD,
- NFTA_OBJ_USERDATA,
__NFTA_OBJ_MAX
};
#define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1)
/**
- * enum nft_flowtable_flags - nf_tables flowtable flags
- *
- * @NFT_FLOWTABLE_HW_OFFLOAD: flowtable hardware offload is enabled
- * @NFT_FLOWTABLE_COUNTER: enable flow counters
- */
-enum nft_flowtable_flags {
- NFT_FLOWTABLE_HW_OFFLOAD = 0x1,
- NFT_FLOWTABLE_COUNTER = 0x2,
- NFT_FLOWTABLE_MASK = (NFT_FLOWTABLE_HW_OFFLOAD |
- NFT_FLOWTABLE_COUNTER)
-};
-
-/**
* enum nft_flowtable_attributes - nf_tables flow table netlink attributes
*
* @NFTA_FLOWTABLE_TABLE: name of the table containing the expression (NLA_STRING)
@@ -1825,7 +1729,6 @@ enum nft_tunnel_opts_attributes {
NFTA_TUNNEL_KEY_OPTS_UNSPEC,
NFTA_TUNNEL_KEY_OPTS_VXLAN,
NFTA_TUNNEL_KEY_OPTS_ERSPAN,
- NFTA_TUNNEL_KEY_OPTS_GENEVE,
__NFTA_TUNNEL_KEY_OPTS_MAX
};
#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
@@ -1847,15 +1750,6 @@ enum nft_tunnel_opts_erspan_attributes {
};
#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
-enum nft_tunnel_opts_geneve_attributes {
- NFTA_TUNNEL_KEY_GENEVE_UNSPEC,
- NFTA_TUNNEL_KEY_GENEVE_CLASS,
- NFTA_TUNNEL_KEY_GENEVE_TYPE,
- NFTA_TUNNEL_KEY_GENEVE_DATA,
- __NFTA_TUNNEL_KEY_GENEVE_MAX
-};
-#define NFTA_TUNNEL_KEY_GENEVE_MAX (__NFTA_TUNNEL_KEY_GENEVE_MAX - 1)
-
enum nft_tunnel_flags {
NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
diff --git a/original/uapi/linux/netfilter/nfnetlink_conntrack.h b/original/uapi/linux/netfilter/nfnetlink_conntrack.h
index d8484be..1d41810 100644
--- a/original/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/original/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -55,7 +55,6 @@ enum ctattr_type {
CTA_LABELS,
CTA_LABELS_MASK,
CTA_SYNPROXY,
- CTA_FILTER,
__CTA_MAX
};
#define CTA_MAX (__CTA_MAX - 1)
@@ -247,7 +246,7 @@ enum ctattr_stats_cpu {
CTA_STATS_FOUND,
CTA_STATS_NEW, /* no longer used */
CTA_STATS_INVALID,
- CTA_STATS_IGNORE, /* no longer used */
+ CTA_STATS_IGNORE,
CTA_STATS_DELETE, /* no longer used */
CTA_STATS_DELETE_LIST, /* no longer used */
CTA_STATS_INSERT,
@@ -256,7 +255,6 @@ enum ctattr_stats_cpu {
CTA_STATS_EARLY_DROP,
CTA_STATS_ERROR,
CTA_STATS_SEARCH_RESTART,
- CTA_STATS_CLASH_RESOLVE,
__CTA_STATS_MAX,
};
#define CTA_STATS_MAX (__CTA_STATS_MAX - 1)
@@ -278,12 +276,4 @@ enum ctattr_expect_stats {
};
#define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1)
-enum ctattr_filter {
- CTA_FILTER_UNSPEC,
- CTA_FILTER_ORIG_FLAGS,
- CTA_FILTER_REPLY_FLAGS,
- __CTA_FILTER_MAX
-};
-#define CTA_FILTER_MAX (__CTA_FILTER_MAX - 1)
-
#endif /* _IPCONNTRACK_NETLINK_H */
diff --git a/original/uapi/linux/netfilter/nfnetlink_cthelper.h b/original/uapi/linux/netfilter/nfnetlink_cthelper.h
index 70af020..a13137a 100644
--- a/original/uapi/linux/netfilter/nfnetlink_cthelper.h
+++ b/original/uapi/linux/netfilter/nfnetlink_cthelper.h
@@ -5,7 +5,7 @@
#define NFCT_HELPER_STATUS_DISABLED 0
#define NFCT_HELPER_STATUS_ENABLED 1
-enum nfnl_cthelper_msg_types {
+enum nfnl_acct_msg_types {
NFNL_MSG_CTHELPER_NEW,
NFNL_MSG_CTHELPER_GET,
NFNL_MSG_CTHELPER_DEL,
diff --git a/original/uapi/linux/netfilter/x_tables.h b/original/uapi/linux/netfilter/x_tables.h
index b8c6bb2..a8283f7 100644
--- a/original/uapi/linux/netfilter/x_tables.h
+++ b/original/uapi/linux/netfilter/x_tables.h
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_X_TABLES_H
#define _UAPI_X_TABLES_H
-#include <linux/const.h>
+#include <linux/kernel.h>
#include <linux/types.h>
#define XT_FUNCTION_MAXNAMELEN 30
diff --git a/original/uapi/linux/netfilter/xt_IDLETIMER.h b/original/uapi/linux/netfilter/xt_IDLETIMER.h
index 49ddcdc..c82a1c1 100644
--- a/original/uapi/linux/netfilter/xt_IDLETIMER.h
+++ b/original/uapi/linux/netfilter/xt_IDLETIMER.h
@@ -1,9 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* linux/include/linux/netfilter/xt_IDLETIMER.h
*
* Header file for Xtables timer target module.
*
* Copyright (C) 2004, 2010 Nokia Corporation
+ *
* Written by Timo Teras <ext-timo.teras@nokia.com>
*
* Converted to x_tables and forward-ported to 2.6.34
@@ -32,26 +34,21 @@
#include <linux/types.h>
#define MAX_IDLETIMER_LABEL_SIZE 28
-#define XT_IDLETIMER_ALARM 0x01
-
-struct idletimer_tg_info {
- __u32 timeout;
+#define NLMSG_MAX_SIZE 64
- char label[MAX_IDLETIMER_LABEL_SIZE];
+#define NL_EVENT_TYPE_INACTIVE 0
+#define NL_EVENT_TYPE_ACTIVE 1
- /* for kernel module internal use only */
- struct idletimer_tg *timer __attribute__((aligned(8)));
-};
-
-struct idletimer_tg_info_v1 {
+struct idletimer_tg_info {
__u32 timeout;
char label[MAX_IDLETIMER_LABEL_SIZE];
- __u8 send_nl_msg; /* unused: for compatibility with Android */
- __u8 timer_type;
+ /* Use netlink messages for notification in addition to sysfs */
+ __u8 send_nl_msg;
/* for kernel module internal use only */
struct idletimer_tg *timer __attribute__((aligned(8)));
};
+
#endif
diff --git a/original/uapi/linux/netfilter/xt_connmark.h b/original/uapi/linux/netfilter/xt_connmark.h
index f01c19b..1aa5c95 100644
--- a/original/uapi/linux/netfilter/xt_connmark.h
+++ b/original/uapi/linux/netfilter/xt_connmark.h
@@ -4,7 +4,7 @@
#include <linux/types.h>
-/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
+/* Copyright (C) 2002,2004 MARA Systems AB <http://www.marasystems.com>
* by Henrik Nordstrom <hno@marasystems.com>
*
* This program is free software; you can redistribute it and/or modify
diff --git a/original/uapi/linux/netlink.h b/original/uapi/linux/netlink.h
index 3d94269..0a4d733 100644
--- a/original/uapi/linux/netlink.h
+++ b/original/uapi/linux/netlink.h
@@ -2,7 +2,7 @@
#ifndef _UAPI__LINUX_NETLINK_H
#define _UAPI__LINUX_NETLINK_H
-#include <linux/const.h>
+#include <linux/kernel.h>
#include <linux/socket.h> /* for __kernel_sa_family_t */
#include <linux/types.h>
@@ -129,7 +129,6 @@ struct nlmsgerr {
* @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to
* be used - in the success case - to identify a created
* object or operation or similar (binary)
- * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute
* @__NLMSGERR_ATTR_MAX: number of attributes
* @NLMSGERR_ATTR_MAX: highest attribute number
*/
@@ -138,7 +137,6 @@ enum nlmsgerr_attrs {
NLMSGERR_ATTR_MSG,
NLMSGERR_ATTR_OFFS,
NLMSGERR_ATTR_COOKIE,
- NLMSGERR_ATTR_POLICY,
__NLMSGERR_ATTR_MAX,
NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
@@ -251,109 +249,4 @@ struct nla_bitfield32 {
__u32 selector;
};
-/*
- * policy descriptions - it's specific to each family how this is used
- * Normally, it should be retrieved via a dump inside another attribute
- * specifying where it applies.
- */
-
-/**
- * enum netlink_attribute_type - type of an attribute
- * @NL_ATTR_TYPE_INVALID: unused
- * @NL_ATTR_TYPE_FLAG: flag attribute (present/not present)
- * @NL_ATTR_TYPE_U8: 8-bit unsigned attribute
- * @NL_ATTR_TYPE_U16: 16-bit unsigned attribute
- * @NL_ATTR_TYPE_U32: 32-bit unsigned attribute
- * @NL_ATTR_TYPE_U64: 64-bit unsigned attribute
- * @NL_ATTR_TYPE_S8: 8-bit signed attribute
- * @NL_ATTR_TYPE_S16: 16-bit signed attribute
- * @NL_ATTR_TYPE_S32: 32-bit signed attribute
- * @NL_ATTR_TYPE_S64: 64-bit signed attribute
- * @NL_ATTR_TYPE_BINARY: binary data, min/max length may be specified
- * @NL_ATTR_TYPE_STRING: string, min/max length may be specified
- * @NL_ATTR_TYPE_NUL_STRING: NUL-terminated string,
- * min/max length may be specified
- * @NL_ATTR_TYPE_NESTED: nested, i.e. the content of this attribute
- * consists of sub-attributes. The nested policy and maxtype
- * inside may be specified.
- * @NL_ATTR_TYPE_NESTED_ARRAY: nested array, i.e. the content of this
- * attribute contains sub-attributes whose type is irrelevant
- * (just used to separate the array entries) and each such array
- * entry has attributes again, the policy for those inner ones
- * and the corresponding maxtype may be specified.
- * @NL_ATTR_TYPE_BITFIELD32: &struct nla_bitfield32 attribute
- */
-enum netlink_attribute_type {
- NL_ATTR_TYPE_INVALID,
-
- NL_ATTR_TYPE_FLAG,
-
- NL_ATTR_TYPE_U8,
- NL_ATTR_TYPE_U16,
- NL_ATTR_TYPE_U32,
- NL_ATTR_TYPE_U64,
-
- NL_ATTR_TYPE_S8,
- NL_ATTR_TYPE_S16,
- NL_ATTR_TYPE_S32,
- NL_ATTR_TYPE_S64,
-
- NL_ATTR_TYPE_BINARY,
- NL_ATTR_TYPE_STRING,
- NL_ATTR_TYPE_NUL_STRING,
-
- NL_ATTR_TYPE_NESTED,
- NL_ATTR_TYPE_NESTED_ARRAY,
-
- NL_ATTR_TYPE_BITFIELD32,
-};
-
-/**
- * enum netlink_policy_type_attr - policy type attributes
- * @NL_POLICY_TYPE_ATTR_UNSPEC: unused
- * @NL_POLICY_TYPE_ATTR_TYPE: type of the attribute,
- * &enum netlink_attribute_type (U32)
- * @NL_POLICY_TYPE_ATTR_MIN_VALUE_S: minimum value for signed
- * integers (S64)
- * @NL_POLICY_TYPE_ATTR_MAX_VALUE_S: maximum value for signed
- * integers (S64)
- * @NL_POLICY_TYPE_ATTR_MIN_VALUE_U: minimum value for unsigned
- * integers (U64)
- * @NL_POLICY_TYPE_ATTR_MAX_VALUE_U: maximum value for unsigned
- * integers (U64)
- * @NL_POLICY_TYPE_ATTR_MIN_LENGTH: minimum length for binary
- * attributes, no minimum if not given (U32)
- * @NL_POLICY_TYPE_ATTR_MAX_LENGTH: maximum length for binary
- * attributes, no maximum if not given (U32)
- * @NL_POLICY_TYPE_ATTR_POLICY_IDX: sub policy for nested and
- * nested array types (U32)
- * @NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE: maximum sub policy
- * attribute for nested and nested array types, this can
- * in theory be < the size of the policy pointed to by
- * the index, if limited inside the nesting (U32)
- * @NL_POLICY_TYPE_ATTR_BITFIELD32_MASK: valid mask for the
- * bitfield32 type (U32)
- * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)
- * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment
- */
-enum netlink_policy_type_attr {
- NL_POLICY_TYPE_ATTR_UNSPEC,
- NL_POLICY_TYPE_ATTR_TYPE,
- NL_POLICY_TYPE_ATTR_MIN_VALUE_S,
- NL_POLICY_TYPE_ATTR_MAX_VALUE_S,
- NL_POLICY_TYPE_ATTR_MIN_VALUE_U,
- NL_POLICY_TYPE_ATTR_MAX_VALUE_U,
- NL_POLICY_TYPE_ATTR_MIN_LENGTH,
- NL_POLICY_TYPE_ATTR_MAX_LENGTH,
- NL_POLICY_TYPE_ATTR_POLICY_IDX,
- NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE,
- NL_POLICY_TYPE_ATTR_BITFIELD32_MASK,
- NL_POLICY_TYPE_ATTR_PAD,
- NL_POLICY_TYPE_ATTR_MASK,
-
- /* keep last */
- __NL_POLICY_TYPE_ATTR_MAX,
- NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_TYPE_ATTR_MAX - 1
-};
-
#endif /* _UAPI__LINUX_NETLINK_H */
diff --git a/original/uapi/linux/nexthop.h b/original/uapi/linux/nexthop.h
index 2d4a1e7..7b61867 100644
--- a/original/uapi/linux/nexthop.h
+++ b/original/uapi/linux/nexthop.h
@@ -49,9 +49,6 @@ enum {
NHA_GROUPS, /* flag; only return nexthop groups in dump */
NHA_MASTER, /* u32; only return nexthops with given master dev */
- NHA_FDB, /* flag; nexthop belongs to a bridge fdb */
- /* if NHA_FDB is added, OIF, BLACKHOLE, ENCAP cannot be set */
-
__NHA_MAX,
};
diff --git a/original/uapi/linux/nfs3.h b/original/uapi/linux/nfs3.h
index c22ab77..37e4b34 100644
--- a/original/uapi/linux/nfs3.h
+++ b/original/uapi/linux/nfs3.h
@@ -63,12 +63,6 @@ enum nfs3_ftype {
NF3BAD = 8
};
-enum nfs3_time_how {
- DONT_CHANGE = 0,
- SET_TO_SERVER_TIME = 1,
- SET_TO_CLIENT_TIME = 2,
-};
-
struct nfs3_fh {
unsigned short size;
unsigned char data[NFS3_FHSIZE];
diff --git a/original/uapi/linux/nfs4.h b/original/uapi/linux/nfs4.h
index ed5415e..8572930 100644
--- a/original/uapi/linux/nfs4.h
+++ b/original/uapi/linux/nfs4.h
@@ -33,9 +33,6 @@
#define NFS4_ACCESS_EXTEND 0x0008
#define NFS4_ACCESS_DELETE 0x0010
#define NFS4_ACCESS_EXECUTE 0x0020
-#define NFS4_ACCESS_XAREAD 0x0040
-#define NFS4_ACCESS_XAWRITE 0x0080
-#define NFS4_ACCESS_XALIST 0x0100
#define NFS4_FH_PERSISTENT 0x0000
#define NFS4_FH_NOEXPIRE_WITH_OPEN 0x0001
@@ -139,8 +136,6 @@
#define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A 0x40000000
#define EXCHGID4_FLAG_CONFIRMED_R 0x80000000
-
-#define EXCHGID4_FLAG_SUPP_FENCE_OPS 0x00000004
/*
* Since the validity of these bits depends on whether
* they're set in the argument or response, have separate
@@ -148,7 +143,6 @@
*/
#define EXCHGID4_FLAG_MASK_A 0x40070103
#define EXCHGID4_FLAG_MASK_R 0x80070103
-#define EXCHGID4_2_FLAG_MASK_R 0x80070107
#define SEQ4_STATUS_CB_PATH_DOWN 0x00000001
#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING 0x00000002
diff --git a/original/uapi/linux/nfs_fs.h b/original/uapi/linux/nfs_fs.h
index 3afe376..7bcc8cd 100644
--- a/original/uapi/linux/nfs_fs.h
+++ b/original/uapi/linux/nfs_fs.h
@@ -56,7 +56,6 @@
#define NFSDBG_PNFS 0x1000
#define NFSDBG_PNFS_LD 0x2000
#define NFSDBG_STATE 0x4000
-#define NFSDBG_XATTRCACHE 0x8000
#define NFSDBG_ALL 0xFFFF
diff --git a/original/uapi/linux/nfsacl.h b/original/uapi/linux/nfsacl.h
index 2c2ad20..ca9a850 100644
--- a/original/uapi/linux/nfsacl.h
+++ b/original/uapi/linux/nfsacl.h
@@ -9,13 +9,11 @@
#define NFS_ACL_PROGRAM 100227
-#define ACLPROC2_NULL 0
#define ACLPROC2_GETACL 1
#define ACLPROC2_SETACL 2
#define ACLPROC2_GETATTR 3
#define ACLPROC2_ACCESS 4
-#define ACLPROC3_NULL 0
#define ACLPROC3_GETACL 1
#define ACLPROC3_SETACL 2
diff --git a/original/uapi/linux/nitro_enclaves.h b/original/uapi/linux/nitro_enclaves.h
deleted file mode 100644
index b945073..0000000
--- a/original/uapi/linux/nitro_enclaves.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- */
-
-#ifndef _UAPI_LINUX_NITRO_ENCLAVES_H_
-#define _UAPI_LINUX_NITRO_ENCLAVES_H_
-
-#include <linux/types.h>
-
-/**
- * DOC: Nitro Enclaves (NE) Kernel Driver Interface
- */
-
-/**
- * NE_CREATE_VM - The command is used to create a slot that is associated with
- * an enclave VM.
- * The generated unique slot id is an output parameter.
- * The ioctl can be invoked on the /dev/nitro_enclaves fd, before
- * setting any resources, such as memory and vCPUs, for an
- * enclave. Memory and vCPUs are set for the slot mapped to an enclave.
- * A NE CPU pool has to be set before calling this function. The
- * pool can be set after the NE driver load, using
- * /sys/module/nitro_enclaves/parameters/ne_cpus.
- * Its format is the detailed in the cpu-lists section:
- * https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
- * CPU 0 and its siblings have to remain available for the
- * primary / parent VM, so they cannot be set for enclaves. Full
- * CPU core(s), from the same NUMA node, need(s) to be included
- * in the CPU pool.
- *
- * Context: Process context.
- * Return:
- * * Enclave file descriptor - Enclave file descriptor used with
- * ioctl calls to set vCPUs and memory
- * regions, then start the enclave.
- * * -1 - There was a failure in the ioctl logic.
- * On failure, errno is set to:
- * * EFAULT - copy_to_user() failure.
- * * ENOMEM - Memory allocation failure for internal
- * bookkeeping variables.
- * * NE_ERR_NO_CPUS_AVAIL_IN_POOL - No NE CPU pool set / no CPUs available
- * in the pool.
- * * Error codes from get_unused_fd_flags() and anon_inode_getfile().
- * * Error codes from the NE PCI device request.
- */
-#define NE_CREATE_VM _IOR(0xAE, 0x20, __u64)
-
-/**
- * NE_ADD_VCPU - The command is used to set a vCPU for an enclave. The vCPU can
- * be auto-chosen from the NE CPU pool or it can be set by the
- * caller, with the note that it needs to be available in the NE
- * CPU pool. Full CPU core(s), from the same NUMA node, need(s) to
- * be associated with an enclave.
- * The vCPU id is an input / output parameter. If its value is 0,
- * then a CPU is chosen from the enclave CPU pool and returned via
- * this parameter.
- * The ioctl can be invoked on the enclave fd, before an enclave
- * is started.
- *
- * Context: Process context.
- * Return:
- * * 0 - Logic succesfully completed.
- * * -1 - There was a failure in the ioctl logic.
- * On failure, errno is set to:
- * * EFAULT - copy_from_user() / copy_to_user() failure.
- * * ENOMEM - Memory allocation failure for internal
- * bookkeeping variables.
- * * EIO - Current task mm is not the same as the one
- * that created the enclave.
- * * NE_ERR_NO_CPUS_AVAIL_IN_POOL - No CPUs available in the NE CPU pool.
- * * NE_ERR_VCPU_ALREADY_USED - The provided vCPU is already used.
- * * NE_ERR_VCPU_NOT_IN_CPU_POOL - The provided vCPU is not available in the
- * NE CPU pool.
- * * NE_ERR_VCPU_INVALID_CPU_CORE - The core id of the provided vCPU is invalid
- * or out of range.
- * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state
- * (init = before being started).
- * * NE_ERR_INVALID_VCPU - The provided vCPU is not in the available
- * CPUs range.
- * * Error codes from the NE PCI device request.
- */
-#define NE_ADD_VCPU _IOWR(0xAE, 0x21, __u32)
-
-/**
- * NE_GET_IMAGE_LOAD_INFO - The command is used to get information needed for
- * in-memory enclave image loading e.g. offset in
- * enclave memory to start placing the enclave image.
- * The image load info is an input / output parameter.
- * It includes info provided by the caller - flags -
- * and returns the offset in enclave memory where to
- * start placing the enclave image.
- * The ioctl can be invoked on the enclave fd, before
- * an enclave is started.
- *
- * Context: Process context.
- * Return:
- * * 0 - Logic succesfully completed.
- * * -1 - There was a failure in the ioctl logic.
- * On failure, errno is set to:
- * * EFAULT - copy_from_user() / copy_to_user() failure.
- * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state (init =
- * before being started).
- * * NE_ERR_INVALID_FLAG_VALUE - The value of the provided flag is invalid.
- */
-#define NE_GET_IMAGE_LOAD_INFO _IOWR(0xAE, 0x22, struct ne_image_load_info)
-
-/**
- * NE_SET_USER_MEMORY_REGION - The command is used to set a memory region for an
- * enclave, given the allocated memory from the
- * userspace. Enclave memory needs to be from the
- * same NUMA node as the enclave CPUs.
- * The user memory region is an input parameter. It
- * includes info provided by the caller - flags,
- * memory size and userspace address.
- * The ioctl can be invoked on the enclave fd,
- * before an enclave is started.
- *
- * Context: Process context.
- * Return:
- * * 0 - Logic succesfully completed.
- * * -1 - There was a failure in the ioctl logic.
- * On failure, errno is set to:
- * * EFAULT - copy_from_user() failure.
- * * EINVAL - Invalid physical memory region(s) e.g.
- * unaligned address.
- * * EIO - Current task mm is not the same as
- * the one that created the enclave.
- * * ENOMEM - Memory allocation failure for internal
- * bookkeeping variables.
- * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state
- * (init = before being started).
- * * NE_ERR_INVALID_MEM_REGION_SIZE - The memory size of the region is not
- * multiple of 2 MiB.
- * * NE_ERR_INVALID_MEM_REGION_ADDR - Invalid user space address given.
- * * NE_ERR_UNALIGNED_MEM_REGION_ADDR - Unaligned user space address given.
- * * NE_ERR_MEM_REGION_ALREADY_USED - The memory region is already used.
- * * NE_ERR_MEM_NOT_HUGE_PAGE - The memory region is not backed by
- * huge pages.
- * * NE_ERR_MEM_DIFFERENT_NUMA_NODE - The memory region is not from the same
- * NUMA node as the CPUs.
- * * NE_ERR_MEM_MAX_REGIONS - The number of memory regions set for
- * the enclave reached maximum.
- * * NE_ERR_INVALID_PAGE_SIZE - The memory region is not backed by
- * pages multiple of 2 MiB.
- * * NE_ERR_INVALID_FLAG_VALUE - The value of the provided flag is invalid.
- * * Error codes from get_user_pages().
- * * Error codes from the NE PCI device request.
- */
-#define NE_SET_USER_MEMORY_REGION _IOW(0xAE, 0x23, struct ne_user_memory_region)
-
-/**
- * NE_START_ENCLAVE - The command is used to trigger enclave start after the
- * enclave resources, such as memory and CPU, have been set.
- * The enclave start info is an input / output parameter. It
- * includes info provided by the caller - enclave cid and
- * flags - and returns the cid (if input cid is 0).
- * The ioctl can be invoked on the enclave fd, after an
- * enclave slot is created and resources, such as memory and
- * vCPUs are set for an enclave.
- *
- * Context: Process context.
- * Return:
- * * 0 - Logic succesfully completed.
- * * -1 - There was a failure in the ioctl logic.
- * On failure, errno is set to:
- * * EFAULT - copy_from_user() / copy_to_user() failure.
- * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state
- * (init = before being started).
- * * NE_ERR_NO_MEM_REGIONS_ADDED - No memory regions are set.
- * * NE_ERR_NO_VCPUS_ADDED - No vCPUs are set.
- * * NE_ERR_FULL_CORES_NOT_USED - Full core(s) not set for the enclave.
- * * NE_ERR_ENCLAVE_MEM_MIN_SIZE - Enclave memory is less than minimum
- * memory size (64 MiB).
- * * NE_ERR_INVALID_FLAG_VALUE - The value of the provided flag is invalid.
- * * NE_ERR_INVALID_ENCLAVE_CID - The provided enclave CID is invalid.
- * * Error codes from the NE PCI device request.
- */
-#define NE_START_ENCLAVE _IOWR(0xAE, 0x24, struct ne_enclave_start_info)
-
-/**
- * DOC: NE specific error codes
- */
-
-/**
- * NE_ERR_VCPU_ALREADY_USED - The provided vCPU is already used.
- */
-#define NE_ERR_VCPU_ALREADY_USED (256)
-/**
- * NE_ERR_VCPU_NOT_IN_CPU_POOL - The provided vCPU is not available in the
- * NE CPU pool.
- */
-#define NE_ERR_VCPU_NOT_IN_CPU_POOL (257)
-/**
- * NE_ERR_VCPU_INVALID_CPU_CORE - The core id of the provided vCPU is invalid
- * or out of range of the NE CPU pool.
- */
-#define NE_ERR_VCPU_INVALID_CPU_CORE (258)
-/**
- * NE_ERR_INVALID_MEM_REGION_SIZE - The user space memory region size is not
- * multiple of 2 MiB.
- */
-#define NE_ERR_INVALID_MEM_REGION_SIZE (259)
-/**
- * NE_ERR_INVALID_MEM_REGION_ADDR - The user space memory region address range
- * is invalid.
- */
-#define NE_ERR_INVALID_MEM_REGION_ADDR (260)
-/**
- * NE_ERR_UNALIGNED_MEM_REGION_ADDR - The user space memory region address is
- * not aligned.
- */
-#define NE_ERR_UNALIGNED_MEM_REGION_ADDR (261)
-/**
- * NE_ERR_MEM_REGION_ALREADY_USED - The user space memory region is already used.
- */
-#define NE_ERR_MEM_REGION_ALREADY_USED (262)
-/**
- * NE_ERR_MEM_NOT_HUGE_PAGE - The user space memory region is not backed by
- * contiguous physical huge page(s).
- */
-#define NE_ERR_MEM_NOT_HUGE_PAGE (263)
-/**
- * NE_ERR_MEM_DIFFERENT_NUMA_NODE - The user space memory region is backed by
- * pages from different NUMA nodes than the CPUs.
- */
-#define NE_ERR_MEM_DIFFERENT_NUMA_NODE (264)
-/**
- * NE_ERR_MEM_MAX_REGIONS - The supported max memory regions per enclaves has
- * been reached.
- */
-#define NE_ERR_MEM_MAX_REGIONS (265)
-/**
- * NE_ERR_NO_MEM_REGIONS_ADDED - The command to start an enclave is triggered
- * and no memory regions are added.
- */
-#define NE_ERR_NO_MEM_REGIONS_ADDED (266)
-/**
- * NE_ERR_NO_VCPUS_ADDED - The command to start an enclave is triggered and no
- * vCPUs are added.
- */
-#define NE_ERR_NO_VCPUS_ADDED (267)
-/**
- * NE_ERR_ENCLAVE_MEM_MIN_SIZE - The enclave memory size is lower than the
- * minimum supported.
- */
-#define NE_ERR_ENCLAVE_MEM_MIN_SIZE (268)
-/**
- * NE_ERR_FULL_CORES_NOT_USED - The command to start an enclave is triggered and
- * full CPU cores are not set.
- */
-#define NE_ERR_FULL_CORES_NOT_USED (269)
-/**
- * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state when setting
- * resources or triggering start.
- */
-#define NE_ERR_NOT_IN_INIT_STATE (270)
-/**
- * NE_ERR_INVALID_VCPU - The provided vCPU is out of range of the available CPUs.
- */
-#define NE_ERR_INVALID_VCPU (271)
-/**
- * NE_ERR_NO_CPUS_AVAIL_IN_POOL - The command to create an enclave is triggered
- * and no CPUs are available in the pool.
- */
-#define NE_ERR_NO_CPUS_AVAIL_IN_POOL (272)
-/**
- * NE_ERR_INVALID_PAGE_SIZE - The user space memory region is not backed by pages
- * multiple of 2 MiB.
- */
-#define NE_ERR_INVALID_PAGE_SIZE (273)
-/**
- * NE_ERR_INVALID_FLAG_VALUE - The provided flag value is invalid.
- */
-#define NE_ERR_INVALID_FLAG_VALUE (274)
-/**
- * NE_ERR_INVALID_ENCLAVE_CID - The provided enclave CID is invalid, either
- * being a well-known value or the CID of the
- * parent / primary VM.
- */
-#define NE_ERR_INVALID_ENCLAVE_CID (275)
-
-/**
- * DOC: Image load info flags
- */
-
-/**
- * NE_EIF_IMAGE - Enclave Image Format (EIF)
- */
-#define NE_EIF_IMAGE (0x01)
-
-#define NE_IMAGE_LOAD_MAX_FLAG_VAL (0x02)
-
-/**
- * struct ne_image_load_info - Info necessary for in-memory enclave image
- * loading (in / out).
- * @flags: Flags to determine the enclave image type
- * (e.g. Enclave Image Format - EIF) (in).
- * @memory_offset: Offset in enclave memory where to start placing the
- * enclave image (out).
- */
-struct ne_image_load_info {
- __u64 flags;
- __u64 memory_offset;
-};
-
-/**
- * DOC: User memory region flags
- */
-
-/**
- * NE_DEFAULT_MEMORY_REGION - Memory region for enclave general usage.
- */
-#define NE_DEFAULT_MEMORY_REGION (0x00)
-
-#define NE_MEMORY_REGION_MAX_FLAG_VAL (0x01)
-
-/**
- * struct ne_user_memory_region - Memory region to be set for an enclave (in).
- * @flags: Flags to determine the usage for the memory region (in).
- * @memory_size: The size, in bytes, of the memory region to be set for
- * an enclave (in).
- * @userspace_addr: The start address of the userspace allocated memory of
- * the memory region to set for an enclave (in).
- */
-struct ne_user_memory_region {
- __u64 flags;
- __u64 memory_size;
- __u64 userspace_addr;
-};
-
-/**
- * DOC: Enclave start info flags
- */
-
-/**
- * NE_ENCLAVE_PRODUCTION_MODE - Start enclave in production mode.
- */
-#define NE_ENCLAVE_PRODUCTION_MODE (0x00)
-/**
- * NE_ENCLAVE_DEBUG_MODE - Start enclave in debug mode.
- */
-#define NE_ENCLAVE_DEBUG_MODE (0x01)
-
-#define NE_ENCLAVE_START_MAX_FLAG_VAL (0x02)
-
-/**
- * struct ne_enclave_start_info - Setup info necessary for enclave start (in / out).
- * @flags: Flags for the enclave to start with (e.g. debug mode) (in).
- * @enclave_cid: Context ID (CID) for the enclave vsock device. If 0 as
- * input, the CID is autogenerated by the hypervisor and
- * returned back as output by the driver (in / out).
- */
-struct ne_enclave_start_info {
- __u64 flags;
- __u64 enclave_cid;
-};
-
-#endif /* _UAPI_LINUX_NITRO_ENCLAVES_H_ */
diff --git a/original/uapi/linux/nl80211.h b/original/uapi/linux/nl80211.h
index ac78da9..5eab191 100644
--- a/original/uapi/linux/nl80211.h
+++ b/original/uapi/linux/nl80211.h
@@ -11,7 +11,7 @@
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
* Copyright 2008 Colin McCabe <colin@cozybit.com>
* Copyright 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2020 Intel Corporation
+ * Copyright (C) 2018-2019 Intel Corporation
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -183,27 +183,18 @@
*
* By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers
* can indicate they support offloading EAPOL handshakes for WPA/WPA2
- * preshared key authentication in station mode. In %NL80211_CMD_CONNECT
- * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
- * supporting this offload may reject the %NL80211_CMD_CONNECT when no
- * preshared key material is provided, for example when that driver does
- * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
+ * preshared key authentication. In %NL80211_CMD_CONNECT the preshared
+ * key should be specified using %NL80211_ATTR_PMK. Drivers supporting
+ * this offload may reject the %NL80211_CMD_CONNECT when no preshared
+ * key material is provided, for example when that driver does not
+ * support setting the temporal keys through %CMD_NEW_KEY.
*
* Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be
* set by drivers indicating offload support of the PTK/GTK EAPOL
- * handshakes during 802.1X authentication in station mode. In order to
- * use the offload the %NL80211_CMD_CONNECT should have
- * %NL80211_ATTR_WANT_1X_4WAY_HS attribute flag. Drivers supporting this
- * offload may reject the %NL80211_CMD_CONNECT when the attribute flag is
- * not present.
- *
- * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK flag drivers
- * can indicate they support offloading EAPOL handshakes for WPA/WPA2
- * preshared key authentication in AP mode. In %NL80211_CMD_START_AP
- * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
- * supporting this offload may reject the %NL80211_CMD_START_AP when no
- * preshared key material is provided, for example when that driver does
- * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
+ * handshakes during 802.1X authentication. In order to use the offload
+ * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS
+ * attribute flag. Drivers supporting this offload may reject the
+ * %NL80211_CMD_CONNECT when the attribute flag is not present.
*
* For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK
* using %NL80211_CMD_SET_PMK. For offloaded FT support also
@@ -252,13 +243,9 @@
* DOC: SAE authentication offload
*
* By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
- * support offloading SAE authentication for WPA3-Personal networks in station
- * mode. Similarly @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP flag can be set by
- * drivers indicating the offload support in AP mode.
- *
- * The password for SAE should be specified using %NL80211_ATTR_SAE_PASSWORD in
- * %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP for station and AP mode
- * respectively.
+ * support offloading SAE authentication for WPA3-Personal networks. In
+ * %NL80211_CMD_CONNECT the password for SAE should be specified using
+ * %NL80211_ATTR_SAE_PASSWORD.
*/
/**
@@ -278,29 +265,6 @@
*/
/**
- * DOC: TID configuration
- *
- * TID config support can be checked in the %NL80211_ATTR_TID_CONFIG
- * attribute given in wiphy capabilities.
- *
- * The necessary configuration parameters are mentioned in
- * &enum nl80211_tid_config_attr and it will be passed to the
- * %NL80211_CMD_SET_TID_CONFIG command in %NL80211_ATTR_TID_CONFIG.
- *
- * If the configuration needs to be applied for specific peer then the MAC
- * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
- * configuration will be applied for all the connected peers in the vif except
- * any peers that have peer specific configuration for the TID by default; if
- * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
- * will be overwritten.
- *
- * All this configuration is valid only for STA's current connection
- * i.e. the configuration will be reset to default when the STA connects back
- * after disconnection/roaming, and this configuration will be cleared when
- * the interface goes down.
- */
-
-/**
* enum nl80211_commands - supported nl80211 commands
*
* @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -309,14 +273,13 @@
* to get a list of all present wiphys.
* @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or
* %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
- * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ,
- * %NL80211_ATTR_WIPHY_FREQ_OFFSET (and the attributes determining the
- * channel width; this is used for setting monitor mode channel),
- * %NL80211_ATTR_WIPHY_RETRY_SHORT, %NL80211_ATTR_WIPHY_RETRY_LONG,
- * %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, and/or
- * %NL80211_ATTR_WIPHY_RTS_THRESHOLD. However, for setting the channel,
- * see %NL80211_CMD_SET_CHANNEL instead, the support here is for backward
- * compatibility only.
+ * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the
+ * attributes determining the channel width; this is used for setting
+ * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT,
+ * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
+ * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.
+ * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL
+ * instead, the support here is for backward compatibility only.
* @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
* or rename notification. Has attributes %NL80211_ATTR_WIPHY and
* %NL80211_ATTR_WIPHY_NAME.
@@ -365,8 +328,7 @@
* %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT,
* %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS.
* The channel to use can be set on the interface or be given using the
- * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_FREQ_OFFSET, and the
- * attributes determining channel width.
+ * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width.
* @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP
* @NL80211_CMD_STOP_AP: Stop AP operation on the given interface
* @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP
@@ -376,7 +338,7 @@
* @NL80211_CMD_SET_STATION: Set station attributes for station identified by
* %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
* @NL80211_CMD_NEW_STATION: Add a station with given attributes to the
- * interface identified by %NL80211_ATTR_IFINDEX.
+ * the interface identified by %NL80211_ATTR_IFINDEX.
* @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
* or, if no MAC address given, all stations, on the interface identified
* by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
@@ -396,7 +358,7 @@
* @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by
* %NL80211_ATTR_MAC.
* @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
- * interface identified by %NL80211_ATTR_IFINDEX.
+ * the interface identified by %NL80211_ATTR_IFINDEX.
* @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
* or, if no MAC address given, all mesh paths, on the interface identified
* by %NL80211_ATTR_IFINDEX.
@@ -551,12 +513,11 @@
* interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and
* BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
* the SSID (mainly for association, but is included in authentication
- * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ +
- * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequence of the
- * channel in MHz. %NL80211_ATTR_AUTH_TYPE is used to specify the
- * authentication type. %NL80211_ATTR_IE is used to define IEs
- * (VendorSpecificInfo, but also including RSN IE and FT IEs) to be added
- * to the frame.
+ * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used
+ * to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE
+ * is used to specify the authentication type. %NL80211_ATTR_IE is used to
+ * define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs)
+ * to be added to the frame.
* When used as an event, this reports reception of an Authentication
* frame in station and IBSS modes when the local MLME processed the
* frame, i.e., it was for the local STA and was received in correct
@@ -611,9 +572,8 @@
* requests to connect to a specified network but without separating
* auth and assoc steps. For this, you need to specify the SSID in a
* %NL80211_ATTR_SSID attribute, and can optionally specify the association
- * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE,
- * %NL80211_ATTR_USE_MFP, %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ,
- * %NL80211_ATTR_WIPHY_FREQ_OFFSET, %NL80211_ATTR_CONTROL_PORT,
+ * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
+ * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
* %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
* %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
* %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %NL80211_ATTR_MAC_HINT, and
@@ -651,9 +611,13 @@
* authentication/association or not receiving a response from the AP.
* Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as
* well to remain backwards compatible.
+ * When establishing a security association, drivers that support 4 way
+ * handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when
+ * the 4 way handshake is completed successfully.
* @NL80211_CMD_ROAM: Notification indicating the card/driver roamed by itself.
- * When a security association was established on an 802.1X network using
- * fast transition, this event should be followed by an
+ * When a security association was established with the new AP (e.g. if
+ * the FT protocol was used for roaming or the driver completed the 4 way
+ * handshake), this event should be followed by an
* %NL80211_CMD_PORT_AUTHORIZED event.
* @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
* userspace that a connection was dropped by the AP or due to other
@@ -700,10 +664,6 @@
* four bytes for vendor frames including the OUI. The registration
* cannot be dropped, but is removed automatically when the netlink
* socket is closed. Multiple registrations can be made.
- * The %NL80211_ATTR_RECEIVE_MULTICAST flag attribute can be given if
- * %NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS is available, in which
- * case the registration can also be modified to include/exclude the
- * flag, rather than requiring unregistration to change it.
* @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for
* backward compatibility
* @NL80211_CMD_FRAME: Management frame TX request and RX notification. This
@@ -757,8 +717,7 @@
* of any other interfaces, and other interfaces will again take
* precedence when they are used.
*
- * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface
- * (no longer supported).
+ * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
*
* @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform
* multicast to unicast conversion. When enabled, all multicast packets
@@ -804,7 +763,7 @@
* various triggers. These triggers can be configured through this
* command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
* more background information, see
- * https://wireless.wiki.kernel.org/en/users/Documentation/WoWLAN.
+ * http://wireless.kernel.org/en/users/Documentation/WoWLAN.
* The @NL80211_CMD_SET_WOWLAN command can also be used as a notification
* from the driver reporting the wakeup reason. In this case, the
* @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason
@@ -944,7 +903,7 @@
* @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules.
*
* @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the
- * new channel information (Channel Switch Announcement - CSA)
+ * the new channel information (Channel Switch Announcement - CSA)
* in the beacon for some time (as defined in the
* %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
* new channel. Userspace provides the new channel information (using
@@ -1068,11 +1027,13 @@
* @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
* configured PMK for the authenticator address identified by
* %NL80211_ATTR_MAC.
- * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
- * completed successfully. Drivers that support 4 way handshake offload
- * should send this event after indicating 802.1X FT assocation with
- * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
- * should be indicated instead.
+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way
+ * handshake was completed successfully by the driver. The BSSID is
+ * specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
+ * offload should send this event after indicating 802.11 association with
+ * %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
+ * %NL80211_CMD_DISCONNECT should be indicated instead.
+ *
* @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
* and RX notification. This command is used both as a request to transmit
* a control port frame and as a notification that a control port frame
@@ -1121,7 +1082,7 @@
* randomization may be enabled and configured by specifying the
* %NL80211_ATTR_MAC and %NL80211_ATTR_MAC_MASK attributes.
* If a timeout is requested, use the %NL80211_ATTR_TIMEOUT attribute.
- * A u64 cookie for further %NL80211_ATTR_COOKIE use is returned in
+ * A u64 cookie for further %NL80211_ATTR_COOKIE use is is returned in
* the netlink extended ack message.
*
* To cancel a measurement, close the socket that requested it.
@@ -1164,24 +1125,6 @@
* peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame
* content. The frame is ethernet data.
*
- * @NL80211_CMD_SET_TID_CONFIG: Data frame TID specific configuration
- * is passed using %NL80211_ATTR_TID_CONFIG attribute.
- *
- * @NL80211_CMD_UNPROT_BEACON: Unprotected or incorrectly protected Beacon
- * frame. This event is used to indicate that a received Beacon frame was
- * dropped because it did not include a valid MME MIC while beacon
- * protection was enabled (BIGTK configured in station mode).
- *
- * @NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS: Report TX status of a control
- * port frame transmitted with %NL80211_CMD_CONTROL_PORT_FRAME.
- * %NL80211_ATTR_COOKIE identifies the TX command and %NL80211_ATTR_FRAME
- * includes the contents of the frame. %NL80211_ATTR_ACK flag is included
- * if the recipient acknowledged the frame.
- *
- * @NL80211_CMD_SET_SAR_SPECS: SAR power limitation configuration is
- * passed using %NL80211_ATTR_SAR_SPEC. %NL80211_ATTR_WIPHY is used to
- * specify the wiphy index to be applied to.
- *
* @NL80211_CMD_MAX: highest used command number
* @__NL80211_CMD_AFTER_LAST: internal use
*/
@@ -1406,14 +1349,6 @@ enum nl80211_commands {
NL80211_CMD_PROBE_MESH_LINK,
- NL80211_CMD_SET_TID_CONFIG,
-
- NL80211_CMD_UNPROT_BEACON,
-
- NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
-
- NL80211_CMD_SET_SAR_SPECS,
-
/* add new commands above here */
/* used to define NL80211_CMD_MAX below */
@@ -1459,8 +1394,7 @@ enum nl80211_commands {
* of &enum nl80211_chan_width, describing the channel width. See the
* documentation of the enum for more information.
* @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the
- * channel, used for anything but 20 MHz bandwidth. In S1G this is the
- * operating channel center frequency.
+ * channel, used for anything but 20 MHz bandwidth
* @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the
* channel, used only for 80+80 MHz bandwidth
* @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ
@@ -1525,7 +1459,7 @@ enum nl80211_commands {
* rates as defined by IEEE 802.11 7.3.2.2 but without the length
* restriction (at most %NL80211_MAX_SUPP_RATES).
* @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
- * to, or the AP interface the station was originally added to.
+ * to, or the AP interface the station was originally added to to.
* @NL80211_ATTR_STA_INFO: information about a station, part of station info
* given for %NL80211_CMD_GET_STATION, nested attribute containing
* info as possible, see &enum nl80211_sta_info.
@@ -1670,8 +1604,7 @@ enum nl80211_commands {
* flag is included, then control port frames are sent over NL80211 instead
* using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
* to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
- * flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
- * frames are not forwared over the control port.
+ * flag.
*
* @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
* We recommend using nested, driver-specific attributes within this.
@@ -1757,9 +1690,8 @@ enum nl80211_commands {
* specify just a single bitrate, which is to be used for the beacon.
* The driver must also specify support for this with the extended
* features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
- * NL80211_EXT_FEATURE_BEACON_RATE_HT,
- * NL80211_EXT_FEATURE_BEACON_RATE_VHT and
- * NL80211_EXT_FEATURE_BEACON_RATE_HE.
+ * NL80211_EXT_FEATURE_BEACON_RATE_HT and
+ * NL80211_EXT_FEATURE_BEACON_RATE_VHT.
*
* @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
* at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
@@ -1963,15 +1895,8 @@ enum nl80211_commands {
* @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire
* probe-response frame. The DA field in the 802.11 header is zero-ed out,
* to be filled by the FW.
- * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
- * this feature during association. This is a flag attribute.
- * Currently only supported in mac80211 drivers.
- * @NL80211_ATTR_DISABLE_VHT: Force VHT capable interfaces to disable
- * this feature during association. This is a flag attribute.
- * Currently only supported in mac80211 drivers.
- * @NL80211_ATTR_DISABLE_HE: Force HE capable interfaces to disable
- * this feature during association. This is a flag attribute.
- * Currently only supported in mac80211 drivers.
+ * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
+ * this feature. Currently, only supported in mac80211 drivers.
* @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the
* ATTR_HT_CAPABILITY to which attention should be paid.
* Currently, only mac80211 NICs support this feature.
@@ -2092,14 +2017,13 @@ enum nl80211_commands {
* until the channel switch event.
* @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission
* must be blocked on the current channel (before the channel switch
- * operation). Also included in the channel switch started event if quiet
- * was requested by the AP.
+ * operation).
* @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
* for the time while performing a channel switch.
- * @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel
- * switch or color change counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
- * @NL80211_ATTR_CNTDWN_OFFS_PRESP: An array of offsets (u16) to the channel
- * switch or color change counters in the probe response (%NL80211_ATTR_PROBE_RESP).
+ * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel
+ * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
+ * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel
+ * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP).
*
* @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
* As specified in the &enum nl80211_rxmgmt_flags.
@@ -2107,7 +2031,7 @@ enum nl80211_commands {
* @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels.
*
* @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported
- * operating classes.
+ * supported operating classes.
*
* @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space
* controls DFS operation in IBSS mode. If the flag is included in
@@ -2385,11 +2309,10 @@ enum nl80211_commands {
*
* @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with
* %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID.
- * For %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP it is used to provide
- * PSK for offloading 4-way handshake for WPA/WPA2-PSK networks. For 802.1X
- * authentication it is used with %NL80211_CMD_SET_PMK. For offloaded FT
- * support this attribute specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME
- * is included as well.
+ * For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way
+ * handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is
+ * used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute
+ * specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well.
*
* @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to
* indicate that it supports multiple active scheduled scan requests.
@@ -2419,7 +2342,7 @@ enum nl80211_commands {
* nl80211_txq_stats)
* @NL80211_ATTR_TXQ_LIMIT: Total packet limit for the TXQ queues for this phy.
* The smaller of this and the memory limit is enforced.
- * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory limit (in bytes) for the
+ * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory memory limit (in bytes) for the
* TXQ queues for this phy. The smaller of this and the packet limit is
* enforced.
* @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
@@ -2477,86 +2400,6 @@ enum nl80211_commands {
* @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
* (u16).
*
- * @NL80211_ATTR_HE_BSS_COLOR: nested attribute for BSS Color Settings.
- *
- * @NL80211_ATTR_IFTYPE_AKM_SUITES: nested array attribute, with each entry
- * using attributes from &enum nl80211_iftype_akm_attributes. This
- * attribute is sent in a response to %NL80211_CMD_GET_WIPHY indicating
- * supported AKM suites capability per interface. AKMs advertised in
- * %NL80211_ATTR_AKM_SUITES are default capabilities if AKM suites not
- * advertised for a specific interface type.
- *
- * @NL80211_ATTR_TID_CONFIG: TID specific configuration in a
- * nested attribute with &enum nl80211_tid_config_attr sub-attributes;
- * on output (in wiphy attributes) it contains only the feature sub-
- * attributes.
- *
- * @NL80211_ATTR_CONTROL_PORT_NO_PREAUTH: disable preauth frame rx on control
- * port in order to forward/receive them as ordinary data frames.
- *
- * @NL80211_ATTR_PMK_LIFETIME: Maximum lifetime for PMKSA in seconds (u32,
- * dot11RSNAConfigPMKReauthThreshold; 0 is not a valid value).
- * An optional parameter configured through %NL80211_CMD_SET_PMKSA.
- * Drivers that trigger roaming need to know the lifetime of the
- * configured PMKSA for triggering the full vs. PMKSA caching based
- * authentication. This timeout helps authentication methods like SAE,
- * where PMK gets updated only by going through a full (new SAE)
- * authentication instead of getting updated during an association for EAP
- * authentication. No new full authentication within the PMK expiry shall
- * result in a disassociation at the end of the lifetime.
- *
- * @NL80211_ATTR_PMK_REAUTH_THRESHOLD: Reauthentication threshold time, in
- * terms of percentage of %NL80211_ATTR_PMK_LIFETIME
- * (u8, dot11RSNAConfigPMKReauthThreshold, 1..100). This is an optional
- * parameter configured through %NL80211_CMD_SET_PMKSA. Requests the
- * driver to trigger a full authentication roam (without PMKSA caching)
- * after the reauthentication threshold time, but before the PMK lifetime
- * has expired.
- *
- * Authentication methods like SAE need to be able to generate a new PMKSA
- * entry without having to force a disconnection after the PMK timeout. If
- * no roaming occurs between the reauth threshold and PMK expiration,
- * disassociation is still forced.
- * @NL80211_ATTR_RECEIVE_MULTICAST: multicast flag for the
- * %NL80211_CMD_REGISTER_FRAME command, see the description there.
- * @NL80211_ATTR_WIPHY_FREQ_OFFSET: offset of the associated
- * %NL80211_ATTR_WIPHY_FREQ in positive KHz. Only valid when supplied with
- * an %NL80211_ATTR_WIPHY_FREQ_OFFSET.
- * @NL80211_ATTR_CENTER_FREQ1_OFFSET: Center frequency offset in KHz for the
- * first channel segment specified in %NL80211_ATTR_CENTER_FREQ1.
- * @NL80211_ATTR_SCAN_FREQ_KHZ: nested attribute with KHz frequencies
- *
- * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from
- * association request when used with NL80211_CMD_NEW_STATION).
- *
- * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
- * discovery. It is a nested attribute, see
- * &enum nl80211_fils_discovery_attributes.
- *
- * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
- * unsolicited broadcast probe response. It is a nested attribute, see
- * &enum nl80211_unsol_bcast_probe_resp_attributes.
- *
- * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
- * association request when used with NL80211_CMD_NEW_STATION)
- * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element
- * override mask. Used with NL80211_ATTR_S1G_CAPABILITY in
- * NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT.
- *
- * @NL80211_ATTR_SAE_PWE: Indicates the mechanism(s) allowed for SAE PWE
- * derivation in WPA3-Personal networks which are using SAE authentication.
- * This is a u8 attribute that encapsulates one of the values from
- * &enum nl80211_sae_pwe_mechanism.
- *
- * @NL80211_ATTR_SAR_SPEC: SAR power limitation specification when
- * used with %NL80211_CMD_SET_SAR_SPECS. The message contains fields
- * of %nl80211_sar_attrs which specifies the sar type and related
- * sar specs. Sar specs contains array of %nl80211_sar_specs_attrs.
- *
- * @NL80211_ATTR_RECONNECT_REQUESTED: flag attribute, used with deauth and
- * disassoc events to indicate that an immediate reconnect to the AP
- * is desired.
- *
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2863,8 +2706,8 @@ enum nl80211_attrs {
NL80211_ATTR_CH_SWITCH_COUNT,
NL80211_ATTR_CH_SWITCH_BLOCK_TX,
NL80211_ATTR_CSA_IES,
- NL80211_ATTR_CNTDWN_OFFS_BEACON,
- NL80211_ATTR_CNTDWN_OFFS_PRESP,
+ NL80211_ATTR_CSA_C_OFF_BEACON,
+ NL80211_ATTR_CSA_C_OFF_PRESP,
NL80211_ATTR_RXMGMT_FLAGS,
@@ -3021,39 +2864,6 @@ enum nl80211_attrs {
NL80211_ATTR_VLAN_ID,
- NL80211_ATTR_HE_BSS_COLOR,
-
- NL80211_ATTR_IFTYPE_AKM_SUITES,
-
- NL80211_ATTR_TID_CONFIG,
-
- NL80211_ATTR_CONTROL_PORT_NO_PREAUTH,
-
- NL80211_ATTR_PMK_LIFETIME,
- NL80211_ATTR_PMK_REAUTH_THRESHOLD,
-
- NL80211_ATTR_RECEIVE_MULTICAST,
- NL80211_ATTR_WIPHY_FREQ_OFFSET,
- NL80211_ATTR_CENTER_FREQ1_OFFSET,
- NL80211_ATTR_SCAN_FREQ_KHZ,
-
- NL80211_ATTR_HE_6GHZ_CAPABILITY,
-
- NL80211_ATTR_FILS_DISCOVERY,
-
- NL80211_ATTR_UNSOL_BCAST_PROBE_RESP,
-
- NL80211_ATTR_S1G_CAPABILITY,
- NL80211_ATTR_S1G_CAPABILITY_MASK,
-
- NL80211_ATTR_SAE_PWE,
-
- NL80211_ATTR_RECONNECT_REQUESTED,
-
- NL80211_ATTR_SAR_SPEC,
-
- NL80211_ATTR_DISABLE_HE,
-
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
@@ -3066,8 +2876,6 @@ enum nl80211_attrs {
#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
#define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
#define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA
-#define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON
-#define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP
/*
* Allow user space programs to use #ifdef on new attributes by defining them
@@ -3246,18 +3054,6 @@ enum nl80211_he_gi {
};
/**
- * enum nl80211_he_ltf - HE long training field
- * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec
- * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec
- * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec
- */
-enum nl80211_he_ltf {
- NL80211_RATE_INFO_HE_1XLTF,
- NL80211_RATE_INFO_HE_2XLTF,
- NL80211_RATE_INFO_HE_4XLTF,
-};
-
-/**
* enum nl80211_he_ru_alloc - HE RU allocation values
* @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
* @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation
@@ -3451,8 +3247,6 @@ enum nl80211_sta_bss_param {
* @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
* @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
* of STA's association
- * @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a
- * authentication server (u8, 0 or 1)
* @__NL80211_STA_INFO_AFTER_LAST: internal
* @NL80211_STA_INFO_MAX: highest possible station info attribute
*/
@@ -3500,7 +3294,6 @@ enum nl80211_sta_info {
NL80211_STA_INFO_AIRTIME_WEIGHT,
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
- NL80211_STA_INFO_CONNECTED_TO_AS,
/* keep last */
__NL80211_STA_INFO_AFTER_LAST,
@@ -3649,8 +3442,6 @@ enum nl80211_mpath_info {
* defined in HE capabilities IE
* @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
* defined
- * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
- * given for all 6 GHz band channels
* @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
*/
enum nl80211_band_iftype_attr {
@@ -3661,7 +3452,6 @@ enum nl80211_band_iftype_attr {
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
- NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
/* keep last */
__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
@@ -3793,19 +3583,6 @@ enum nl80211_wmm_rule {
* @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations.
* This is a nested attribute that contains the wmm limitation per AC.
* (see &enum nl80211_wmm_rule)
- * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
- * in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_OFFSET: frequency offset in KHz
- * @NL80211_FREQUENCY_ATTR_1MHZ: 1 MHz operation is allowed
- * on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_2MHZ: 2 MHz operation is allowed
- * on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_4MHZ: 4 MHz operation is allowed
- * on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_8MHZ: 8 MHz operation is allowed
- * on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
- * on this channel in current regulatory domain.
* @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
* currently defined
* @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -3835,13 +3612,6 @@ enum nl80211_frequency_attr {
NL80211_FREQUENCY_ATTR_NO_20MHZ,
NL80211_FREQUENCY_ATTR_NO_10MHZ,
NL80211_FREQUENCY_ATTR_WMM,
- NL80211_FREQUENCY_ATTR_NO_HE,
- NL80211_FREQUENCY_ATTR_OFFSET,
- NL80211_FREQUENCY_ATTR_1MHZ,
- NL80211_FREQUENCY_ATTR_2MHZ,
- NL80211_FREQUENCY_ATTR_4MHZ,
- NL80211_FREQUENCY_ATTR_8MHZ,
- NL80211_FREQUENCY_ATTR_16MHZ,
/* keep last */
__NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4039,7 +3809,6 @@ enum nl80211_sched_scan_match_attr {
* @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
* @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
* @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
- * @NL80211_RRF_NO_HE: HE operation not allowed
*/
enum nl80211_reg_rule_flags {
NL80211_RRF_NO_OFDM = 1<<0,
@@ -4057,7 +3826,6 @@ enum nl80211_reg_rule_flags {
NL80211_RRF_NO_HT40PLUS = 1<<14,
NL80211_RRF_NO_80MHZ = 1<<15,
NL80211_RRF_NO_160MHZ = 1<<16,
- NL80211_RRF_NO_HE = 1<<17,
};
#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
@@ -4135,7 +3903,6 @@ enum nl80211_user_reg_hint_type {
* receiving frames destined to the local BSS
* @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
* currently defined
- * @NL80211_SURVEY_INFO_FREQUENCY_OFFSET: center frequency offset in KHz
* @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
*/
enum nl80211_survey_info {
@@ -4151,7 +3918,6 @@ enum nl80211_survey_info {
NL80211_SURVEY_INFO_TIME_SCAN,
NL80211_SURVEY_INFO_PAD,
NL80211_SURVEY_INFO_TIME_BSS_RX,
- NL80211_SURVEY_INFO_FREQUENCY_OFFSET,
/* keep last */
__NL80211_SURVEY_INFO_AFTER_LAST,
@@ -4337,16 +4103,6 @@ enum nl80211_mesh_power_mode {
* field. If left unset then the mesh formation field will only
* advertise such if there is an active root mesh path.
*
- * @NL80211_MESHCONF_NOLEARN: Try to avoid multi-hop path discovery (e.g.
- * PREQ/PREP for HWMP) if the destination is a direct neighbor. Note that
- * this might not be the optimal decision as a multi-hop route might be
- * better. So if using this setting you will likely also want to disable
- * dot11MeshForwarding and use another mesh routing protocol on top.
- *
- * @NL80211_MESHCONF_CONNECTED_TO_AS: If set to true then this mesh STA
- * will advertise that it is connected to a authentication server
- * in the mesh formation field.
- *
* @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
*/
enum nl80211_meshconf_params {
@@ -4380,8 +4136,6 @@ enum nl80211_meshconf_params {
NL80211_MESHCONF_AWAKE_WINDOW,
NL80211_MESHCONF_PLINK_TIMEOUT,
NL80211_MESHCONF_CONNECTED_TO_GATE,
- NL80211_MESHCONF_NOLEARN,
- NL80211_MESHCONF_CONNECTED_TO_AS,
/* keep last */
__NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -4550,11 +4304,6 @@ enum nl80211_key_mode {
* attribute must be provided as well
* @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel
* @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel
- * @NL80211_CHAN_WIDTH_1: 1 MHz OFDM channel
- * @NL80211_CHAN_WIDTH_2: 2 MHz OFDM channel
- * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
- * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
- * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
*/
enum nl80211_chan_width {
NL80211_CHAN_WIDTH_20_NOHT,
@@ -4565,11 +4314,6 @@ enum nl80211_chan_width {
NL80211_CHAN_WIDTH_160,
NL80211_CHAN_WIDTH_5,
NL80211_CHAN_WIDTH_10,
- NL80211_CHAN_WIDTH_1,
- NL80211_CHAN_WIDTH_2,
- NL80211_CHAN_WIDTH_4,
- NL80211_CHAN_WIDTH_8,
- NL80211_CHAN_WIDTH_16,
};
/**
@@ -4580,15 +4324,11 @@ enum nl80211_chan_width {
* @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible
* @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide
* @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide
- * @NL80211_BSS_CHAN_WIDTH_1: control channel is 1 MHz wide
- * @NL80211_BSS_CHAN_WIDTH_2: control channel is 2 MHz wide
*/
enum nl80211_bss_scan_width {
NL80211_BSS_CHAN_WIDTH_20,
NL80211_BSS_CHAN_WIDTH_10,
NL80211_BSS_CHAN_WIDTH_5,
- NL80211_BSS_CHAN_WIDTH_1,
- NL80211_BSS_CHAN_WIDTH_2,
};
/**
@@ -4640,7 +4380,6 @@ enum nl80211_bss_scan_width {
* @NL80211_BSS_CHAIN_SIGNAL: per-chain signal strength of last BSS update.
* Contains a nested array of signal strength attributes (u8, dBm),
* using the nesting index as the antenna number.
- * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
* @__NL80211_BSS_AFTER_LAST: internal
* @NL80211_BSS_MAX: highest BSS attribute
*/
@@ -4665,7 +4404,6 @@ enum nl80211_bss {
NL80211_BSS_PARENT_TSF,
NL80211_BSS_PARENT_BSSID,
NL80211_BSS_CHAIN_SIGNAL,
- NL80211_BSS_FREQUENCY_OFFSET,
/* keep last */
__NL80211_BSS_AFTER_LAST,
@@ -4794,7 +4532,6 @@ enum nl80211_key_default_types {
* See &enum nl80211_key_default_types.
* @NL80211_KEY_MODE: the mode from enum nl80211_key_mode.
* Defaults to @NL80211_KEY_RX_TX.
- * @NL80211_KEY_DEFAULT_BEACON: flag indicating default Beacon frame key
*
* @__NL80211_KEY_AFTER_LAST: internal
* @NL80211_KEY_MAX: highest key attribute
@@ -4810,7 +4547,6 @@ enum nl80211_key_attributes {
NL80211_KEY_TYPE,
NL80211_KEY_DEFAULT_TYPES,
NL80211_KEY_MODE,
- NL80211_KEY_DEFAULT_BEACON,
/* keep last */
__NL80211_KEY_AFTER_LAST,
@@ -4829,10 +4565,6 @@ enum nl80211_key_attributes {
* @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
* see &struct nl80211_txrate_vht
* @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi
- * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection,
- * see &struct nl80211_txrate_he
- * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
- * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
* @__NL80211_TXRATE_AFTER_LAST: internal
* @NL80211_TXRATE_MAX: highest TX rate attribute
*/
@@ -4842,9 +4574,6 @@ enum nl80211_tx_rate_attributes {
NL80211_TXRATE_HT,
NL80211_TXRATE_VHT,
NL80211_TXRATE_GI,
- NL80211_TXRATE_HE,
- NL80211_TXRATE_HE_GI,
- NL80211_TXRATE_HE_LTF,
/* keep last */
__NL80211_TXRATE_AFTER_LAST,
@@ -4862,15 +4591,6 @@ struct nl80211_txrate_vht {
__u16 mcs[NL80211_VHT_NSS_MAX];
};
-#define NL80211_HE_NSS_MAX 8
-/**
- * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap
- * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
- */
-struct nl80211_txrate_he {
- __u16 mcs[NL80211_HE_NSS_MAX];
-};
-
enum nl80211_txrate_gi {
NL80211_TXRATE_DEFAULT_GI,
NL80211_TXRATE_FORCE_SGI,
@@ -4883,7 +4603,6 @@ enum nl80211_txrate_gi {
* @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
* @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
* @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
- * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
* @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
* since newer kernel versions may support more bands
*/
@@ -4892,7 +4611,6 @@ enum nl80211_band {
NL80211_BAND_5GHZ,
NL80211_BAND_60GHZ,
NL80211_BAND_6GHZ,
- NL80211_BAND_S1GHZ,
NUM_NL80211_BANDS,
};
@@ -4985,92 +4703,6 @@ enum nl80211_tx_power_setting {
};
/**
- * enum nl80211_tid_config - TID config state
- * @NL80211_TID_CONFIG_ENABLE: Enable config for the TID
- * @NL80211_TID_CONFIG_DISABLE: Disable config for the TID
- */
-enum nl80211_tid_config {
- NL80211_TID_CONFIG_ENABLE,
- NL80211_TID_CONFIG_DISABLE,
-};
-
-/* enum nl80211_tx_rate_setting - TX rate configuration type
- * @NL80211_TX_RATE_AUTOMATIC: automatically determine TX rate
- * @NL80211_TX_RATE_LIMITED: limit the TX rate by the TX rate parameter
- * @NL80211_TX_RATE_FIXED: fix TX rate to the TX rate parameter
- */
-enum nl80211_tx_rate_setting {
- NL80211_TX_RATE_AUTOMATIC,
- NL80211_TX_RATE_LIMITED,
- NL80211_TX_RATE_FIXED,
-};
-
-/* enum nl80211_tid_config_attr - TID specific configuration.
- * @NL80211_TID_CONFIG_ATTR_PAD: pad attribute for 64-bit values
- * @NL80211_TID_CONFIG_ATTR_VIF_SUPP: a bitmap (u64) of attributes supported
- * for per-vif configuration; doesn't list the ones that are generic
- * (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
- * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
- * per peer instead.
- * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if set indicates
- * that the new configuration overrides all previous peer
- * configurations, otherwise previous peer specific configurations
- * should be left untouched.
- * @NL80211_TID_CONFIG_ATTR_TIDS: a bitmask value of TIDs (bit 0 to 7)
- * Its type is u16.
- * @NL80211_TID_CONFIG_ATTR_NOACK: Configure ack policy for the TID.
- * specified in %NL80211_TID_CONFIG_ATTR_TID. see %enum nl80211_tid_config.
- * Its type is u8.
- * @NL80211_TID_CONFIG_ATTR_RETRY_SHORT: Number of retries used with data frame
- * transmission, user-space sets this configuration in
- * &NL80211_CMD_SET_TID_CONFIG. It is u8 type, min value is 1 and
- * the max value is advertised by the driver in this attribute on
- * output in wiphy capabilities.
- * @NL80211_TID_CONFIG_ATTR_RETRY_LONG: Number of retries used with data frame
- * transmission, user-space sets this configuration in
- * &NL80211_CMD_SET_TID_CONFIG. Its type is u8, min value is 1 and
- * the max value is advertised by the driver in this attribute on
- * output in wiphy capabilities.
- * @NL80211_TID_CONFIG_ATTR_AMPDU_CTRL: Enable/Disable MPDU aggregation
- * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS.
- * Its type is u8, using the values from &nl80211_tid_config.
- * @NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL: Enable/Disable RTS_CTS for the TIDs
- * specified in %NL80211_TID_CONFIG_ATTR_TIDS. It is u8 type, using
- * the values from &nl80211_tid_config.
- * @NL80211_TID_CONFIG_ATTR_AMSDU_CTRL: Enable/Disable MSDU aggregation
- * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS.
- * Its type is u8, using the values from &nl80211_tid_config.
- * @NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE: This attribute will be useful
- * to notfiy the driver that what type of txrate should be used
- * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS. using
- * the values form &nl80211_tx_rate_setting.
- * @NL80211_TID_CONFIG_ATTR_TX_RATE: Data frame TX rate mask should be applied
- * with the parameters passed through %NL80211_ATTR_TX_RATES.
- * configuration is applied to the data frame for the tid to that connected
- * station.
- */
-enum nl80211_tid_config_attr {
- __NL80211_TID_CONFIG_ATTR_INVALID,
- NL80211_TID_CONFIG_ATTR_PAD,
- NL80211_TID_CONFIG_ATTR_VIF_SUPP,
- NL80211_TID_CONFIG_ATTR_PEER_SUPP,
- NL80211_TID_CONFIG_ATTR_OVERRIDE,
- NL80211_TID_CONFIG_ATTR_TIDS,
- NL80211_TID_CONFIG_ATTR_NOACK,
- NL80211_TID_CONFIG_ATTR_RETRY_SHORT,
- NL80211_TID_CONFIG_ATTR_RETRY_LONG,
- NL80211_TID_CONFIG_ATTR_AMPDU_CTRL,
- NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL,
- NL80211_TID_CONFIG_ATTR_AMSDU_CTRL,
- NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE,
- NL80211_TID_CONFIG_ATTR_TX_RATE,
-
- /* keep last */
- __NL80211_TID_CONFIG_ATTR_AFTER_LAST,
- NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1
-};
-
-/**
* enum nl80211_packet_pattern_attr - packet pattern attribute
* @__NL80211_PKTPAT_INVALID: invalid number for nested attribute
* @NL80211_PKTPAT_PATTERN: the pattern, values where the mask has
@@ -5541,8 +5173,6 @@ enum plink_actions {
#define NL80211_KCK_LEN 16
#define NL80211_KEK_LEN 16
-#define NL80211_KCK_EXT_LEN 24
-#define NL80211_KEK_EXT_LEN 32
#define NL80211_REPLAY_CTR_LEN 8
/**
@@ -5551,7 +5181,6 @@ enum plink_actions {
* @NL80211_REKEY_DATA_KEK: key encryption key (binary)
* @NL80211_REKEY_DATA_KCK: key confirmation key (binary)
* @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary)
- * @NL80211_REKEY_DATA_AKM: AKM data (OUI, suite type)
* @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal)
* @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal)
*/
@@ -5560,7 +5189,6 @@ enum nl80211_rekey_data {
NL80211_REKEY_DATA_KEK,
NL80211_REKEY_DATA_KCK,
NL80211_REKEY_DATA_REPLAY_CTR,
- NL80211_REKEY_DATA_AKM,
/* keep last */
NUM_NL80211_REKEY_DATA,
@@ -5781,7 +5409,7 @@ enum nl80211_feature_flags {
* enum nl80211_ext_feature_index - bit index of extended features.
* @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates.
* @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can
- * request to use RRM (see %NL80211_ATTR_USE_RRM) with
+ * can request to use RRM (see %NL80211_ATTR_USE_RRM) with
* %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
* the ASSOC_REQ_USE_RRM flag in the association request even if
* NL80211_FEATURE_QUIET is not advertized.
@@ -5893,50 +5521,6 @@ enum nl80211_feature_flags {
* feature, which prevents bufferbloat by using the expected transmission
* time to limit the amount of data buffered in the hardware.
*
- * @NL80211_EXT_FEATURE_BEACON_PROTECTION: The driver supports Beacon protection
- * and can receive key configuration for BIGTK using key indexes 6 and 7.
- * @NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT: The driver supports Beacon
- * protection as a client only and cannot transmit protected beacons.
- *
- * @NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH: The driver can disable the
- * forwarding of preauth frames over the control port. They are then
- * handled as ordinary data frames.
- *
- * @NL80211_EXT_FEATURE_PROTECTED_TWT: Driver supports protected TWT frames
- *
- * @NL80211_EXT_FEATURE_DEL_IBSS_STA: The driver supports removing stations
- * in IBSS mode, essentially by dropping their state.
- *
- * @NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS: management frame registrations
- * are possible for multicast frames and those will be reported properly.
- *
- * @NL80211_EXT_FEATURE_SCAN_FREQ_KHZ: This driver supports receiving and
- * reporting scan request with %NL80211_ATTR_SCAN_FREQ_KHZ. In order to
- * report %NL80211_ATTR_SCAN_FREQ_KHZ, %NL80211_SCAN_FLAG_FREQ_KHZ must be
- * included in the scan request.
- *
- * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver
- * can report tx status for control port over nl80211 tx operations.
- *
- * @NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION: Driver supports Operating
- * Channel Validation (OCV) when using driver's SME for RSNA handshakes.
- *
- * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK: Device wants to do 4-way
- * handshake with PSK in AP mode (PSK is passed as part of the start AP
- * command).
- *
- * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication
- * in AP mode (SAE password is passed as part of the start AP command).
- *
- * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery
- * frames transmission
- *
- * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports
- * unsolicited broadcast probe response transmission
- *
- * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate
- * configuration (AP/mesh) with HE rates.
- *
* @NUM_NL80211_EXT_FEATURES: number of extended features.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
*/
@@ -5984,20 +5568,6 @@ enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_SAE_OFFLOAD,
NL80211_EXT_FEATURE_VLAN_OFFLOAD,
NL80211_EXT_FEATURE_AQL,
- NL80211_EXT_FEATURE_BEACON_PROTECTION,
- NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH,
- NL80211_EXT_FEATURE_PROTECTED_TWT,
- NL80211_EXT_FEATURE_DEL_IBSS_STA,
- NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS,
- NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
- NL80211_EXT_FEATURE_SCAN_FREQ_KHZ,
- NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
- NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
- NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
- NL80211_EXT_FEATURE_SAE_OFFLOAD_AP,
- NL80211_EXT_FEATURE_FILS_DISCOVERY,
- NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
- NL80211_EXT_FEATURE_BEACON_RATE_HE,
/* add new features before the definition below */
NUM_NL80211_EXT_FEATURES,
@@ -6109,11 +5679,6 @@ enum nl80211_timeout_reason {
* @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to
* only have supported rates and no additional capabilities (unless
* added by userspace explicitly.)
- * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with
- * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means
- * %NL80211_ATTR_SCAN_FREQUENCIES will not be included.
- * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by
- * 2.4/5 GHz APs
*/
enum nl80211_scan_flags {
NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
@@ -6129,8 +5694,6 @@ enum nl80211_scan_flags {
NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
- NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13,
- NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14,
};
/**
@@ -6218,7 +5781,7 @@ enum nl80211_dfs_state {
};
/**
- * enum nl80211_protocol_features - nl80211 protocol features
+ * enum enum nl80211_protocol_features - nl80211 protocol features
* @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting
* wiphy dumps (if requested by the application with the attribute
* %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the
@@ -6627,14 +6190,12 @@ enum nl80211_ftm_responder_stats {
* @NL80211_PREAMBLE_HT: HT preamble
* @NL80211_PREAMBLE_VHT: VHT preamble
* @NL80211_PREAMBLE_DMG: DMG preamble
- * @NL80211_PREAMBLE_HE: HE preamble
*/
enum nl80211_preamble {
NL80211_PREAMBLE_LEGACY,
NL80211_PREAMBLE_HT,
NL80211_PREAMBLE_VHT,
NL80211_PREAMBLE_DMG,
- NL80211_PREAMBLE_HE,
};
/**
@@ -6827,10 +6388,6 @@ enum nl80211_peer_measurement_attrs {
* is valid)
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST: u32 attribute indicating
* the maximum FTMs per burst (if not present anything is valid)
- * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
- * trigger based ranging measurement is supported
- * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
- * if non trigger based ranging measurement is supported
*
* @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
@@ -6846,8 +6403,6 @@ enum nl80211_peer_measurement_ftm_capa {
NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS,
NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT,
NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
- NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED,
- NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED,
/* keep last */
NUM_NL80211_PMSR_FTM_CAPA_ATTR,
@@ -6877,20 +6432,6 @@ enum nl80211_peer_measurement_ftm_capa {
* @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag)
* @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC: request civic location data
* (flag)
- * @NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED: request trigger based ranging
- * measurement (flag).
- * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED are
- * mutually exclusive.
- * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
- * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
- * ranging will be used.
- * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
- * ranging measurement (flag)
- * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
- * mutually exclusive.
- * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
- * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
- * ranging will be used.
*
* @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
* @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
@@ -6907,8 +6448,6 @@ enum nl80211_peer_measurement_ftm_req {
NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES,
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI,
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
- NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
- NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
/* keep last */
NUM_NL80211_PMSR_FTM_REQ_ATTR,
@@ -7033,13 +6572,6 @@ enum nl80211_peer_measurement_ftm_resp {
*
* @NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET: the OBSS PD minimum tx power offset.
* @NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET: the OBSS PD maximum tx power offset.
- * @NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET: the non-SRG OBSS PD maximum
- * tx power offset.
- * @NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP: bitmap that indicates the BSS color
- * values used by members of the SRG.
- * @NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP: bitmap that indicates the partial
- * BSSID values used by members of the SRG.
- * @NL80211_HE_OBSS_PD_ATTR_SR_CTRL: The SR Control field of SRP element.
*
* @__NL80211_HE_OBSS_PD_ATTR_LAST: Internal
* @NL80211_HE_OBSS_PD_ATTR_MAX: highest OBSS PD attribute.
@@ -7049,232 +6581,11 @@ enum nl80211_obss_pd_attributes {
NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET,
NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET,
- NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET,
- NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP,
- NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP,
- NL80211_HE_OBSS_PD_ATTR_SR_CTRL,
/* keep last */
__NL80211_HE_OBSS_PD_ATTR_LAST,
NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1,
};
-/**
- * enum nl80211_bss_color_attributes - BSS Color attributes
- * @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid
- *
- * @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color.
- * @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled.
- * @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used..
- *
- * @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal
- * @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute.
- */
-enum nl80211_bss_color_attributes {
- __NL80211_HE_BSS_COLOR_ATTR_INVALID,
-
- NL80211_HE_BSS_COLOR_ATTR_COLOR,
- NL80211_HE_BSS_COLOR_ATTR_DISABLED,
- NL80211_HE_BSS_COLOR_ATTR_PARTIAL,
-
- /* keep last */
- __NL80211_HE_BSS_COLOR_ATTR_LAST,
- NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1,
-};
-
-/**
- * enum nl80211_iftype_akm_attributes - interface type AKM attributes
- * @__NL80211_IFTYPE_AKM_ATTR_INVALID: Invalid
- *
- * @NL80211_IFTYPE_AKM_ATTR_IFTYPES: nested attribute containing a flag
- * attribute for each interface type that supports AKM suites specified in
- * %NL80211_IFTYPE_AKM_ATTR_SUITES
- * @NL80211_IFTYPE_AKM_ATTR_SUITES: an array of u32. Used to indicate supported
- * AKM suites for the specified interface types.
- *
- * @__NL80211_IFTYPE_AKM_ATTR_LAST: Internal
- * @NL80211_IFTYPE_AKM_ATTR_MAX: highest interface type AKM attribute.
- */
-enum nl80211_iftype_akm_attributes {
- __NL80211_IFTYPE_AKM_ATTR_INVALID,
-
- NL80211_IFTYPE_AKM_ATTR_IFTYPES,
- NL80211_IFTYPE_AKM_ATTR_SUITES,
-
- /* keep last */
- __NL80211_IFTYPE_AKM_ATTR_LAST,
- NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1,
-};
-
-/**
- * enum nl80211_fils_discovery_attributes - FILS discovery configuration
- * from IEEE Std 802.11ai-2016, Annex C.3 MIB detail.
- *
- * @__NL80211_FILS_DISCOVERY_ATTR_INVALID: Invalid
- *
- * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU).
- * Allowed range: 0..10000 (TU = Time Unit)
- * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU).
- * Allowed range: 0..10000 (TU = Time Unit)
- * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action
- * frame including the headers.
- *
- * @__NL80211_FILS_DISCOVERY_ATTR_LAST: Internal
- * @NL80211_FILS_DISCOVERY_ATTR_MAX: highest attribute
- */
-enum nl80211_fils_discovery_attributes {
- __NL80211_FILS_DISCOVERY_ATTR_INVALID,
-
- NL80211_FILS_DISCOVERY_ATTR_INT_MIN,
- NL80211_FILS_DISCOVERY_ATTR_INT_MAX,
- NL80211_FILS_DISCOVERY_ATTR_TMPL,
-
- /* keep last */
- __NL80211_FILS_DISCOVERY_ATTR_LAST,
- NL80211_FILS_DISCOVERY_ATTR_MAX = __NL80211_FILS_DISCOVERY_ATTR_LAST - 1
-};
-
-/*
- * FILS discovery template minimum length with action frame headers and
- * mandatory fields.
- */
-#define NL80211_FILS_DISCOVERY_TMPL_MIN_LEN 42
-
-/**
- * enum nl80211_unsol_bcast_probe_resp_attributes - Unsolicited broadcast probe
- * response configuration. Applicable only in 6GHz.
- *
- * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID: Invalid
- *
- * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU).
- * Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0
- * 26.17.2.3.2 (AP behavior for fast passive scanning).
- * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response
- * frame template (binary).
- *
- * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST: Internal
- * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX: highest attribute
- */
-enum nl80211_unsol_bcast_probe_resp_attributes {
- __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID,
-
- NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT,
- NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL,
-
- /* keep last */
- __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST,
- NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX =
- __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1
-};
-
-/**
- * enum nl80211_sae_pwe_mechanism - The mechanism(s) allowed for SAE PWE
- * derivation. Applicable only when WPA3-Personal SAE authentication is
- * used.
- *
- * @NL80211_SAE_PWE_UNSPECIFIED: not specified, used internally to indicate that
- * attribute is not present from userspace.
- * @NL80211_SAE_PWE_HUNT_AND_PECK: hunting-and-pecking loop only
- * @NL80211_SAE_PWE_HASH_TO_ELEMENT: hash-to-element only
- * @NL80211_SAE_PWE_BOTH: both hunting-and-pecking loop and hash-to-element
- * can be used.
- */
-enum nl80211_sae_pwe_mechanism {
- NL80211_SAE_PWE_UNSPECIFIED,
- NL80211_SAE_PWE_HUNT_AND_PECK,
- NL80211_SAE_PWE_HASH_TO_ELEMENT,
- NL80211_SAE_PWE_BOTH,
-};
-
-/**
- * enum nl80211_sar_type - type of SAR specs
- *
- * @NL80211_SAR_TYPE_POWER: power limitation specified in 0.25dBm unit
- *
- */
-enum nl80211_sar_type {
- NL80211_SAR_TYPE_POWER,
-
- /* add new type here */
-
- /* Keep last */
- NUM_NL80211_SAR_TYPE,
-};
-
-/**
- * enum nl80211_sar_attrs - Attributes for SAR spec
- *
- * @NL80211_SAR_ATTR_TYPE: the SAR type as defined in &enum nl80211_sar_type.
- *
- * @NL80211_SAR_ATTR_SPECS: Nested array of SAR power
- * limit specifications. Each specification contains a set
- * of %nl80211_sar_specs_attrs.
- *
- * For SET operation, it contains array of %NL80211_SAR_ATTR_SPECS_POWER
- * and %NL80211_SAR_ATTR_SPECS_RANGE_INDEX.
- *
- * For sar_capa dump, it contains array of
- * %NL80211_SAR_ATTR_SPECS_START_FREQ
- * and %NL80211_SAR_ATTR_SPECS_END_FREQ.
- *
- * @__NL80211_SAR_ATTR_LAST: Internal
- * @NL80211_SAR_ATTR_MAX: highest sar attribute
- *
- * These attributes are used with %NL80211_CMD_SET_SAR_SPEC
- */
-enum nl80211_sar_attrs {
- __NL80211_SAR_ATTR_INVALID,
-
- NL80211_SAR_ATTR_TYPE,
- NL80211_SAR_ATTR_SPECS,
-
- __NL80211_SAR_ATTR_LAST,
- NL80211_SAR_ATTR_MAX = __NL80211_SAR_ATTR_LAST - 1,
-};
-
-/**
- * enum nl80211_sar_specs_attrs - Attributes for SAR power limit specs
- *
- * @NL80211_SAR_ATTR_SPECS_POWER: Required (s32)value to specify the actual
- * power limit value in units of 0.25 dBm if type is
- * NL80211_SAR_TYPE_POWER. (i.e., a value of 44 represents 11 dBm).
- * 0 means userspace doesn't have SAR limitation on this associated range.
- *
- * @NL80211_SAR_ATTR_SPECS_RANGE_INDEX: Required (u32) value to specify the
- * index of exported freq range table and the associated power limitation
- * is applied to this range.
- *
- * Userspace isn't required to set all the ranges advertised by WLAN driver,
- * and userspace can skip some certain ranges. These skipped ranges don't
- * have SAR limitations, and they are same as setting the
- * %NL80211_SAR_ATTR_SPECS_POWER to any unreasonable high value because any
- * value higher than regulatory allowed value just means SAR power
- * limitation is removed, but it's required to set at least one range.
- * It's not allowed to set duplicated range in one SET operation.
- *
- * Every SET operation overwrites previous SET operation.
- *
- * @NL80211_SAR_ATTR_SPECS_START_FREQ: Required (u32) value to specify the start
- * frequency of this range edge when registering SAR capability to wiphy.
- * It's not a channel center frequency. The unit is kHz.
- *
- * @NL80211_SAR_ATTR_SPECS_END_FREQ: Required (u32) value to specify the end
- * frequency of this range edge when registering SAR capability to wiphy.
- * It's not a channel center frequency. The unit is kHz.
- *
- * @__NL80211_SAR_ATTR_SPECS_LAST: Internal
- * @NL80211_SAR_ATTR_SPECS_MAX: highest sar specs attribute
- */
-enum nl80211_sar_specs_attrs {
- __NL80211_SAR_ATTR_SPECS_INVALID,
-
- NL80211_SAR_ATTR_SPECS_POWER,
- NL80211_SAR_ATTR_SPECS_RANGE_INDEX,
- NL80211_SAR_ATTR_SPECS_START_FREQ,
- NL80211_SAR_ATTR_SPECS_END_FREQ,
-
- __NL80211_SAR_ATTR_SPECS_LAST,
- NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
-};
#endif /* __LINUX_NL80211_H */
diff --git a/original/uapi/linux/openat2.h b/original/uapi/linux/openat2.h
deleted file mode 100644
index a5feb76..0000000
--- a/original/uapi/linux/openat2.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_LINUX_OPENAT2_H
-#define _UAPI_LINUX_OPENAT2_H
-
-#include <linux/types.h>
-
-/*
- * Arguments for how openat2(2) should open the target path. If only @flags and
- * @mode are non-zero, then openat2(2) operates very similarly to openat(2).
- *
- * However, unlike openat(2), unknown or invalid bits in @flags result in
- * -EINVAL rather than being silently ignored. @mode must be zero unless one of
- * {O_CREAT, O_TMPFILE} are set.
- *
- * @flags: O_* flags.
- * @mode: O_CREAT/O_TMPFILE file mode.
- * @resolve: RESOLVE_* flags.
- */
-struct open_how {
- __u64 flags;
- __u64 mode;
- __u64 resolve;
-};
-
-/* how->resolve flags for openat2(2). */
-#define RESOLVE_NO_XDEV 0x01 /* Block mount-point crossings
- (includes bind-mounts). */
-#define RESOLVE_NO_MAGICLINKS 0x02 /* Block traversal through procfs-style
- "magic-links". */
-#define RESOLVE_NO_SYMLINKS 0x04 /* Block traversal through all symlinks
- (implies OEXT_NO_MAGICLINKS) */
-#define RESOLVE_BENEATH 0x08 /* Block "lexical" trickery like
- "..", symlinks, and absolute
- paths which escape the dirfd. */
-#define RESOLVE_IN_ROOT 0x10 /* Make all jumps to "/" and ".."
- be scoped inside the dirfd
- (similar to chroot(2)). */
-#define RESOLVE_CACHED 0x20 /* Only complete if resolution can be
- completed through cached lookup. May
- return -EAGAIN if that's not
- possible. */
-
-#endif /* _UAPI_LINUX_OPENAT2_H */
diff --git a/original/uapi/linux/openvswitch.h b/original/uapi/linux/openvswitch.h
index 8d16744..a87b44c 100644
--- a/original/uapi/linux/openvswitch.h
+++ b/original/uapi/linux/openvswitch.h
@@ -86,7 +86,6 @@ enum ovs_datapath_attr {
OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */
OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */
OVS_DP_ATTR_PAD,
- OVS_DP_ATTR_MASKS_CACHE_SIZE,
__OVS_DP_ATTR_MAX
};
@@ -103,8 +102,8 @@ struct ovs_dp_megaflow_stats {
__u64 n_mask_hit; /* Number of masks used for flow lookups. */
__u32 n_masks; /* Number of masks for the datapath. */
__u32 pad0; /* Pad for future expension. */
- __u64 n_cache_hit; /* Number of cache matches for flow lookups. */
__u64 pad1; /* Pad for future expension. */
+ __u64 pad2; /* Pad for future expension. */
};
struct ovs_vport_stats {
@@ -674,32 +673,6 @@ struct ovs_action_push_mpls {
};
/**
- * struct ovs_action_add_mpls - %OVS_ACTION_ATTR_ADD_MPLS action
- * argument.
- * @mpls_lse: MPLS label stack entry to push.
- * @mpls_ethertype: Ethertype to set in the encapsulating ethernet frame.
- * @tun_flags: MPLS tunnel attributes.
- *
- * The only values @mpls_ethertype should ever be given are %ETH_P_MPLS_UC and
- * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected.
- */
-struct ovs_action_add_mpls {
- __be32 mpls_lse;
- __be16 mpls_ethertype; /* Either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC */
- __u16 tun_flags;
-};
-
-#define OVS_MPLS_L3_TUNNEL_FLAG_MASK (1 << 0) /* Flag to specify the place of
- * insertion of MPLS header.
- * When false, the MPLS header
- * will be inserted at the start
- * of the packet.
- * When true, the MPLS header
- * will be inserted at the start
- * of the l3 header.
- */
-
-/**
* struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument.
* @vlan_tpid: Tag protocol identifier (TPID) to push.
* @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set
@@ -919,10 +892,6 @@ struct check_pkt_len_arg {
* @OVS_ACTION_ATTR_CHECK_PKT_LEN: Check the packet length and execute a set
* of actions if greater than the specified packet length, else execute
* another set of actions.
- * @OVS_ACTION_ATTR_ADD_MPLS: Push a new MPLS label stack entry at the
- * start of the packet or at the start of the l3 header depending on the value
- * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS
- * argument.
*
* Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
* fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -958,8 +927,6 @@ enum ovs_action_attr {
OVS_ACTION_ATTR_METER, /* u32 meter ID. */
OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */
- OVS_ACTION_ATTR_ADD_MPLS, /* struct ovs_action_add_mpls. */
- OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */
__OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
* from userspace. */
@@ -1052,12 +1019,4 @@ struct ovs_zone_limit {
__u32 count;
};
-enum ovs_dec_ttl_attr {
- OVS_DEC_TTL_ATTR_UNSPEC,
- OVS_DEC_TTL_ATTR_ACTION, /* Nested struct nlattr */
- __OVS_DEC_TTL_ATTR_MAX
-};
-
-#define OVS_DEC_TTL_ATTR_MAX (__OVS_DEC_TTL_ATTR_MAX - 1)
-
#endif /* _LINUX_OPENVSWITCH_H */
diff --git a/original/uapi/linux/pci_regs.h b/original/uapi/linux/pci_regs.h
index e709ae8..acb7d2b 100644
--- a/original/uapi/linux/pci_regs.h
+++ b/original/uapi/linux/pci_regs.h
@@ -76,7 +76,6 @@
#define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */
#define PCI_LATENCY_TIMER 0x0d /* 8 bits */
#define PCI_HEADER_TYPE 0x0e /* 8 bits */
-#define PCI_HEADER_TYPE_MASK 0x7f
#define PCI_HEADER_TYPE_NORMAL 0
#define PCI_HEADER_TYPE_BRIDGE 1
#define PCI_HEADER_TYPE_CARDBUS 2
@@ -247,7 +246,7 @@
#define PCI_PM_CAP_PME_D0 0x0800 /* PME# from D0 */
#define PCI_PM_CAP_PME_D1 0x1000 /* PME# from D1 */
#define PCI_PM_CAP_PME_D2 0x2000 /* PME# from D2 */
-#define PCI_PM_CAP_PME_D3hot 0x4000 /* PME# from D3 (hot) */
+#define PCI_PM_CAP_PME_D3 0x4000 /* PME# from D3 (hot) */
#define PCI_PM_CAP_PME_D3cold 0x8000 /* PME# from D3 (cold) */
#define PCI_PM_CAP_PME_SHIFT 11 /* Start of the PME Mask in PMC */
#define PCI_PM_CTRL 4 /* PM control and status register */
@@ -531,11 +530,8 @@
#define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */
#define PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004 /* LNKCAP2 SLS Vector bit 3 */
#define PCI_EXP_LNKCAP_SLS_32_0GB 0x00000005 /* LNKCAP2 SLS Vector bit 4 */
-#define PCI_EXP_LNKCAP_SLS_64_0GB 0x00000006 /* LNKCAP2 SLS Vector bit 5 */
#define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */
#define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */
-#define PCI_EXP_LNKCAP_ASPM_L0S 0x00000400 /* ASPM L0s Support */
-#define PCI_EXP_LNKCAP_ASPM_L1 0x00000800 /* ASPM L1 Support */
#define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */
#define PCI_EXP_LNKCAP_L1EL 0x00038000 /* L1 Exit Latency */
#define PCI_EXP_LNKCAP_CLKPM 0x00040000 /* Clock Power Management */
@@ -563,7 +559,6 @@
#define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */
#define PCI_EXP_LNKSTA_CLS_16_0GB 0x0004 /* Current Link Speed 16.0GT/s */
#define PCI_EXP_LNKSTA_CLS_32_0GB 0x0005 /* Current Link Speed 32.0GT/s */
-#define PCI_EXP_LNKSTA_CLS_64_0GB 0x0006 /* Current Link Speed 64.0GT/s */
#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */
#define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */
#define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */
@@ -610,7 +605,6 @@
#define PCI_EXP_SLTCTL_PWR_OFF 0x0400 /* Power Off */
#define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */
#define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */
-#define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000 /* In-band PD disable */
#define PCI_EXP_SLTSTA 26 /* Slot Status */
#define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */
#define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */
@@ -672,7 +666,6 @@
#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8GT/s */
#define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010 /* Supported Speed 16GT/s */
#define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020 /* Supported Speed 32GT/s */
-#define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040 /* Supported Speed 64GT/s */
#define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */
#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
#define PCI_EXP_LNKCTL2_TLS 0x000f
@@ -681,14 +674,11 @@
#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */
#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */
#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */
-#define PCI_EXP_LNKCTL2_TLS_64_0GT 0x0006 /* Supported Speed 64GT/s */
#define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */
#define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */
-#define PCI_EXP_LNKCTL2_HASD 0x0020 /* HW Autonomous Speed Disable */
#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
-#define PCI_EXP_SLTCAP2_IBPD 0x00000001 /* In-band PD Disable Supported */
#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */
#define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */
@@ -727,7 +717,6 @@
#define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */
#define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */
#define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */
-#define PCI_EXT_CAP_ID_DVSEC 0x23 /* Designated Vendor-Specific */
#define PCI_EXT_CAP_ID_DLF 0x25 /* Data Link Feature */
#define PCI_EXT_CAP_ID_PL_16GT 0x26 /* Physical Layer 16.0 GT/s */
#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT
@@ -836,13 +825,6 @@
#define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */
#define PCI_EXT_CAP_PWR_SIZEOF 16
-/* Root Complex Event Collector Endpoint Association */
-#define PCI_RCEC_RCIEP_BITMAP 4 /* Associated Bitmap for RCiEPs */
-#define PCI_RCEC_BUSN 8 /* RCEC Associated Bus Numbers */
-#define PCI_RCEC_BUSN_REG_VER 0x02 /* Least version with BUSN present */
-#define PCI_RCEC_BUSN_NEXT(x) (((x) >> 8) & 0xff)
-#define PCI_RCEC_BUSN_LAST(x) (((x) >> 16) & 0xff)
-
/* Vendor-Specific (VSEC, PCI_EXT_CAP_ID_VNDR) */
#define PCI_VNDR_HEADER 4 /* Vendor-Specific Header */
#define PCI_VNDR_HEADER_ID(x) ((x) & 0xffff)
@@ -1071,17 +1053,12 @@
#define PCI_L1SS_CTL1_PCIPM_L1_1 0x00000002 /* PCI-PM L1.1 Enable */
#define PCI_L1SS_CTL1_ASPM_L1_2 0x00000004 /* ASPM L1.2 Enable */
#define PCI_L1SS_CTL1_ASPM_L1_1 0x00000008 /* ASPM L1.1 Enable */
-#define PCI_L1SS_CTL1_L1_2_MASK 0x00000005
#define PCI_L1SS_CTL1_L1SS_MASK 0x0000000f
#define PCI_L1SS_CTL1_CM_RESTORE_TIME 0x0000ff00 /* Common_Mode_Restore_Time */
#define PCI_L1SS_CTL1_LTR_L12_TH_VALUE 0x03ff0000 /* LTR_L1.2_THRESHOLD_Value */
#define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000 /* LTR_L1.2_THRESHOLD_Scale */
#define PCI_L1SS_CTL2 0x0c /* Control 2 Register */
-/* Designated Vendor-Specific (DVSEC, PCI_EXT_CAP_ID_DVSEC) */
-#define PCI_DVSEC_HEADER1 0x4 /* Designated Vendor-Specific Header1 */
-#define PCI_DVSEC_HEADER2 0x8 /* Designated Vendor-Specific Header2 */
-
/* Data Link Feature */
#define PCI_DLF_CAP 0x04 /* Capabilities Register */
#define PCI_DLF_EXCHANGE_ENABLE 0x80000000 /* Data Link Feature Exchange Enable */
diff --git a/original/uapi/linux/pcitest.h b/original/uapi/linux/pcitest.h
index c3ab4c8..cbf422e 100644
--- a/original/uapi/linux/pcitest.h
+++ b/original/uapi/linux/pcitest.h
@@ -19,13 +19,5 @@
#define PCITEST_MSIX _IOW('P', 0x7, int)
#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
-#define PCITEST_CLEAR_IRQ _IO('P', 0x10)
-
-#define PCITEST_FLAGS_USE_DMA 0x00000001
-
-struct pci_endpoint_test_xfer_param {
- unsigned long size;
- unsigned char flags;
-};
#endif /* __UAPI_LINUX_PCITEST_H */
diff --git a/original/uapi/linux/perf_event.h b/original/uapi/linux/perf_event.h
index ad15e40..377d794 100644
--- a/original/uapi/linux/perf_event.h
+++ b/original/uapi/linux/perf_event.h
@@ -142,17 +142,12 @@ enum perf_event_sample_format {
PERF_SAMPLE_REGS_INTR = 1U << 18,
PERF_SAMPLE_PHYS_ADDR = 1U << 19,
PERF_SAMPLE_AUX = 1U << 20,
- PERF_SAMPLE_CGROUP = 1U << 21,
- PERF_SAMPLE_DATA_PAGE_SIZE = 1U << 22,
- PERF_SAMPLE_CODE_PAGE_SIZE = 1U << 23,
- PERF_SAMPLE_WEIGHT_STRUCT = 1U << 24,
- PERF_SAMPLE_MAX = 1U << 25, /* non-ABI */
+ PERF_SAMPLE_MAX = 1U << 21, /* non-ABI */
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
};
-#define PERF_SAMPLE_WEIGHT_TYPE (PERF_SAMPLE_WEIGHT | PERF_SAMPLE_WEIGHT_STRUCT)
/*
* values to program into branch_sample_type when PERF_SAMPLE_BRANCH is set
*
@@ -186,8 +181,6 @@ enum perf_branch_sample_type_shift {
PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, /* save branch type */
- PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, /* save low level index of raw branch records */
-
PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
};
@@ -215,8 +208,6 @@ enum perf_branch_sample_type {
PERF_SAMPLE_BRANCH_TYPE_SAVE =
1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT,
- PERF_SAMPLE_BRANCH_HW_INDEX = 1U << PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT,
-
PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
};
@@ -386,10 +377,7 @@ struct perf_event_attr {
ksymbol : 1, /* include ksymbol events */
bpf_event : 1, /* include bpf events */
aux_output : 1, /* generate AUX records instead of events */
- cgroup : 1, /* include cgroup events */
- text_poke : 1, /* include text poke events */
- build_id : 1, /* use build id in mmap2 events */
- __reserved_1 : 29;
+ __reserved_1 : 32;
union {
__u32 wakeup_events; /* wakeup every n events */
@@ -538,10 +526,9 @@ struct perf_event_mmap_page {
cap_bit0_is_deprecated : 1, /* Always 1, signals that bit 0 is zero */
cap_user_rdpmc : 1, /* The RDPMC instruction can be used to read counts */
- cap_user_time : 1, /* The time_{shift,mult,offset} fields are used */
+ cap_user_time : 1, /* The time_* fields are used */
cap_user_time_zero : 1, /* The time_zero field is used */
- cap_user_time_short : 1, /* the time_{cycle,mask} fields are used */
- cap_____res : 58;
+ cap_____res : 59;
};
};
@@ -600,29 +587,13 @@ struct perf_event_mmap_page {
* ((rem * time_mult) >> time_shift);
*/
__u64 time_zero;
-
__u32 size; /* Header size up to __reserved[] fields. */
- __u32 __reserved_1;
-
- /*
- * If cap_usr_time_short, the hardware clock is less than 64bit wide
- * and we must compute the 'cyc' value, as used by cap_usr_time, as:
- *
- * cyc = time_cycles + ((cyc - time_cycles) & time_mask)
- *
- * NOTE: this form is explicitly chosen such that cap_usr_time_short
- * is a correction on top of cap_usr_time, and code that doesn't
- * know about cap_usr_time_short still works under the assumption
- * the counter doesn't wrap.
- */
- __u64 time_cycles;
- __u64 time_mask;
/*
* Hole for extension of the self monitor capabilities
*/
- __u8 __reserved[116*8]; /* align to 1k. */
+ __u8 __reserved[118*8+4]; /* align to 1k. */
/*
* Control data for the mmap() data buffer.
@@ -662,22 +633,6 @@ struct perf_event_mmap_page {
__u64 aux_size;
};
-/*
- * The current state of perf_event_header::misc bits usage:
- * ('|' used bit, '-' unused bit)
- *
- * 012 CDEF
- * |||---------||||
- *
- * Where:
- * 0-2 CPUMODE_MASK
- *
- * C PROC_MAP_PARSE_TIMEOUT
- * D MMAP_DATA / COMM_EXEC / FORK_EXEC / SWITCH_OUT
- * E MMAP_BUILD_ID / EXACT_IP / SCHED_OUT_PREEMPT
- * F (reserved)
- */
-
#define PERF_RECORD_MISC_CPUMODE_MASK (7 << 0)
#define PERF_RECORD_MISC_CPUMODE_UNKNOWN (0 << 0)
#define PERF_RECORD_MISC_KERNEL (1 << 0)
@@ -709,7 +664,6 @@ struct perf_event_mmap_page {
*
* PERF_RECORD_MISC_EXACT_IP - PERF_RECORD_SAMPLE of precise events
* PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
- * PERF_RECORD_MISC_MMAP_BUILD_ID - PERF_RECORD_MMAP2 event
*
*
* PERF_RECORD_MISC_EXACT_IP:
@@ -719,13 +673,9 @@ struct perf_event_mmap_page {
*
* PERF_RECORD_MISC_SWITCH_OUT_PREEMPT:
* Indicates that thread was preempted in TASK_RUNNING state.
- *
- * PERF_RECORD_MISC_MMAP_BUILD_ID:
- * Indicates that mmap2 event carries build id data.
*/
#define PERF_RECORD_MISC_EXACT_IP (1 << 14)
#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT (1 << 14)
-#define PERF_RECORD_MISC_MMAP_BUILD_ID (1 << 14)
/*
* Reserve the last bit to indicate some extended misc field
*/
@@ -903,9 +853,7 @@ enum perf_event_type {
* char data[size];}&& PERF_SAMPLE_RAW
*
* { u64 nr;
- * { u64 hw_idx; } && PERF_SAMPLE_BRANCH_HW_INDEX
- * { u64 from, to, flags } lbr[nr];
- * } && PERF_SAMPLE_BRANCH_STACK
+ * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK
*
* { u64 abi; # enum perf_sample_regs_abi
* u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER
@@ -914,24 +862,7 @@ enum perf_event_type {
* char data[size];
* u64 dyn_size; } && PERF_SAMPLE_STACK_USER
*
- * { union perf_sample_weight
- * {
- * u64 full; && PERF_SAMPLE_WEIGHT
- * #if defined(__LITTLE_ENDIAN_BITFIELD)
- * struct {
- * u32 var1_dw;
- * u16 var2_w;
- * u16 var3_w;
- * } && PERF_SAMPLE_WEIGHT_STRUCT
- * #elif defined(__BIG_ENDIAN_BITFIELD)
- * struct {
- * u16 var3_w;
- * u16 var2_w;
- * u32 var1_dw;
- * } && PERF_SAMPLE_WEIGHT_STRUCT
- * #endif
- * }
- * }
+ * { u64 weight; } && PERF_SAMPLE_WEIGHT
* { u64 data_src; } && PERF_SAMPLE_DATA_SRC
* { u64 transaction; } && PERF_SAMPLE_TRANSACTION
* { u64 abi; # enum perf_sample_regs_abi
@@ -939,8 +870,6 @@ enum perf_event_type {
* { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
* { u64 size;
* char data[size]; } && PERF_SAMPLE_AUX
- * { u64 data_page_size;} && PERF_SAMPLE_DATA_PAGE_SIZE
- * { u64 code_page_size;} && PERF_SAMPLE_CODE_PAGE_SIZE
* };
*/
PERF_RECORD_SAMPLE = 9,
@@ -956,20 +885,10 @@ enum perf_event_type {
* u64 addr;
* u64 len;
* u64 pgoff;
- * union {
- * struct {
- * u32 maj;
- * u32 min;
- * u64 ino;
- * u64 ino_generation;
- * };
- * struct {
- * u8 build_id_size;
- * u8 __reserved_1;
- * u16 __reserved_2;
- * u8 build_id[20];
- * };
- * };
+ * u32 maj;
+ * u32 min;
+ * u64 ino;
+ * u64 ino_generation;
* u32 prot, flags;
* char filename[];
* struct sample_id sample_id;
@@ -1087,45 +1006,12 @@ enum perf_event_type {
*/
PERF_RECORD_BPF_EVENT = 18,
- /*
- * struct {
- * struct perf_event_header header;
- * u64 id;
- * char path[];
- * struct sample_id sample_id;
- * };
- */
- PERF_RECORD_CGROUP = 19,
-
- /*
- * Records changes to kernel text i.e. self-modified code. 'old_len' is
- * the number of old bytes, 'new_len' is the number of new bytes. Either
- * 'old_len' or 'new_len' may be zero to indicate, for example, the
- * addition or removal of a trampoline. 'bytes' contains the old bytes
- * followed immediately by the new bytes.
- *
- * struct {
- * struct perf_event_header header;
- * u64 addr;
- * u16 old_len;
- * u16 new_len;
- * u8 bytes[];
- * struct sample_id sample_id;
- * };
- */
- PERF_RECORD_TEXT_POKE = 20,
-
PERF_RECORD_MAX, /* non-ABI */
};
enum perf_record_ksymbol_type {
PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0,
PERF_RECORD_KSYMBOL_TYPE_BPF = 1,
- /*
- * Out of line code such as kprobe-replaced instructions or optimized
- * kprobes or ftrace trampolines.
- */
- PERF_RECORD_KSYMBOL_TYPE_OOL = 2,
PERF_RECORD_KSYMBOL_TYPE_MAX /* non-ABI */
};
@@ -1178,16 +1064,14 @@ union perf_mem_data_src {
mem_lvl_num:4, /* memory hierarchy level number */
mem_remote:1, /* remote */
mem_snoopx:2, /* snoop mode, ext */
- mem_blk:3, /* access blocked */
- mem_rsvd:21;
+ mem_rsvd:24;
};
};
#elif defined(__BIG_ENDIAN_BITFIELD)
union perf_mem_data_src {
__u64 val;
struct {
- __u64 mem_rsvd:21,
- mem_blk:3, /* access blocked */
+ __u64 mem_rsvd:24,
mem_snoopx:2, /* snoop mode, ext */
mem_remote:1, /* remote */
mem_lvl_num:4, /* memory hierarchy level number */
@@ -1253,7 +1137,7 @@ union perf_mem_data_src {
#define PERF_MEM_SNOOPX_FWD 0x01 /* forward */
/* 1 free */
-#define PERF_MEM_SNOOPX_SHIFT 38
+#define PERF_MEM_SNOOPX_SHIFT 37
/* locked instruction */
#define PERF_MEM_LOCK_NA 0x01 /* not available */
@@ -1270,12 +1154,6 @@ union perf_mem_data_src {
#define PERF_MEM_TLB_OS 0x40 /* OS fault handler */
#define PERF_MEM_TLB_SHIFT 26
-/* Access blocked */
-#define PERF_MEM_BLK_NA 0x01 /* not available */
-#define PERF_MEM_BLK_DATA 0x02 /* data could not be forwarded */
-#define PERF_MEM_BLK_ADDR 0x04 /* address conflict */
-#define PERF_MEM_BLK_SHIFT 40
-
#define PERF_MEM_S(a, s) \
(((__u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT)
@@ -1307,23 +1185,4 @@ struct perf_branch_entry {
reserved:40;
};
-union perf_sample_weight {
- __u64 full;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- struct {
- __u32 var1_dw;
- __u16 var2_w;
- __u16 var3_w;
- };
-#elif defined(__BIG_ENDIAN_BITFIELD)
- struct {
- __u16 var3_w;
- __u16 var2_w;
- __u32 var1_dw;
- };
-#else
-#error "Unknown endianness"
-#endif
-};
-
#endif /* _UAPI_LINUX_PERF_EVENT_H */
diff --git a/original/uapi/linux/pidfd.h b/original/uapi/linux/pidfd.h
deleted file mode 100644
index 5406fbc..0000000
--- a/original/uapi/linux/pidfd.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-
-#ifndef _UAPI_LINUX_PIDFD_H
-#define _UAPI_LINUX_PIDFD_H
-
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-/* Flags for pidfd_open(). */
-#define PIDFD_NONBLOCK O_NONBLOCK
-
-#endif /* _UAPI_LINUX_PIDFD_H */
diff --git a/original/uapi/linux/pkt_cls.h b/original/uapi/linux/pkt_cls.h
index 7ea59cf..449a639 100644
--- a/original/uapi/linux/pkt_cls.h
+++ b/original/uapi/linux/pkt_cls.h
@@ -17,8 +17,6 @@ enum {
TCA_ACT_PAD,
TCA_ACT_COOKIE,
TCA_ACT_FLAGS,
- TCA_ACT_HW_STATS,
- TCA_ACT_USED_HW_STATS,
__TCA_ACT_MAX
};
@@ -26,26 +24,6 @@ enum {
* actions stats.
*/
-/* tca HW stats type
- * When user does not pass the attribute, he does not care.
- * It is the same as if he would pass the attribute with
- * all supported bits set.
- * In case no bits are set, user is not interested in getting any HW statistics.
- */
-#define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) /* Means that in dump, user
- * gets the current HW stats
- * state from the device
- * queried at the dump time.
- */
-#define TCA_ACT_HW_STATS_DELAYED (1 << 1) /* Means that in dump, user gets
- * HW stats that might be out of date
- * for some time, maybe couple of
- * seconds. This is the case when
- * driver polls stats updates
- * periodically or when it gets async
- * stats update from the device.
- */
-
#define TCA_ACT_MAX __TCA_ACT_MAX
#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
#define TCA_ACT_MAX_PRIO 32
@@ -134,7 +112,6 @@ enum tca_id {
TCA_ID_CTINFO,
TCA_ID_MPLS,
TCA_ID_CT,
- TCA_ID_GATE,
/* other actions go here */
__TCA_ID_MAX = 255
};
@@ -576,11 +553,6 @@ enum {
TCA_FLOWER_KEY_CT_LABELS, /* u128 */
TCA_FLOWER_KEY_CT_LABELS_MASK, /* u128 */
- TCA_FLOWER_KEY_MPLS_OPTS,
-
- TCA_FLOWER_KEY_HASH, /* u32 */
- TCA_FLOWER_KEY_HASH_MASK, /* u32 */
-
__TCA_FLOWER_MAX,
};
@@ -591,9 +563,6 @@ enum {
TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1, /* Part of an existing connection. */
TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2, /* Related to an established connection. */
TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3, /* Conntrack has occurred. */
- TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4, /* Conntrack is invalid. */
- TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5, /* Packet is in the reply direction. */
- __TCA_FLOWER_KEY_CT_FLAGS_MAX,
};
enum {
@@ -649,27 +618,6 @@ enum {
(__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
enum {
- TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
- TCA_FLOWER_KEY_MPLS_OPTS_LSE,
- __TCA_FLOWER_KEY_MPLS_OPTS_MAX,
-};
-
-#define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1)
-
-enum {
- TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC,
- TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH,
- TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL,
- TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS,
- TCA_FLOWER_KEY_MPLS_OPT_LSE_TC,
- TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL,
- __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX,
-};
-
-#define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX \
- (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1)
-
-enum {
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
};
diff --git a/original/uapi/linux/pkt_sched.h b/original/uapi/linux/pkt_sched.h
index 79a699f..9f1a728 100644
--- a/original/uapi/linux/pkt_sched.h
+++ b/original/uapi/linux/pkt_sched.h
@@ -256,9 +256,6 @@ enum {
TCA_RED_PARMS,
TCA_RED_STAB,
TCA_RED_MAX_P,
- TCA_RED_FLAGS, /* bitfield32 */
- TCA_RED_EARLY_DROP_BLOCK, /* u32 */
- TCA_RED_MARK_BLOCK, /* u32 */
__TCA_RED_MAX,
};
@@ -271,28 +268,12 @@ struct tc_red_qopt {
unsigned char Wlog; /* log(W) */
unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
unsigned char Scell_log; /* cell size for idle damping */
-
- /* This field can be used for flags that a RED-like qdisc has
- * historically supported. E.g. when configuring RED, it can be used for
- * ECN, HARDDROP and ADAPTATIVE. For SFQ it can be used for ECN,
- * HARDDROP. Etc. Because this field has not been validated, and is
- * copied back on dump, any bits besides those to which a given qdisc
- * has assigned a historical meaning need to be considered for free use
- * by userspace tools.
- *
- * Any further flags need to be passed differently, e.g. through an
- * attribute (such as TCA_RED_FLAGS above). Such attribute should allow
- * passing both recent and historic flags in one value.
- */
unsigned char flags;
#define TC_RED_ECN 1
#define TC_RED_HARDDROP 2
#define TC_RED_ADAPTATIVE 4
-#define TC_RED_NODROP 8
};
-#define TC_RED_HISTORIC_FLAGS (TC_RED_ECN | TC_RED_HARDDROP | TC_RED_ADAPTATIVE)
-
struct tc_red_xstats {
__u32 early; /* Early drops */
__u32 pdrop; /* Drops due to queue limits */
@@ -434,7 +415,6 @@ enum {
TCA_HTB_RATE64,
TCA_HTB_CEIL64,
TCA_HTB_PAD,
- TCA_HTB_OFFLOAD,
__TCA_HTB_MAX,
};
@@ -914,12 +894,6 @@ enum {
TCA_FQ_CE_THRESHOLD, /* DCTCP-like CE-marking threshold */
- TCA_FQ_TIMER_SLACK, /* timer slack */
-
- TCA_FQ_HORIZON, /* time horizon in us */
-
- TCA_FQ_HORIZON_DROP, /* drop packets beyond horizon, or cap their EDT */
-
__TCA_FQ_MAX
};
@@ -939,8 +913,6 @@ struct tc_fq_qd_stats {
__u32 throttled_flows;
__u32 unthrottle_latency_ns;
__u64 ce_mark; /* packets above ce_threshold */
- __u64 horizon_drops;
- __u64 horizon_caps;
};
/* Heavy-Hitter Filter */
@@ -999,37 +971,6 @@ struct tc_pie_xstats {
__u32 ecn_mark; /* packets marked with ecn*/
};
-/* FQ PIE */
-enum {
- TCA_FQ_PIE_UNSPEC,
- TCA_FQ_PIE_LIMIT,
- TCA_FQ_PIE_FLOWS,
- TCA_FQ_PIE_TARGET,
- TCA_FQ_PIE_TUPDATE,
- TCA_FQ_PIE_ALPHA,
- TCA_FQ_PIE_BETA,
- TCA_FQ_PIE_QUANTUM,
- TCA_FQ_PIE_MEMORY_LIMIT,
- TCA_FQ_PIE_ECN_PROB,
- TCA_FQ_PIE_ECN,
- TCA_FQ_PIE_BYTEMODE,
- TCA_FQ_PIE_DQ_RATE_ESTIMATOR,
- __TCA_FQ_PIE_MAX
-};
-#define TCA_FQ_PIE_MAX (__TCA_FQ_PIE_MAX - 1)
-
-struct tc_fq_pie_xstats {
- __u32 packets_in; /* total number of packets enqueued */
- __u32 dropped; /* packets dropped due to fq_pie_action */
- __u32 overlimit; /* dropped due to lack of space in queue */
- __u32 overmemory; /* dropped due to lack of memory in queue */
- __u32 ecn_mark; /* packets marked with ecn */
- __u32 new_flow_count; /* count of new flows created by packets */
- __u32 new_flows_len; /* count of flows in new list */
- __u32 old_flows_len; /* count of flows in old list */
- __u32 memory_usage; /* total memory across all queues */
-};
-
/* CBS */
struct tc_cbs_qopt {
__u8 offload;
@@ -1225,8 +1166,8 @@ enum {
* [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
*/
-#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)
-#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)
+#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST BIT(0)
+#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD BIT(1)
enum {
TCA_TAPRIO_ATTR_UNSPEC,
@@ -1246,21 +1187,4 @@ enum {
#define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)
-/* ETS */
-
-#define TCQ_ETS_MAX_BANDS 16
-
-enum {
- TCA_ETS_UNSPEC,
- TCA_ETS_NBANDS, /* u8 */
- TCA_ETS_NSTRICT, /* u8 */
- TCA_ETS_QUANTA, /* nested TCA_ETS_QUANTA_BAND */
- TCA_ETS_QUANTA_BAND, /* u32 */
- TCA_ETS_PRIOMAP, /* nested TCA_ETS_PRIOMAP_BAND */
- TCA_ETS_PRIOMAP_BAND, /* u8 */
- __TCA_ETS_MAX,
-};
-
-#define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
-
#endif
diff --git a/original/uapi/linux/ppp-ioctl.h b/original/uapi/linux/ppp-ioctl.h
index 1cc5ce0..7bd2a5a 100644
--- a/original/uapi/linux/ppp-ioctl.h
+++ b/original/uapi/linux/ppp-ioctl.h
@@ -115,8 +115,6 @@ struct pppol2tp_ioc_stats {
#define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */
#define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */
#define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats)
-#define PPPIOCBRIDGECHAN _IOW('t', 53, int) /* bridge one channel to another */
-#define PPPIOCUNBRIDGECHAN _IO('t', 52) /* unbridge channel */
#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0)
#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */
diff --git a/original/uapi/linux/prctl.h b/original/uapi/linux/prctl.h
index 5d836c9..bc4a5d9 100644
--- a/original/uapi/linux/prctl.h
+++ b/original/uapi/linux/prctl.h
@@ -233,27 +233,6 @@ struct prctl_mm_map {
#define PR_SET_TAGGED_ADDR_CTRL 55
#define PR_GET_TAGGED_ADDR_CTRL 56
# define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-/* MTE tag check fault modes */
-# define PR_MTE_TCF_SHIFT 1
-# define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT)
-# define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT)
-# define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT)
-# define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT)
-/* MTE tag inclusion mask */
-# define PR_MTE_TAG_SHIFT 3
-# define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
-
-/* Control reclaim behavior when allocating memory */
-#define PR_SET_IO_FLUSHER 57
-#define PR_GET_IO_FLUSHER 58
-
-/* Dispatch syscalls to a userspace handler */
-#define PR_SET_SYSCALL_USER_DISPATCH 59
-# define PR_SYS_DISPATCH_OFF 0
-# define PR_SYS_DISPATCH_ON 1
-/* The control values for the user space selector when dispatch is enabled */
-# define SYSCALL_DISPATCH_FILTER_ALLOW 0
-# define SYSCALL_DISPATCH_FILTER_BLOCK 1
#define PR_SET_VMA 0x53564d41
# define PR_SET_VMA_ANON_NAME 0
diff --git a/original/uapi/linux/psample.h b/original/uapi/linux/psample.h
index bff5032..ce1116c 100644
--- a/original/uapi/linux/psample.h
+++ b/original/uapi/linux/psample.h
@@ -3,6 +3,7 @@
#define __UAPI_PSAMPLE_H
enum {
+ /* sampled packet metadata */
PSAMPLE_ATTR_IIFINDEX,
PSAMPLE_ATTR_OIFINDEX,
PSAMPLE_ATTR_ORIGSIZE,
@@ -10,8 +11,9 @@ enum {
PSAMPLE_ATTR_GROUP_SEQ,
PSAMPLE_ATTR_SAMPLE_RATE,
PSAMPLE_ATTR_DATA,
+
+ /* commands attributes */
PSAMPLE_ATTR_GROUP_REFCOUNT,
- PSAMPLE_ATTR_TUNNEL,
__PSAMPLE_ATTR_MAX
};
@@ -23,27 +25,6 @@ enum psample_command {
PSAMPLE_CMD_DEL_GROUP,
};
-enum psample_tunnel_key_attr {
- PSAMPLE_TUNNEL_KEY_ATTR_ID, /* be64 Tunnel ID */
- PSAMPLE_TUNNEL_KEY_ATTR_IPV4_SRC, /* be32 src IP address. */
- PSAMPLE_TUNNEL_KEY_ATTR_IPV4_DST, /* be32 dst IP address. */
- PSAMPLE_TUNNEL_KEY_ATTR_TOS, /* u8 Tunnel IP ToS. */
- PSAMPLE_TUNNEL_KEY_ATTR_TTL, /* u8 Tunnel IP TTL. */
- PSAMPLE_TUNNEL_KEY_ATTR_DONT_FRAGMENT, /* No argument, set DF. */
- PSAMPLE_TUNNEL_KEY_ATTR_CSUM, /* No argument. CSUM packet. */
- PSAMPLE_TUNNEL_KEY_ATTR_OAM, /* No argument. OAM frame. */
- PSAMPLE_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */
- PSAMPLE_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */
- PSAMPLE_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */
- PSAMPLE_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested VXLAN opts* */
- PSAMPLE_TUNNEL_KEY_ATTR_IPV6_SRC, /* struct in6_addr src IPv6 address. */
- PSAMPLE_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6 address. */
- PSAMPLE_TUNNEL_KEY_ATTR_PAD,
- PSAMPLE_TUNNEL_KEY_ATTR_ERSPAN_OPTS, /* struct erspan_metadata */
- PSAMPLE_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, /* No argument. IPV4_INFO_BRIDGE mode.*/
- __PSAMPLE_TUNNEL_KEY_ATTR_MAX
-};
-
/* Can be overridden at runtime by module option */
#define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1)
diff --git a/original/uapi/linux/psp-sev.h b/original/uapi/linux/psp-sev.h
index 91b4c63..0549a5c 100644
--- a/original/uapi/linux/psp-sev.h
+++ b/original/uapi/linux/psp-sev.h
@@ -83,8 +83,6 @@ struct sev_user_data_status {
__u32 guest_count; /* Out */
} __packed;
-#define SEV_STATUS_FLAGS_CONFIG_ES 0x0100
-
/**
* struct sev_user_data_pek_csr - PEK_CSR command parameters
*
diff --git a/original/uapi/linux/ptp_clock.h b/original/uapi/linux/ptp_clock.h
index 1d108d5..9dc9d00 100644
--- a/original/uapi/linux/ptp_clock.h
+++ b/original/uapi/linux/ptp_clock.h
@@ -53,16 +53,12 @@
/*
* Bits of the ptp_perout_request.flags field:
*/
-#define PTP_PEROUT_ONE_SHOT (1<<0)
-#define PTP_PEROUT_DUTY_CYCLE (1<<1)
-#define PTP_PEROUT_PHASE (1<<2)
+#define PTP_PEROUT_ONE_SHOT (1<<0)
/*
* flag fields valid for the new PTP_PEROUT_REQUEST2 ioctl.
*/
-#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT | \
- PTP_PEROUT_DUTY_CYCLE | \
- PTP_PEROUT_PHASE)
+#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT)
/*
* No flags are valid for the original PTP_PEROUT_REQUEST ioctl
@@ -93,9 +89,7 @@ struct ptp_clock_caps {
int n_pins; /* Number of input/output pins. */
/* Whether the clock supports precise system-device cross timestamps */
int cross_timestamping;
- /* Whether the clock supports adjust phase */
- int adjust_phase;
- int rsv[12]; /* Reserved for future use. */
+ int rsv[13]; /* Reserved for future use. */
};
struct ptp_extts_request {
@@ -105,33 +99,11 @@ struct ptp_extts_request {
};
struct ptp_perout_request {
- union {
- /*
- * Absolute start time.
- * Valid only if (flags & PTP_PEROUT_PHASE) is unset.
- */
- struct ptp_clock_time start;
- /*
- * Phase offset. The signal should start toggling at an
- * unspecified integer multiple of the period, plus this value.
- * The start time should be "as soon as possible".
- * Valid only if (flags & PTP_PEROUT_PHASE) is set.
- */
- struct ptp_clock_time phase;
- };
+ struct ptp_clock_time start; /* Absolute start time. */
struct ptp_clock_time period; /* Desired period, zero means disable. */
unsigned int index; /* Which channel to configure. */
unsigned int flags;
- union {
- /*
- * The "on" time of the signal.
- * Must be lower than the period.
- * Valid only if (flags & PTP_PEROUT_DUTY_CYCLE) is set.
- */
- struct ptp_clock_time on;
- /* Reserved for future use. */
- unsigned int rsv[4];
- };
+ unsigned int rsv[4]; /* Reserved for future use. */
};
#define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */
diff --git a/original/uapi/linux/ptrace.h b/original/uapi/linux/ptrace.h
index 83ee45f..a71b6e3 100644
--- a/original/uapi/linux/ptrace.h
+++ b/original/uapi/linux/ptrace.h
@@ -81,8 +81,7 @@ struct seccomp_metadata {
struct ptrace_syscall_info {
__u8 op; /* PTRACE_SYSCALL_INFO_* */
- __u8 pad[3];
- __u32 arch;
+ __u32 arch __attribute__((__aligned__(sizeof(__u32))));
__u64 instruction_pointer;
__u64 stack_pointer;
union {
diff --git a/original/uapi/linux/raid/md_p.h b/original/uapi/linux/raid/md_p.h
index e5a98a1..1f2d8c8 100644
--- a/original/uapi/linux/raid/md_p.h
+++ b/original/uapi/linux/raid/md_p.h
@@ -123,7 +123,7 @@ typedef struct mdp_device_descriptor_s {
/*
* Notes:
- * - if an array is being reshaped (restriped) in order to change
+ * - if an array is being reshaped (restriped) in order to change the
* the number of active devices in the array, 'raid_disks' will be
* the larger of the old and new numbers. 'delta_disks' will
* be the "new - old". So if +ve, raid_disks is the new value, and
diff --git a/original/uapi/linux/random.h b/original/uapi/linux/random.h
index dcc1b3e..26ee913 100644
--- a/original/uapi/linux/random.h
+++ b/original/uapi/linux/random.h
@@ -48,11 +48,9 @@ struct rand_pool_info {
* Flags for getrandom(2)
*
* GRND_NONBLOCK Don't block and return EAGAIN instead
- * GRND_RANDOM No effect
- * GRND_INSECURE Return non-cryptographic random bytes
+ * GRND_RANDOM Use the /dev/random pool instead of /dev/urandom
*/
#define GRND_NONBLOCK 0x0001
#define GRND_RANDOM 0x0002
-#define GRND_INSECURE 0x0004
#endif /* _UAPI_LINUX_RANDOM_H */
diff --git a/original/uapi/linux/raw.h b/original/uapi/linux/raw.h
index 4787491..dc96dda 100644
--- a/original/uapi/linux/raw.h
+++ b/original/uapi/linux/raw.h
@@ -14,4 +14,6 @@ struct raw_config_request
__u64 block_minor;
};
+#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS
+
#endif /* __LINUX_RAW_H */
diff --git a/original/uapi/linux/rds.h b/original/uapi/linux/rds.h
index c21edb9..cba368e 100644
--- a/original/uapi/linux/rds.h
+++ b/original/uapi/linux/rds.h
@@ -64,12 +64,10 @@
/* supported values for SO_RDS_TRANSPORT */
#define RDS_TRANS_IB 0
-#define RDS_TRANS_GAP 1
+#define RDS_TRANS_IWARP 1
#define RDS_TRANS_TCP 2
#define RDS_TRANS_COUNT 3
#define RDS_TRANS_NONE (~0)
-/* don't use RDS_TRANS_IWARP - it is deprecated */
-#define RDS_TRANS_IWARP RDS_TRANS_GAP
/* IOCTLS commands for SOL_RDS */
#define SIOCRDSSETTOS (SIOCPROTOPRIVATE)
diff --git a/original/uapi/linux/remoteproc_cdev.h b/original/uapi/linux/remoteproc_cdev.h
deleted file mode 100644
index c43768e..0000000
--- a/original/uapi/linux/remoteproc_cdev.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
-/*
- * IOCTLs for Remoteproc's character device interface.
- *
- * Copyright (c) 2020, The Linux Foundation. All rights reserved.
- */
-
-#ifndef _UAPI_REMOTEPROC_CDEV_H_
-#define _UAPI_REMOTEPROC_CDEV_H_
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-#define RPROC_MAGIC 0xB7
-
-/*
- * The RPROC_SET_SHUTDOWN_ON_RELEASE ioctl allows to enable/disable the shutdown of a remote
- * processor automatically when the controlling userpsace closes the char device interface.
- *
- * input parameter: integer
- * 0 : disable automatic shutdown
- * other : enable automatic shutdown
- */
-#define RPROC_SET_SHUTDOWN_ON_RELEASE _IOW(RPROC_MAGIC, 1, __s32)
-
-/*
- * The RPROC_GET_SHUTDOWN_ON_RELEASE ioctl gets information about whether the automatic shutdown of
- * a remote processor is enabled or disabled when the controlling userspace closes the char device
- * interface.
- *
- * output parameter: integer
- * 0 : automatic shutdown disable
- * other : automatic shutdown enable
- */
-#define RPROC_GET_SHUTDOWN_ON_RELEASE _IOR(RPROC_MAGIC, 2, __s32)
-
-#endif
diff --git a/original/uapi/linux/rfkill.h b/original/uapi/linux/rfkill.h
index 9b77cfc..2e00dce 100644
--- a/original/uapi/linux/rfkill.h
+++ b/original/uapi/linux/rfkill.h
@@ -70,16 +70,6 @@ enum rfkill_operation {
};
/**
- * enum rfkill_hard_block_reasons - hard block reasons
- * @RFKILL_HARD_BLOCK_SIGNAL: the hardware rfkill signal is active
- * @RFKILL_HARD_BLOCK_NOT_OWNER: the NIC is not owned by the host
- */
-enum rfkill_hard_block_reasons {
- RFKILL_HARD_BLOCK_SIGNAL = 1 << 0,
- RFKILL_HARD_BLOCK_NOT_OWNER = 1 << 1,
-};
-
-/**
* struct rfkill_event - events for userspace on /dev/rfkill
* @idx: index of dev rfkill
* @type: type of the rfkill struct
@@ -94,82 +84,22 @@ struct rfkill_event {
__u32 idx;
__u8 type;
__u8 op;
- __u8 soft;
- __u8 hard;
+ __u8 soft, hard;
} __attribute__((packed));
-/**
- * struct rfkill_event_ext - events for userspace on /dev/rfkill
- * @idx: index of dev rfkill
- * @type: type of the rfkill struct
- * @op: operation code
- * @hard: hard state (0/1)
- * @soft: soft state (0/1)
- * @hard_block_reasons: valid if hard is set. One or several reasons from
- * &enum rfkill_hard_block_reasons.
- *
- * Structure used for userspace communication on /dev/rfkill,
- * used for events from the kernel and control to the kernel.
- *
- * See the extensibility docs below.
- */
-struct rfkill_event_ext {
- __u32 idx;
- __u8 type;
- __u8 op;
- __u8 soft;
- __u8 hard;
-
- /*
- * older kernels will accept/send only up to this point,
- * and if extended further up to any chunk marked below
- */
-
- __u8 hard_block_reasons;
-} __attribute__((packed));
-
-/**
- * DOC: Extensibility
- *
- * Originally, we had planned to allow backward and forward compatible
- * changes by just adding fields at the end of the structure that are
- * then not reported on older kernels on read(), and not written to by
- * older kernels on write(), with the kernel reporting the size it did
- * accept as the result.
- *
- * This would have allowed userspace to detect on read() and write()
- * which kernel structure version it was dealing with, and if was just
- * recompiled it would have gotten the new fields, but obviously not
- * accessed them, but things should've continued to work.
- *
- * Unfortunately, while actually exercising this mechanism to add the
- * hard block reasons field, we found that userspace (notably systemd)
- * did all kinds of fun things not in line with this scheme:
- *
- * 1. treat the (expected) short writes as an error;
- * 2. ask to read sizeof(struct rfkill_event) but then compare the
- * actual return value to RFKILL_EVENT_SIZE_V1 and treat any
- * mismatch as an error.
- *
- * As a consequence, just recompiling with a new struct version caused
- * things to no longer work correctly on old and new kernels.
- *
- * Hence, we've rolled back &struct rfkill_event to the original version
- * and added &struct rfkill_event_ext. This effectively reverts to the
- * old behaviour for all userspace, unless it explicitly opts in to the
- * rules outlined here by using the new &struct rfkill_event_ext.
- *
- * Userspace using &struct rfkill_event_ext must adhere to the following
- * rules
+/*
+ * We are planning to be backward and forward compatible with changes
+ * to the event struct, by adding new, optional, members at the end.
+ * When reading an event (whether the kernel from userspace or vice
+ * versa) we need to accept anything that's at least as large as the
+ * version 1 event size, but might be able to accept other sizes in
+ * the future.
*
- * 1. accept short writes, optionally using them to detect that it's
- * running on an older kernel;
- * 2. accept short reads, knowing that this means it's running on an
- * older kernel;
- * 3. treat reads that are as long as requested as acceptable, not
- * checking against RFKILL_EVENT_SIZE_V1 or such.
+ * One exception is the kernel -- we already have two event sizes in
+ * that we've made the 'hard' member optional since our only option
+ * is to ignore it anyway.
*/
-#define RFKILL_EVENT_SIZE_V1 sizeof(struct rfkill_event)
+#define RFKILL_EVENT_SIZE_V1 8
/* ioctl for turning off rfkill-input (if present) */
#define RFKILL_IOC_MAGIC 'R'
diff --git a/original/uapi/linux/rkisp1-config.h b/original/uapi/linux/rkisp1-config.h
deleted file mode 100644
index 36e3efb..0000000
--- a/original/uapi/linux/rkisp1-config.h
+++ /dev/null
@@ -1,950 +0,0 @@
-/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR MIT) */
-/*
- * Rockchip ISP1 userspace API
- * Copyright (C) 2017 Rockchip Electronics Co., Ltd.
- */
-
-#ifndef _UAPI_RKISP1_CONFIG_H
-#define _UAPI_RKISP1_CONFIG_H
-
-#include <linux/types.h>
-
-/* Defect Pixel Cluster Detection */
-#define RKISP1_CIF_ISP_MODULE_DPCC (1U << 0)
-/* Black Level Subtraction */
-#define RKISP1_CIF_ISP_MODULE_BLS (1U << 1)
-/* Sensor De-gamma */
-#define RKISP1_CIF_ISP_MODULE_SDG (1U << 2)
-/* Histogram */
-#define RKISP1_CIF_ISP_MODULE_HST (1U << 3)
-/* Lens Shade Control */
-#define RKISP1_CIF_ISP_MODULE_LSC (1U << 4)
-/* Auto White Balance Gain */
-#define RKISP1_CIF_ISP_MODULE_AWB_GAIN (1U << 5)
-/* Filter */
-#define RKISP1_CIF_ISP_MODULE_FLT (1U << 6)
-/* Bayer Demosaic */
-#define RKISP1_CIF_ISP_MODULE_BDM (1U << 7)
-/* Cross Talk */
-#define RKISP1_CIF_ISP_MODULE_CTK (1U << 8)
-/* Gamma Out Curve */
-#define RKISP1_CIF_ISP_MODULE_GOC (1U << 9)
-/* Color Processing */
-#define RKISP1_CIF_ISP_MODULE_CPROC (1U << 10)
-/* Auto Focus Control */
-#define RKISP1_CIF_ISP_MODULE_AFC (1U << 11)
-/* Auto White Balancing */
-#define RKISP1_CIF_ISP_MODULE_AWB (1U << 12)
-/* Image Effect */
-#define RKISP1_CIF_ISP_MODULE_IE (1U << 13)
-/* Auto Exposure Control */
-#define RKISP1_CIF_ISP_MODULE_AEC (1U << 14)
-/* Wide Dynamic Range */
-#define RKISP1_CIF_ISP_MODULE_WDR (1U << 15)
-/* Denoise Pre-Filter */
-#define RKISP1_CIF_ISP_MODULE_DPF (1U << 16)
-/* Denoise Pre-Filter Strength */
-#define RKISP1_CIF_ISP_MODULE_DPF_STRENGTH (1U << 17)
-
-#define RKISP1_CIF_ISP_CTK_COEFF_MAX 0x100
-#define RKISP1_CIF_ISP_CTK_OFFSET_MAX 0x800
-
-#define RKISP1_CIF_ISP_AE_MEAN_MAX_V10 25
-#define RKISP1_CIF_ISP_AE_MEAN_MAX_V12 81
-#define RKISP1_CIF_ISP_AE_MEAN_MAX RKISP1_CIF_ISP_AE_MEAN_MAX_V12
-
-#define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 16
-#define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 32
-#define RKISP1_CIF_ISP_HIST_BIN_N_MAX RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12
-
-#define RKISP1_CIF_ISP_AFM_MAX_WINDOWS 3
-#define RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE 17
-
-#define RKISP1_CIF_ISP_BDM_MAX_TH 0xff
-
-/*
- * Black level compensation
- */
-/* maximum value for horizontal start address */
-#define RKISP1_CIF_ISP_BLS_START_H_MAX 0x00000fff
-/* maximum value for horizontal stop address */
-#define RKISP1_CIF_ISP_BLS_STOP_H_MAX 0x00000fff
-/* maximum value for vertical start address */
-#define RKISP1_CIF_ISP_BLS_START_V_MAX 0x00000fff
-/* maximum value for vertical stop address */
-#define RKISP1_CIF_ISP_BLS_STOP_V_MAX 0x00000fff
-/* maximum is 2^18 = 262144*/
-#define RKISP1_CIF_ISP_BLS_SAMPLES_MAX 0x00000012
-/* maximum value for fixed black level */
-#define RKISP1_CIF_ISP_BLS_FIX_SUB_MAX 0x00000fff
-/* minimum value for fixed black level */
-#define RKISP1_CIF_ISP_BLS_FIX_SUB_MIN 0xfffff000
-/* 13 bit range (signed)*/
-#define RKISP1_CIF_ISP_BLS_FIX_MASK 0x00001fff
-
-/*
- * Automatic white balance measurements
- */
-#define RKISP1_CIF_ISP_AWB_MAX_GRID 1
-#define RKISP1_CIF_ISP_AWB_MAX_FRAMES 7
-
-/*
- * Gamma out
- */
-/* Maximum number of color samples supported */
-#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 17
-#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 34
-#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12
-
-/*
- * Lens shade correction
- */
-#define RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE 8
-
-/*
- * The following matches the tuning process,
- * not the max capabilities of the chip.
- */
-#define RKISP1_CIF_ISP_LSC_SAMPLES_MAX 17
-
-/*
- * Histogram calculation
- */
-#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 25
-#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 81
-#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12
-
-/*
- * Defect Pixel Cluster Correction
- */
-#define RKISP1_CIF_ISP_DPCC_METHODS_MAX 3
-
-/*
- * Denoising pre filter
- */
-#define RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS 17
-#define RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS 6
-
-/*
- * Measurement types
- */
-#define RKISP1_CIF_ISP_STAT_AWB (1U << 0)
-#define RKISP1_CIF_ISP_STAT_AUTOEXP (1U << 1)
-#define RKISP1_CIF_ISP_STAT_AFM (1U << 2)
-#define RKISP1_CIF_ISP_STAT_HIST (1U << 3)
-
-/**
- * enum rkisp1_cif_isp_version - ISP variants
- *
- * @RKISP1_V10: used at least in rk3288 and rk3399
- * @RKISP1_V11: declared in the original vendor code, but not used
- * @RKISP1_V12: used at least in rk3326 and px30
- * @RKISP1_V13: used at least in rk1808
- */
-enum rkisp1_cif_isp_version {
- RKISP1_V10 = 10,
- RKISP1_V11,
- RKISP1_V12,
- RKISP1_V13,
-};
-
-enum rkisp1_cif_isp_histogram_mode {
- RKISP1_CIF_ISP_HISTOGRAM_MODE_DISABLE,
- RKISP1_CIF_ISP_HISTOGRAM_MODE_RGB_COMBINED,
- RKISP1_CIF_ISP_HISTOGRAM_MODE_R_HISTOGRAM,
- RKISP1_CIF_ISP_HISTOGRAM_MODE_G_HISTOGRAM,
- RKISP1_CIF_ISP_HISTOGRAM_MODE_B_HISTOGRAM,
- RKISP1_CIF_ISP_HISTOGRAM_MODE_Y_HISTOGRAM
-};
-
-enum rkisp1_cif_isp_awb_mode_type {
- RKISP1_CIF_ISP_AWB_MODE_MANUAL,
- RKISP1_CIF_ISP_AWB_MODE_RGB,
- RKISP1_CIF_ISP_AWB_MODE_YCBCR
-};
-
-enum rkisp1_cif_isp_flt_mode {
- RKISP1_CIF_ISP_FLT_STATIC_MODE,
- RKISP1_CIF_ISP_FLT_DYNAMIC_MODE
-};
-
-/**
- * enum rkisp1_cif_isp_exp_ctrl_autostop - stop modes
- * @RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0: continuous measurement
- * @RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1: stop measuring after a complete frame
- */
-enum rkisp1_cif_isp_exp_ctrl_autostop {
- RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0 = 0,
- RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1 = 1,
-};
-
-/**
- * enum rkisp1_cif_isp_exp_meas_mode - Exposure measure mode
- * @RKISP1_CIF_ISP_EXP_MEASURING_MODE_0: Y = 16 + 0.25R + 0.5G + 0.1094B
- * @RKISP1_CIF_ISP_EXP_MEASURING_MODE_1: Y = (R + G + B) x (85/256)
- */
-enum rkisp1_cif_isp_exp_meas_mode {
- RKISP1_CIF_ISP_EXP_MEASURING_MODE_0,
- RKISP1_CIF_ISP_EXP_MEASURING_MODE_1,
-};
-
-/*---------- PART1: Input Parameters ------------*/
-
-/**
- * struct rkisp1_cif_isp_window - measurement window.
- *
- * Measurements are calculated per window inside the frame.
- * This struct represents a window for a measurement.
- *
- * @h_offs: the horizontal offset of the window from the left of the frame in pixels.
- * @v_offs: the vertical offset of the window from the top of the frame in pixels.
- * @h_size: the horizontal size of the window in pixels
- * @v_size: the vertical size of the window in pixels.
- */
-struct rkisp1_cif_isp_window {
- __u16 h_offs;
- __u16 v_offs;
- __u16 h_size;
- __u16 v_size;
-};
-
-/**
- * struct rkisp1_cif_isp_bls_fixed_val - BLS fixed subtraction values
- *
- * The values will be subtracted from the sensor
- * values. Therefore a negative value means addition instead of subtraction!
- *
- * @r: Fixed (signed!) subtraction value for Bayer pattern R
- * @gr: Fixed (signed!) subtraction value for Bayer pattern Gr
- * @gb: Fixed (signed!) subtraction value for Bayer pattern Gb
- * @b: Fixed (signed!) subtraction value for Bayer pattern B
- */
-struct rkisp1_cif_isp_bls_fixed_val {
- __s16 r;
- __s16 gr;
- __s16 gb;
- __s16 b;
-};
-
-/**
- * struct rkisp1_cif_isp_bls_config - Configuration used by black level subtraction
- *
- * @enable_auto: Automatic mode activated means that the measured values
- * are subtracted. Otherwise the fixed subtraction
- * values will be subtracted.
- * @en_windows: enabled window
- * @bls_window1: Measurement window 1 size
- * @bls_window2: Measurement window 2 size
- * @bls_samples: Set amount of measured pixels for each Bayer position
- * (A, B,C and D) to 2^bls_samples.
- * @fixed_val: Fixed subtraction values
- */
-struct rkisp1_cif_isp_bls_config {
- __u8 enable_auto;
- __u8 en_windows;
- struct rkisp1_cif_isp_window bls_window1;
- struct rkisp1_cif_isp_window bls_window2;
- __u8 bls_samples;
- struct rkisp1_cif_isp_bls_fixed_val fixed_val;
-};
-
-/**
- * struct rkisp1_cif_isp_dpcc_methods_config - Methods Configuration used by DPCC
- *
- * Methods Configuration used by Defect Pixel Cluster Correction
- *
- * @method: Method enable bits
- * @line_thresh: Line threshold
- * @line_mad_fac: Line MAD factor
- * @pg_fac: Peak gradient factor
- * @rnd_thresh: Rank Neighbor Difference threshold
- * @rg_fac: Rank gradient factor
- */
-struct rkisp1_cif_isp_dpcc_methods_config {
- __u32 method;
- __u32 line_thresh;
- __u32 line_mad_fac;
- __u32 pg_fac;
- __u32 rnd_thresh;
- __u32 rg_fac;
-};
-
-/**
- * struct rkisp1_cif_isp_dpcc_config - Configuration used by DPCC
- *
- * Configuration used by Defect Pixel Cluster Correction
- *
- * @mode: dpcc output mode
- * @output_mode: whether use hard coded methods
- * @set_use: stage1 methods set
- * @methods: methods config
- * @ro_limits: rank order limits
- * @rnd_offs: differential rank offsets for rank neighbor difference
- */
-struct rkisp1_cif_isp_dpcc_config {
- __u32 mode;
- __u32 output_mode;
- __u32 set_use;
- struct rkisp1_cif_isp_dpcc_methods_config methods[RKISP1_CIF_ISP_DPCC_METHODS_MAX];
- __u32 ro_limits;
- __u32 rnd_offs;
-};
-
-/**
- * struct rkisp1_cif_isp_gamma_corr_curve - gamma curve point definition y-axis (output).
- *
- * The reset values define a linear curve which has the same effect as bypass. Reset values are:
- * gamma_y[0] = 0x0000, gamma_y[1] = 0x0100, ... gamma_y[15] = 0x0f00, gamma_y[16] = 0xfff
- *
- * @gamma_y: the values for the y-axis of gamma curve points. Each value is 12 bit.
- */
-struct rkisp1_cif_isp_gamma_corr_curve {
- __u16 gamma_y[RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE];
-};
-
-/**
- * struct rkisp1_cif_isp_gamma_curve_x_axis_pnts - De-Gamma Curve definition x increments
- * (sampling points). gamma_dx0 is for the lower samples (1-8), gamma_dx1 is for the
- * higher samples (9-16). The reset values for both fields is 0x44444444. This means
- * that each sample is 4 units away from the previous one on the x-axis.
- *
- * @gamma_dx0: gamma curve sample points definitions. Bits 0:2 for sample 1. Bit 3 unused.
- * Bits 4:6 for sample 2. bit 7 unused ... Bits 28:30 for sample 8. Bit 31 unused
- * @gamma_dx1: gamma curve sample points definitions. Bits 0:2 for sample 9. Bit 3 unused.
- * Bits 4:6 for sample 10. bit 7 unused ... Bits 28:30 for sample 16. Bit 31 unused
- */
-struct rkisp1_cif_isp_gamma_curve_x_axis_pnts {
- __u32 gamma_dx0;
- __u32 gamma_dx1;
-};
-
-/**
- * struct rkisp1_cif_isp_sdg_config - Configuration used by sensor degamma
- *
- * @curve_r: gamma curve point definition axis for red
- * @curve_g: gamma curve point definition axis for green
- * @curve_b: gamma curve point definition axis for blue
- * @xa_pnts: x axis increments
- */
-struct rkisp1_cif_isp_sdg_config {
- struct rkisp1_cif_isp_gamma_corr_curve curve_r;
- struct rkisp1_cif_isp_gamma_corr_curve curve_g;
- struct rkisp1_cif_isp_gamma_corr_curve curve_b;
- struct rkisp1_cif_isp_gamma_curve_x_axis_pnts xa_pnts;
-};
-
-/**
- * struct rkisp1_cif_isp_lsc_config - Configuration used by Lens shading correction
- *
- * @r_data_tbl: sample table red
- * @gr_data_tbl: sample table green (red)
- * @gb_data_tbl: sample table green (blue)
- * @b_data_tbl: sample table blue
- * @x_grad_tbl: gradient table x
- * @y_grad_tbl: gradient table y
- * @x_size_tbl: size table x
- * @y_size_tbl: size table y
- * @config_width: not used at the moment
- * @config_height: not used at the moment
- */
-struct rkisp1_cif_isp_lsc_config {
- __u16 r_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
- __u16 gr_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
- __u16 gb_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
- __u16 b_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
-
- __u16 x_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
- __u16 y_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
-
- __u16 x_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
- __u16 y_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
- __u16 config_width;
- __u16 config_height;
-};
-
-/**
- * struct rkisp1_cif_isp_ie_config - Configuration used by image effects
- *
- * @effect: values from 'enum v4l2_colorfx'. Possible values are: V4L2_COLORFX_SEPIA,
- * V4L2_COLORFX_SET_CBCR, V4L2_COLORFX_AQUA, V4L2_COLORFX_EMBOSS,
- * V4L2_COLORFX_SKETCH, V4L2_COLORFX_BW, V4L2_COLORFX_NEGATIVE
- * @color_sel: bits 0:2 - colors bitmask (001 - blue, 010 - green, 100 - red).
- * bits 8:15 - Threshold value of the RGB colors for the color selection effect.
- * @eff_mat_1: 3x3 Matrix Coefficients for Emboss Effect 1
- * @eff_mat_2: 3x3 Matrix Coefficients for Emboss Effect 2
- * @eff_mat_3: 3x3 Matrix Coefficients for Emboss 3/Sketch 1
- * @eff_mat_4: 3x3 Matrix Coefficients for Sketch Effect 2
- * @eff_mat_5: 3x3 Matrix Coefficients for Sketch Effect 3
- * @eff_tint: Chrominance increment values of tint (used for sepia effect)
- */
-struct rkisp1_cif_isp_ie_config {
- __u16 effect;
- __u16 color_sel;
- __u16 eff_mat_1;
- __u16 eff_mat_2;
- __u16 eff_mat_3;
- __u16 eff_mat_4;
- __u16 eff_mat_5;
- __u16 eff_tint;
-};
-
-/**
- * struct rkisp1_cif_isp_cproc_config - Configuration used by Color Processing
- *
- * @c_out_range: Chrominance pixel clipping range at output.
- * (0 for limit, 1 for full)
- * @y_in_range: Luminance pixel clipping range at output.
- * @y_out_range: Luminance pixel clipping range at output.
- * @contrast: 00~ff, 0.0~1.992
- * @brightness: 80~7F, -128~+127
- * @sat: saturation, 00~FF, 0.0~1.992
- * @hue: 80~7F, -90~+87.188
- */
-struct rkisp1_cif_isp_cproc_config {
- __u8 c_out_range;
- __u8 y_in_range;
- __u8 y_out_range;
- __u8 contrast;
- __u8 brightness;
- __u8 sat;
- __u8 hue;
-};
-
-/**
- * struct rkisp1_cif_isp_awb_meas_config - Configuration used by auto white balance
- *
- * @awb_mode: the awb meas mode. From enum rkisp1_cif_isp_awb_mode_type.
- * @awb_wnd: white balance measurement window (in pixels)
- * @max_y: only pixels values < max_y contribute to awb measurement, set to 0
- * to disable this feature
- * @min_y: only pixels values > min_y contribute to awb measurement
- * @max_csum: Chrominance sum maximum value, only consider pixels with Cb+Cr,
- * smaller than threshold for awb measurements
- * @min_c: Chrominance minimum value, only consider pixels with Cb/Cr
- * each greater than threshold value for awb measurements
- * @frames: number of frames - 1 used for mean value calculation
- * (ucFrames=0 means 1 Frame)
- * @awb_ref_cr: reference Cr value for AWB regulation, target for AWB
- * @awb_ref_cb: reference Cb value for AWB regulation, target for AWB
- * @enable_ymax_cmp: enable Y_MAX compare (Not valid in RGB measurement mode.)
- */
-struct rkisp1_cif_isp_awb_meas_config {
- /*
- * Note: currently the h and v offsets are mapped to grid offsets
- */
- struct rkisp1_cif_isp_window awb_wnd;
- __u32 awb_mode;
- __u8 max_y;
- __u8 min_y;
- __u8 max_csum;
- __u8 min_c;
- __u8 frames;
- __u8 awb_ref_cr;
- __u8 awb_ref_cb;
- __u8 enable_ymax_cmp;
-};
-
-/**
- * struct rkisp1_cif_isp_awb_gain_config - Configuration used by auto white balance gain
- *
- * All fields in this struct are 10 bit, where:
- * 0x100h = 1, unsigned integer value, range 0 to 4 with 8 bit fractional part.
- *
- * out_data_x = ( AWB_GAIN_X * in_data + 128) >> 8
- *
- * @gain_red: gain value for red component.
- * @gain_green_r: gain value for green component in red line.
- * @gain_blue: gain value for blue component.
- * @gain_green_b: gain value for green component in blue line.
- */
-struct rkisp1_cif_isp_awb_gain_config {
- __u16 gain_red;
- __u16 gain_green_r;
- __u16 gain_blue;
- __u16 gain_green_b;
-};
-
-/**
- * struct rkisp1_cif_isp_flt_config - Configuration used by ISP filtering
- *
- * All 4 threshold fields (thresh_*) are 10 bits.
- * All 6 factor fields (fac_*) are 6 bits.
- *
- * @mode: ISP_FILT_MODE register fields (from enum rkisp1_cif_isp_flt_mode)
- * @grn_stage1: Green filter stage 1 select (range 0x0...0x8)
- * @chr_h_mode: Chroma filter horizontal mode
- * @chr_v_mode: Chroma filter vertical mode
- * @thresh_bl0: If thresh_bl1 < sum_grad < thresh_bl0 then fac_bl0 is selected (blurring th)
- * @thresh_bl1: If sum_grad < thresh_bl1 then fac_bl1 is selected (blurring th)
- * @thresh_sh0: If thresh_sh0 < sum_grad < thresh_sh1 then thresh_sh0 is selected (sharpening th)
- * @thresh_sh1: If thresh_sh1 < sum_grad then thresh_sh1 is selected (sharpening th)
- * @lum_weight: Parameters for luminance weight function.
- * @fac_sh1: filter factor for sharp1 level
- * @fac_sh0: filter factor for sharp0 level
- * @fac_mid: filter factor for mid level and for static filter mode
- * @fac_bl0: filter factor for blur 0 level
- * @fac_bl1: filter factor for blur 1 level (max blur)
- */
-struct rkisp1_cif_isp_flt_config {
- __u32 mode;
- __u8 grn_stage1;
- __u8 chr_h_mode;
- __u8 chr_v_mode;
- __u32 thresh_bl0;
- __u32 thresh_bl1;
- __u32 thresh_sh0;
- __u32 thresh_sh1;
- __u32 lum_weight;
- __u32 fac_sh1;
- __u32 fac_sh0;
- __u32 fac_mid;
- __u32 fac_bl0;
- __u32 fac_bl1;
-};
-
-/**
- * struct rkisp1_cif_isp_bdm_config - Configuration used by Bayer DeMosaic
- *
- * @demosaic_th: threshold for bayer demosaicing texture detection
- */
-struct rkisp1_cif_isp_bdm_config {
- __u8 demosaic_th;
-};
-
-/**
- * struct rkisp1_cif_isp_ctk_config - Configuration used by Cross Talk correction
- *
- * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
- * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
- * represented by 0x000 and a coefficient value of 1 as 0x080.
- * @ct_offset: Red, Green, Blue offsets for the crosstalk correction matrix
- */
-struct rkisp1_cif_isp_ctk_config {
- __u16 coeff[3][3];
- __u16 ct_offset[3];
-};
-
-enum rkisp1_cif_isp_goc_mode {
- RKISP1_CIF_ISP_GOC_MODE_LOGARITHMIC,
- RKISP1_CIF_ISP_GOC_MODE_EQUIDISTANT
-};
-
-/**
- * struct rkisp1_cif_isp_goc_config - Configuration used by Gamma Out correction
- *
- * @mode: goc mode (from enum rkisp1_cif_isp_goc_mode)
- * @gamma_y: gamma out curve y-axis for all color components
- *
- * The number of entries of @gamma_y depends on the hardware revision
- * as is reported by the hw_revision field of the struct media_device_info
- * that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
- *
- * Versions <= V11 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10
- * entries, versions >= V12 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12
- * entries. RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES is equal to the maximum
- * of the two.
- */
-struct rkisp1_cif_isp_goc_config {
- __u32 mode;
- __u16 gamma_y[RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES];
-};
-
-/**
- * struct rkisp1_cif_isp_hst_config - Configuration used by Histogram
- *
- * @mode: histogram mode (from enum rkisp1_cif_isp_histogram_mode)
- * @histogram_predivider: process every stepsize pixel, all other pixels are
- * skipped
- * @meas_window: coordinates of the measure window
- * @hist_weight: weighting factor for sub-windows
- *
- * The number of entries of @hist_weight depends on the hardware revision
- * as is reported by the hw_revision field of the struct media_device_info
- * that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
- *
- * Versions <= V11 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10
- * entries, versions >= V12 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12
- * entries. RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE is equal to the maximum
- * of the two.
- */
-struct rkisp1_cif_isp_hst_config {
- __u32 mode;
- __u8 histogram_predivider;
- struct rkisp1_cif_isp_window meas_window;
- __u8 hist_weight[RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE];
-};
-
-/**
- * struct rkisp1_cif_isp_aec_config - Configuration used by Auto Exposure Control
- *
- * @mode: Exposure measure mode (from enum rkisp1_cif_isp_exp_meas_mode)
- * @autostop: stop mode (from enum rkisp1_cif_isp_exp_ctrl_autostop)
- * @meas_window: coordinates of the measure window
- */
-struct rkisp1_cif_isp_aec_config {
- __u32 mode;
- __u32 autostop;
- struct rkisp1_cif_isp_window meas_window;
-};
-
-/**
- * struct rkisp1_cif_isp_afc_config - Configuration used by Auto Focus Control
- *
- * @num_afm_win: max RKISP1_CIF_ISP_AFM_MAX_WINDOWS
- * @afm_win: coordinates of the meas window
- * @thres: threshold used for minimizing the influence of noise
- * @var_shift: the number of bits for the shift operation at the end of the
- * calculation chain.
- */
-struct rkisp1_cif_isp_afc_config {
- __u8 num_afm_win;
- struct rkisp1_cif_isp_window afm_win[RKISP1_CIF_ISP_AFM_MAX_WINDOWS];
- __u32 thres;
- __u32 var_shift;
-};
-
-/**
- * enum rkisp1_cif_isp_dpf_gain_usage - dpf gain usage
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED: don't use any gains in preprocessing stage
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS: use only the noise function gains from
- * registers DPF_NF_GAIN_R, ...
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS: use only the gains from LSC module
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS: use the noise function gains and the
- * gains from LSC module
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS: use only the gains from AWB module
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS: use the gains from AWB and LSC module
- * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX: upper border (only for an internal evaluation)
- */
-enum rkisp1_cif_isp_dpf_gain_usage {
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED,
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS,
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS,
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS,
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS,
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS,
- RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX
-};
-
-/**
- * enum rkisp1_cif_isp_dpf_rb_filtersize - Red and blue filter sizes
- * @RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9: red and blue filter kernel size 13x9
- * (means 7x5 active pixel)
- * @RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9: red and blue filter kernel size 9x9
- * (means 5x5 active pixel)
- */
-enum rkisp1_cif_isp_dpf_rb_filtersize {
- RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9,
- RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9,
-};
-
-/**
- * enum rkisp1_cif_isp_dpf_nll_scale_mode - dpf noise level scale mode
- * @RKISP1_CIF_ISP_NLL_SCALE_LINEAR: use a linear scaling
- * @RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC: use a logarithmic scaling
- */
-enum rkisp1_cif_isp_dpf_nll_scale_mode {
- RKISP1_CIF_ISP_NLL_SCALE_LINEAR,
- RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC,
-};
-
-/**
- * struct rkisp1_cif_isp_dpf_nll - Noise level lookup
- *
- * @coeff: Noise level Lookup coefficient
- * @scale_mode: dpf noise level scale mode (from enum rkisp1_cif_isp_dpf_nll_scale_mode)
- */
-struct rkisp1_cif_isp_dpf_nll {
- __u16 coeff[RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS];
- __u32 scale_mode;
-};
-
-/**
- * struct rkisp1_cif_isp_dpf_rb_flt - Red blue filter config
- *
- * @fltsize: The filter size for the red and blue pixels
- * (from enum rkisp1_cif_isp_dpf_rb_filtersize)
- * @spatial_coeff: Spatial weights
- * @r_enable: enable filter processing for red pixels
- * @b_enable: enable filter processing for blue pixels
- */
-struct rkisp1_cif_isp_dpf_rb_flt {
- __u32 fltsize;
- __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS];
- __u8 r_enable;
- __u8 b_enable;
-};
-
-/**
- * struct rkisp1_cif_isp_dpf_g_flt - Green filter Configuration
- *
- * @spatial_coeff: Spatial weights
- * @gr_enable: enable filter processing for green pixels in green/red lines
- * @gb_enable: enable filter processing for green pixels in green/blue lines
- */
-struct rkisp1_cif_isp_dpf_g_flt {
- __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS];
- __u8 gr_enable;
- __u8 gb_enable;
-};
-
-/**
- * struct rkisp1_cif_isp_dpf_gain - Noise function Configuration
- *
- * @mode: dpf gain usage (from enum rkisp1_cif_isp_dpf_gain_usage)
- * @nf_r_gain: Noise function Gain that replaces the AWB gain for red pixels
- * @nf_b_gain: Noise function Gain that replaces the AWB gain for blue pixels
- * @nf_gr_gain: Noise function Gain that replaces the AWB gain
- * for green pixels in a red line
- * @nf_gb_gain: Noise function Gain that replaces the AWB gain
- * for green pixels in a blue line
- */
-struct rkisp1_cif_isp_dpf_gain {
- __u32 mode;
- __u16 nf_r_gain;
- __u16 nf_b_gain;
- __u16 nf_gr_gain;
- __u16 nf_gb_gain;
-};
-
-/**
- * struct rkisp1_cif_isp_dpf_config - Configuration used by De-noising pre-filter
- *
- * @gain: noise function gain
- * @g_flt: green filter config
- * @rb_flt: red blue filter config
- * @nll: noise level lookup
- */
-struct rkisp1_cif_isp_dpf_config {
- struct rkisp1_cif_isp_dpf_gain gain;
- struct rkisp1_cif_isp_dpf_g_flt g_flt;
- struct rkisp1_cif_isp_dpf_rb_flt rb_flt;
- struct rkisp1_cif_isp_dpf_nll nll;
-};
-
-/**
- * struct rkisp1_cif_isp_dpf_strength_config - strength of the filter
- *
- * @r: filter strength of the RED filter
- * @g: filter strength of the GREEN filter
- * @b: filter strength of the BLUE filter
- */
-struct rkisp1_cif_isp_dpf_strength_config {
- __u8 r;
- __u8 g;
- __u8 b;
-};
-
-/**
- * struct rkisp1_cif_isp_isp_other_cfg - Parameters for some blocks in rockchip isp1
- *
- * @dpcc_config: Defect Pixel Cluster Correction config
- * @bls_config: Black Level Subtraction config
- * @sdg_config: sensor degamma config
- * @lsc_config: Lens Shade config
- * @awb_gain_config: Auto White balance gain config
- * @flt_config: filter config
- * @bdm_config: demosaic config
- * @ctk_config: cross talk config
- * @goc_config: gamma out config
- * @bls_config: black level subtraction config
- * @dpf_config: De-noising pre-filter config
- * @dpf_strength_config: dpf strength config
- * @cproc_config: color process config
- * @ie_config: image effects config
- */
-struct rkisp1_cif_isp_isp_other_cfg {
- struct rkisp1_cif_isp_dpcc_config dpcc_config;
- struct rkisp1_cif_isp_bls_config bls_config;
- struct rkisp1_cif_isp_sdg_config sdg_config;
- struct rkisp1_cif_isp_lsc_config lsc_config;
- struct rkisp1_cif_isp_awb_gain_config awb_gain_config;
- struct rkisp1_cif_isp_flt_config flt_config;
- struct rkisp1_cif_isp_bdm_config bdm_config;
- struct rkisp1_cif_isp_ctk_config ctk_config;
- struct rkisp1_cif_isp_goc_config goc_config;
- struct rkisp1_cif_isp_dpf_config dpf_config;
- struct rkisp1_cif_isp_dpf_strength_config dpf_strength_config;
- struct rkisp1_cif_isp_cproc_config cproc_config;
- struct rkisp1_cif_isp_ie_config ie_config;
-};
-
-/**
- * struct rkisp1_cif_isp_isp_meas_cfg - Rockchip ISP1 Measure Parameters
- *
- * @awb_meas_config: auto white balance config
- * @hst_config: histogram config
- * @aec_config: auto exposure config
- * @afc_config: auto focus config
- */
-struct rkisp1_cif_isp_isp_meas_cfg {
- struct rkisp1_cif_isp_awb_meas_config awb_meas_config;
- struct rkisp1_cif_isp_hst_config hst_config;
- struct rkisp1_cif_isp_aec_config aec_config;
- struct rkisp1_cif_isp_afc_config afc_config;
-};
-
-/**
- * struct rkisp1_params_cfg - Rockchip ISP1 Input Parameters Meta Data
- *
- * @module_en_update: mask the enable bits of which module should be updated
- * @module_ens: mask the enable value of each module, only update the module
- * which correspond bit was set in module_en_update
- * @module_cfg_update: mask the config bits of which module should be updated
- * @meas: measurement config
- * @others: other config
- */
-struct rkisp1_params_cfg {
- __u32 module_en_update;
- __u32 module_ens;
- __u32 module_cfg_update;
-
- struct rkisp1_cif_isp_isp_meas_cfg meas;
- struct rkisp1_cif_isp_isp_other_cfg others;
-};
-
-/*---------- PART2: Measurement Statistics ------------*/
-
-/**
- * struct rkisp1_cif_isp_awb_meas - AWB measured values
- *
- * @cnt: White pixel count, number of "white pixels" found during last
- * measurement
- * @mean_y_or_g: Mean value of Y within window and frames,
- * Green if RGB is selected.
- * @mean_cb_or_b: Mean value of Cb within window and frames,
- * Blue if RGB is selected.
- * @mean_cr_or_r: Mean value of Cr within window and frames,
- * Red if RGB is selected.
- */
-struct rkisp1_cif_isp_awb_meas {
- __u32 cnt;
- __u8 mean_y_or_g;
- __u8 mean_cb_or_b;
- __u8 mean_cr_or_r;
-};
-
-/**
- * struct rkisp1_cif_isp_awb_stat - statistics automatic white balance data
- *
- * @awb_mean: Mean measured data
- */
-struct rkisp1_cif_isp_awb_stat {
- struct rkisp1_cif_isp_awb_meas awb_mean[RKISP1_CIF_ISP_AWB_MAX_GRID];
-};
-
-/**
- * struct rkisp1_cif_isp_bls_meas_val - BLS measured values
- *
- * @meas_r: Mean measured value for Bayer pattern R
- * @meas_gr: Mean measured value for Bayer pattern Gr
- * @meas_gb: Mean measured value for Bayer pattern Gb
- * @meas_b: Mean measured value for Bayer pattern B
- */
-struct rkisp1_cif_isp_bls_meas_val {
- __u16 meas_r;
- __u16 meas_gr;
- __u16 meas_gb;
- __u16 meas_b;
-};
-
-/**
- * struct rkisp1_cif_isp_ae_stat - statistics auto exposure data
- *
- * @exp_mean: Mean luminance value of block xx
- * @bls_val: BLS measured values
- *
- * The number of entries of @exp_mean depends on the hardware revision
- * as is reported by the hw_revision field of the struct media_device_info
- * that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
- *
- * Versions <= V11 have RKISP1_CIF_ISP_AE_MEAN_MAX_V10 entries,
- * versions >= V12 have RKISP1_CIF_ISP_AE_MEAN_MAX_V12 entries.
- * RKISP1_CIF_ISP_AE_MEAN_MAX is equal to the maximum of the two.
- *
- * Image is divided into 5x5 blocks on V10 and 9x9 blocks on V12.
- */
-struct rkisp1_cif_isp_ae_stat {
- __u8 exp_mean[RKISP1_CIF_ISP_AE_MEAN_MAX];
- struct rkisp1_cif_isp_bls_meas_val bls_val;
-};
-
-/**
- * struct rkisp1_cif_isp_af_meas_val - AF measured values
- *
- * @sum: sharpness value
- * @lum: luminance value
- */
-struct rkisp1_cif_isp_af_meas_val {
- __u32 sum;
- __u32 lum;
-};
-
-/**
- * struct rkisp1_cif_isp_af_stat - statistics auto focus data
- *
- * @window: AF measured value of window x
- *
- * The module measures the sharpness in 3 windows of selectable size via
- * register settings(ISP_AFM_*_A/B/C)
- */
-struct rkisp1_cif_isp_af_stat {
- struct rkisp1_cif_isp_af_meas_val window[RKISP1_CIF_ISP_AFM_MAX_WINDOWS];
-};
-
-/**
- * struct rkisp1_cif_isp_hist_stat - statistics histogram data
- *
- * @hist_bins: measured bin counters. Each bin is a 20 bits unsigned fixed point
- * type. Bits 0-4 are the fractional part and bits 5-19 are the
- * integer part.
- *
- * The window of the measurements area is divided to 5x5 sub-windows for
- * V10/V11 and to 9x9 sub-windows for V12. The histogram is then computed for
- * each sub-window independently and the final result is a weighted average of
- * the histogram measurements on all sub-windows. The window of the
- * measurements area and the weight of each sub-window are configurable using
- * struct @rkisp1_cif_isp_hst_config.
- *
- * The histogram contains 16 bins in V10/V11 and 32 bins in V12/V13.
- *
- * The number of entries of @hist_bins depends on the hardware revision
- * as is reported by the hw_revision field of the struct media_device_info
- * that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
- *
- * Versions <= V11 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 entries,
- * versions >= V12 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 entries.
- * RKISP1_CIF_ISP_HIST_BIN_N_MAX is equal to the maximum of the two.
- */
-struct rkisp1_cif_isp_hist_stat {
- __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX];
-};
-
-/**
- * struct rkisp1_cif_isp_stat - Rockchip ISP1 Statistics Data
- *
- * @awb: statistics data for automatic white balance
- * @ae: statistics data for auto exposure
- * @af: statistics data for auto focus
- * @hist: statistics histogram data
- */
-struct rkisp1_cif_isp_stat {
- struct rkisp1_cif_isp_awb_stat awb;
- struct rkisp1_cif_isp_ae_stat ae;
- struct rkisp1_cif_isp_af_stat af;
- struct rkisp1_cif_isp_hist_stat hist;
-};
-
-/**
- * struct rkisp1_stat_buffer - Rockchip ISP1 Statistics Meta Data
- *
- * @meas_type: measurement types (RKISP1_CIF_ISP_STAT_* definitions)
- * @frame_id: frame ID for sync
- * @params: statistics data
- */
-struct rkisp1_stat_buffer {
- __u32 meas_type;
- __u32 frame_id;
- struct rkisp1_cif_isp_stat params;
-};
-
-#endif /* _UAPI_RKISP1_CONFIG_H */
diff --git a/original/uapi/linux/rpl.h b/original/uapi/linux/rpl.h
deleted file mode 100644
index 708addd..0000000
--- a/original/uapi/linux/rpl.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * IPv6 RPL-SR implementation
- *
- * Author:
- * (C) 2020 Alexander Aring <alex.aring@gmail.com>
- */
-
-#ifndef _UAPI_LINUX_RPL_H
-#define _UAPI_LINUX_RPL_H
-
-#include <asm/byteorder.h>
-#include <linux/types.h>
-#include <linux/in6.h>
-
-/*
- * RPL SR Header
- */
-struct ipv6_rpl_sr_hdr {
- __u8 nexthdr;
- __u8 hdrlen;
- __u8 type;
- __u8 segments_left;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u32 cmpre:4,
- cmpri:4,
- reserved:4,
- pad:4,
- reserved1:16;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u32 cmpri:4,
- cmpre:4,
- pad:4,
- reserved:20;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
-
- union {
- struct in6_addr addr[0];
- __u8 data[0];
- } segments;
-} __attribute__((packed));
-
-#define rpl_segaddr segments.addr
-#define rpl_segdata segments.data
-
-#endif
diff --git a/original/uapi/linux/rpl_iptunnel.h b/original/uapi/linux/rpl_iptunnel.h
deleted file mode 100644
index f4eed1f..0000000
--- a/original/uapi/linux/rpl_iptunnel.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * IPv6 RPL-SR implementation
- *
- * Author:
- * (C) 2020 Alexander Aring <alex.aring@gmail.com>
- */
-
-#ifndef _UAPI_LINUX_RPL_IPTUNNEL_H
-#define _UAPI_LINUX_RPL_IPTUNNEL_H
-
-enum {
- RPL_IPTUNNEL_UNSPEC,
- RPL_IPTUNNEL_SRH,
- __RPL_IPTUNNEL_MAX,
-};
-#define RPL_IPTUNNEL_MAX (__RPL_IPTUNNEL_MAX - 1)
-
-#define RPL_IPTUNNEL_SRH_SIZE(srh) (((srh)->hdrlen + 1) << 3)
-
-#endif
diff --git a/original/uapi/linux/rpmsg_types.h b/original/uapi/linux/rpmsg_types.h
deleted file mode 100644
index 36e3b94..0000000
--- a/original/uapi/linux/rpmsg_types.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_LINUX_RPMSG_TYPES_H
-#define _UAPI_LINUX_RPMSG_TYPES_H
-
-#include <linux/types.h>
-
-typedef __u16 __bitwise __rpmsg16;
-typedef __u32 __bitwise __rpmsg32;
-typedef __u64 __bitwise __rpmsg64;
-
-#endif /* _UAPI_LINUX_RPMSG_TYPES_H */
diff --git a/original/uapi/linux/rtc.h b/original/uapi/linux/rtc.h
index f950bff..2ad1788 100644
--- a/original/uapi/linux/rtc.h
+++ b/original/uapi/linux/rtc.h
@@ -12,9 +12,6 @@
#ifndef _UAPI_LINUX_RTC_H_
#define _UAPI_LINUX_RTC_H_
-#include <linux/const.h>
-#include <linux/ioctl.h>
-
/*
* The struct used to pass data via the following ioctl. Similar to the
* struct tm in <time.h>, but it needs to be here so that the kernel
@@ -95,13 +92,7 @@ struct rtc_pll_info {
#define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info) /* Get PLL correction */
#define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info) /* Set PLL correction */
-#define RTC_VL_DATA_INVALID _BITUL(0) /* Voltage too low, RTC data is invalid */
-#define RTC_VL_BACKUP_LOW _BITUL(1) /* Backup voltage is low */
-#define RTC_VL_BACKUP_EMPTY _BITUL(2) /* Backup empty or not present */
-#define RTC_VL_ACCURACY_LOW _BITUL(3) /* Voltage is low, RTC accuracy is reduced */
-#define RTC_VL_BACKUP_SWITCH _BITUL(4) /* Backup switchover happened */
-
-#define RTC_VL_READ _IOR('p', 0x13, unsigned int) /* Voltage low detection */
+#define RTC_VL_READ _IOR('p', 0x13, int) /* Voltage low detector */
#define RTC_VL_CLR _IO('p', 0x14) /* Clear voltage low information */
/* interrupt flags */
@@ -110,11 +101,6 @@ struct rtc_pll_info {
#define RTC_AF 0x20 /* Alarm interrupt */
#define RTC_UF 0x10 /* Update interrupt for 1Hz RTC */
-/* feature list */
-#define RTC_FEATURE_ALARM 0
-#define RTC_FEATURE_ALARM_RES_MINUTE 1
-#define RTC_FEATURE_NEED_WEEK_DAY 2
-#define RTC_FEATURE_CNT 3
#define RTC_MAX_FREQ 8192
diff --git a/original/uapi/linux/rtnetlink.h b/original/uapi/linux/rtnetlink.h
index 91e4ca0..1418a83 100644
--- a/original/uapi/linux/rtnetlink.h
+++ b/original/uapi/linux/rtnetlink.h
@@ -171,13 +171,6 @@ enum {
RTM_GETLINKPROP,
#define RTM_GETLINKPROP RTM_GETLINKPROP
- RTM_NEWVLAN = 112,
-#define RTM_NEWNVLAN RTM_NEWVLAN
- RTM_DELVLAN,
-#define RTM_DELVLAN RTM_DELVLAN
- RTM_GETVLAN,
-#define RTM_GETVLAN RTM_GETVLAN
-
__RTM_MAX,
#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
};
@@ -257,12 +250,12 @@ enum {
/* rtm_protocol */
-#define RTPROT_UNSPEC 0
-#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
- not used by current IPv4 */
-#define RTPROT_KERNEL 2 /* Route installed by kernel */
-#define RTPROT_BOOT 3 /* Route installed during boot */
-#define RTPROT_STATIC 4 /* Route installed by administrator */
+#define RTPROT_UNSPEC 0
+#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
+ not used by current IPv4 */
+#define RTPROT_KERNEL 2 /* Route installed by kernel */
+#define RTPROT_BOOT 3 /* Route installed during boot */
+#define RTPROT_STATIC 4 /* Route installed by administrator */
/* Values of protocol >= RTPROT_STATIC are not interpreted by kernel;
they are just passed from user and back as is.
@@ -271,23 +264,22 @@ enum {
avoid conflicts.
*/
-#define RTPROT_GATED 8 /* Apparently, GateD */
-#define RTPROT_RA 9 /* RDISC/ND router advertisements */
-#define RTPROT_MRT 10 /* Merit MRT */
-#define RTPROT_ZEBRA 11 /* Zebra */
-#define RTPROT_BIRD 12 /* BIRD */
-#define RTPROT_DNROUTED 13 /* DECnet routing daemon */
-#define RTPROT_XORP 14 /* XORP */
-#define RTPROT_NTK 15 /* Netsukuku */
-#define RTPROT_DHCP 16 /* DHCP client */
-#define RTPROT_MROUTED 17 /* Multicast daemon */
-#define RTPROT_KEEPALIVED 18 /* Keepalived daemon */
-#define RTPROT_BABEL 42 /* Babel daemon */
-#define RTPROT_BGP 186 /* BGP Routes */
-#define RTPROT_ISIS 187 /* ISIS Routes */
-#define RTPROT_OSPF 188 /* OSPF Routes */
-#define RTPROT_RIP 189 /* RIP Routes */
-#define RTPROT_EIGRP 192 /* EIGRP Routes */
+#define RTPROT_GATED 8 /* Apparently, GateD */
+#define RTPROT_RA 9 /* RDISC/ND router advertisements */
+#define RTPROT_MRT 10 /* Merit MRT */
+#define RTPROT_ZEBRA 11 /* Zebra */
+#define RTPROT_BIRD 12 /* BIRD */
+#define RTPROT_DNROUTED 13 /* DECnet routing daemon */
+#define RTPROT_XORP 14 /* XORP */
+#define RTPROT_NTK 15 /* Netsukuku */
+#define RTPROT_DHCP 16 /* DHCP client */
+#define RTPROT_MROUTED 17 /* Multicast daemon */
+#define RTPROT_BABEL 42 /* Babel daemon */
+#define RTPROT_BGP 186 /* BGP Routes */
+#define RTPROT_ISIS 187 /* ISIS Routes */
+#define RTPROT_OSPF 188 /* OSPF Routes */
+#define RTPROT_RIP 189 /* RIP Routes */
+#define RTPROT_EIGRP 192 /* EIGRP Routes */
/* rtm_scope
@@ -317,13 +309,6 @@ enum rt_scope_t {
#define RTM_F_PREFIX 0x800 /* Prefix addresses */
#define RTM_F_LOOKUP_TABLE 0x1000 /* set rtm_table to FIB lookup result */
#define RTM_F_FIB_MATCH 0x2000 /* return full fib lookup match */
-#define RTM_F_OFFLOAD 0x4000 /* route is offloaded */
-#define RTM_F_TRAP 0x8000 /* route is trapping packets */
-#define RTM_F_OFFLOAD_FAILED 0x20000000 /* route offload failed, this value
- * is chosen to avoid conflicts with
- * other flags defined in
- * include/uapi/linux/ipv6_route.h
- */
/* Reserved table identifiers */
@@ -401,13 +386,11 @@ struct rtnexthop {
#define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */
#define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */
#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
-#define RTNH_F_OFFLOAD 8 /* Nexthop is offloaded */
+#define RTNH_F_OFFLOAD 8 /* offloaded route */
#define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */
#define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */
-#define RTNH_F_TRAP 64 /* Nexthop is trapping packets */
-#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | \
- RTNH_F_OFFLOAD | RTNH_F_TRAP)
+#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
/* Macros to handle hexthops */
@@ -617,17 +600,11 @@ enum {
TCA_HW_OFFLOAD,
TCA_INGRESS_BLOCK,
TCA_EGRESS_BLOCK,
- TCA_DUMP_FLAGS,
__TCA_MAX
};
#define TCA_MAX (__TCA_MAX - 1)
-#define TCA_DUMP_FLAGS_TERSE (1 << 0) /* Means that in dump user gets only basic
- * data necessary to identify the objects
- * (handle, cookie, etc.) and stats.
- */
-
#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg))
@@ -744,8 +721,6 @@ enum rtnetlink_groups {
#define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R
RTNLGRP_NEXTHOP,
#define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
- RTNLGRP_BRVLAN,
-#define RTNLGRP_BRVLAN RTNLGRP_BRVLAN
__RTNLGRP_MAX
};
#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
@@ -773,27 +748,18 @@ enum {
#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
/* tcamsg flags stored in attribute TCA_ROOT_FLAGS
*
- * TCA_ACT_FLAG_LARGE_DUMP_ON user->kernel to request for larger than
- * TCA_ACT_MAX_PRIO actions in a dump. All dump responses will contain the
- * number of actions being dumped stored in for user app's consumption in
- * TCA_ROOT_COUNT
- *
- * TCA_ACT_FLAG_TERSE_DUMP user->kernel to request terse (brief) dump that only
- * includes essential action info (kind, index, etc.)
+ * TCA_FLAG_LARGE_DUMP_ON user->kernel to request for larger than TCA_ACT_MAX_PRIO
+ * actions in a dump. All dump responses will contain the number of actions
+ * being dumped stored in for user app's consumption in TCA_ROOT_COUNT
*
*/
#define TCA_FLAG_LARGE_DUMP_ON (1 << 0)
-#define TCA_ACT_FLAG_LARGE_DUMP_ON TCA_FLAG_LARGE_DUMP_ON
-#define TCA_ACT_FLAG_TERSE_DUMP (1 << 1)
/* New extended info filters for IFLA_EXT_MASK */
#define RTEXT_FILTER_VF (1 << 0)
#define RTEXT_FILTER_BRVLAN (1 << 1)
#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
#define RTEXT_FILTER_SKIP_STATS (1 << 3)
-#define RTEXT_FILTER_MRP (1 << 4)
-#define RTEXT_FILTER_CFM_CONFIG (1 << 5)
-#define RTEXT_FILTER_CFM_STATUS (1 << 6)
/* End of information exported to user level */
diff --git a/original/uapi/linux/rxrpc.h b/original/uapi/linux/rxrpc.h
index 8f8dc7a..4accfa7 100644
--- a/original/uapi/linux/rxrpc.h
+++ b/original/uapi/linux/rxrpc.h
@@ -51,11 +51,11 @@ enum rxrpc_cmsg_type {
RXRPC_BUSY = 6, /* -r: server busy received [terminal] */
RXRPC_LOCAL_ERROR = 7, /* -r: local error generated [terminal] */
RXRPC_NEW_CALL = 8, /* -r: [Service] new incoming call notification */
+ RXRPC_ACCEPT = 9, /* s-: [Service] accept request */
RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */
RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */
RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */
RXRPC_SET_CALL_TIMEOUT = 13, /* s-: Set one or more call timeouts */
- RXRPC_CHARGE_ACCEPT = 14, /* s-: Charge the accept pool with a user call ID */
RXRPC__SUPPORTED
};
diff --git a/original/uapi/linux/sched.h b/original/uapi/linux/sched.h
index 3bac0a8..4a02178 100644
--- a/original/uapi/linux/sched.h
+++ b/original/uapi/linux/sched.h
@@ -35,13 +35,6 @@
/* Flags for the clone3() syscall. */
#define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */
-#define CLONE_INTO_CGROUP 0x200000000ULL /* Clone into a specific cgroup given the right permissions. */
-
-/*
- * cloning flags intersect with CSIGNAL so can be used with unshare and clone3
- * syscalls only:
- */
-#define CLONE_NEWTIME 0x00000080 /* New time namespace */
#ifndef __ASSEMBLY__
/**
@@ -82,8 +75,6 @@
* @set_tid_size: This defines the size of the array referenced
* in @set_tid. This cannot be larger than the
* kernel's limit of nested PID namespaces.
- * @cgroup: If CLONE_INTO_CGROUP is specified set this to
- * a file descriptor for the cgroup.
*
* The structure is versioned by size and thus extensible.
* New struct members must go at the end of the struct and
@@ -100,13 +91,11 @@ struct clone_args {
__aligned_u64 tls;
__aligned_u64 set_tid;
__aligned_u64 set_tid_size;
- __aligned_u64 cgroup;
};
#endif
#define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */
#define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */
-#define CLONE_ARGS_SIZE_VER2 88 /* sizeof third published struct */
/*
* Scheduling policies
diff --git a/original/uapi/linux/sched/types.h b/original/uapi/linux/sched/types.h
index f2c4589..c852153 100644
--- a/original/uapi/linux/sched/types.h
+++ b/original/uapi/linux/sched/types.h
@@ -96,8 +96,6 @@ struct sched_param {
* on a CPU with a capacity big enough to fit the specified value.
* A task with a max utilization value smaller than 1024 is more likely
* scheduled on a CPU with no more capacity than the specified value.
- *
- * A task utilization boundary can be reset by setting the attribute to -1.
*/
struct sched_attr {
__u32 size;
diff --git a/original/uapi/linux/sctp.h b/original/uapi/linux/sctp.h
index cb78e7a..28ad40d 100644
--- a/original/uapi/linux/sctp.h
+++ b/original/uapi/linux/sctp.h
@@ -140,7 +140,6 @@ typedef __s32 sctp_assoc_t;
#define SCTP_ECN_SUPPORTED 130
#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
-#define SCTP_REMOTE_UDP_ENCAPS_PORT 132
/* PR-SCTP policies */
#define SCTP_PR_SCTP_NONE 0x0000
@@ -1198,12 +1197,6 @@ struct sctp_event {
uint8_t se_on;
};
-struct sctp_udpencaps {
- sctp_assoc_t sue_assoc_id;
- struct sockaddr_storage sue_address;
- uint16_t sue_port;
-};
-
/* SCTP Stream schedulers */
enum sctp_sched_type {
SCTP_SS_FCFS,
diff --git a/original/uapi/linux/sdla.h b/original/uapi/linux/sdla.h
new file mode 100644
index 0000000..1e3735b
--- /dev/null
+++ b/original/uapi/linux/sdla.h
@@ -0,0 +1,117 @@
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * INET An implementation of the TCP/IP protocol suite for the LINUX
+ * operating system. INET is implemented using the BSD Socket
+ * interface as the means of communication with the user level.
+ *
+ * Global definitions for the Frame relay interface.
+ *
+ * Version: @(#)if_ifrad.h 0.20 13 Apr 96
+ *
+ * Author: Mike McLagan <mike.mclagan@linux.org>
+ *
+ * Changes:
+ * 0.15 Mike McLagan Structure packing
+ *
+ * 0.20 Mike McLagan New flags for S508 buffer handling
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#ifndef _UAPISDLA_H
+#define _UAPISDLA_H
+
+/* adapter type */
+#define SDLA_TYPES
+#define SDLA_S502A 5020
+#define SDLA_S502E 5021
+#define SDLA_S503 5030
+#define SDLA_S507 5070
+#define SDLA_S508 5080
+#define SDLA_S509 5090
+#define SDLA_UNKNOWN -1
+
+/* port selection flags for the S508 */
+#define SDLA_S508_PORT_V35 0x00
+#define SDLA_S508_PORT_RS232 0x02
+
+/* Z80 CPU speeds */
+#define SDLA_CPU_3M 0x00
+#define SDLA_CPU_5M 0x01
+#define SDLA_CPU_7M 0x02
+#define SDLA_CPU_8M 0x03
+#define SDLA_CPU_10M 0x04
+#define SDLA_CPU_16M 0x05
+#define SDLA_CPU_12M 0x06
+
+/* some private IOCTLs */
+#define SDLA_IDENTIFY (FRAD_LAST_IOCTL + 1)
+#define SDLA_CPUSPEED (FRAD_LAST_IOCTL + 2)
+#define SDLA_PROTOCOL (FRAD_LAST_IOCTL + 3)
+
+#define SDLA_CLEARMEM (FRAD_LAST_IOCTL + 4)
+#define SDLA_WRITEMEM (FRAD_LAST_IOCTL + 5)
+#define SDLA_READMEM (FRAD_LAST_IOCTL + 6)
+
+struct sdla_mem {
+ int addr;
+ int len;
+ void __user *data;
+};
+
+#define SDLA_START (FRAD_LAST_IOCTL + 7)
+#define SDLA_STOP (FRAD_LAST_IOCTL + 8)
+
+/* some offsets in the Z80's memory space */
+#define SDLA_NMIADDR 0x0000
+#define SDLA_CONF_ADDR 0x0010
+#define SDLA_S502A_NMIADDR 0x0066
+#define SDLA_CODE_BASEADDR 0x0100
+#define SDLA_WINDOW_SIZE 0x2000
+#define SDLA_ADDR_MASK 0x1FFF
+
+/* largest handleable block of data */
+#define SDLA_MAX_DATA 4080
+#define SDLA_MAX_MTU 4072 /* MAX_DATA - sizeof(fradhdr) */
+#define SDLA_MAX_DLCI 24
+
+/* this should be the same as frad_conf */
+struct sdla_conf {
+ short station;
+ short config;
+ short kbaud;
+ short clocking;
+ short max_frm;
+ short T391;
+ short T392;
+ short N391;
+ short N392;
+ short N393;
+ short CIR_fwd;
+ short Bc_fwd;
+ short Be_fwd;
+ short CIR_bwd;
+ short Bc_bwd;
+ short Be_bwd;
+};
+
+/* this should be the same as dlci_conf */
+struct sdla_dlci_conf {
+ short config;
+ short CIR_fwd;
+ short Bc_fwd;
+ short Be_fwd;
+ short CIR_bwd;
+ short Bc_bwd;
+ short Be_bwd;
+ short Tc_fwd;
+ short Tc_bwd;
+ short Tf_max;
+ short Tb_max;
+};
+
+
+#endif /* _UAPISDLA_H */
diff --git a/original/uapi/linux/seccomp.h b/original/uapi/linux/seccomp.h
index 6ba18b8..be84d87 100644
--- a/original/uapi/linux/seccomp.h
+++ b/original/uapi/linux/seccomp.h
@@ -22,7 +22,6 @@
#define SECCOMP_FILTER_FLAG_LOG (1UL << 1)
#define SECCOMP_FILTER_FLAG_SPEC_ALLOW (1UL << 2)
#define SECCOMP_FILTER_FLAG_NEW_LISTENER (1UL << 3)
-#define SECCOMP_FILTER_FLAG_TSYNC_ESRCH (1UL << 4)
/*
* All BPF programs must return a 32-bit value.
@@ -113,25 +112,6 @@ struct seccomp_notif_resp {
__u32 flags;
};
-/* valid flags for seccomp_notif_addfd */
-#define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0) /* Specify remote fd */
-
-/**
- * struct seccomp_notif_addfd
- * @id: The ID of the seccomp notification
- * @flags: SECCOMP_ADDFD_FLAG_*
- * @srcfd: The local fd number
- * @newfd: Optional remote FD number if SETFD option is set, otherwise 0.
- * @newfd_flags: The O_* flags the remote FD should have applied
- */
-struct seccomp_notif_addfd {
- __u64 id;
- __u32 flags;
- __u32 srcfd;
- __u32 newfd;
- __u32 newfd_flags;
-};
-
#define SECCOMP_IOC_MAGIC '!'
#define SECCOMP_IO(nr) _IO(SECCOMP_IOC_MAGIC, nr)
#define SECCOMP_IOR(nr, type) _IOR(SECCOMP_IOC_MAGIC, nr, type)
@@ -142,9 +122,5 @@ struct seccomp_notif_addfd {
#define SECCOMP_IOCTL_NOTIF_RECV SECCOMP_IOWR(0, struct seccomp_notif)
#define SECCOMP_IOCTL_NOTIF_SEND SECCOMP_IOWR(1, \
struct seccomp_notif_resp)
-#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOW(2, __u64)
-/* On success, the return value is the remote process's added fd number */
-#define SECCOMP_IOCTL_NOTIF_ADDFD SECCOMP_IOW(3, \
- struct seccomp_notif_addfd)
-
+#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOR(2, __u64)
#endif /* _UAPI_LINUX_SECCOMP_H */
diff --git a/original/uapi/linux/seg6_iptunnel.h b/original/uapi/linux/seg6_iptunnel.h
index eb815e0..09fb608 100644
--- a/original/uapi/linux/seg6_iptunnel.h
+++ b/original/uapi/linux/seg6_iptunnel.h
@@ -37,4 +37,25 @@ enum {
SEG6_IPTUN_MODE_L2ENCAP,
};
+#ifdef __KERNEL__
+
+static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
+{
+ int head = 0;
+
+ switch (tuninfo->mode) {
+ case SEG6_IPTUN_MODE_INLINE:
+ break;
+ case SEG6_IPTUN_MODE_ENCAP:
+ head = sizeof(struct ipv6hdr);
+ break;
+ case SEG6_IPTUN_MODE_L2ENCAP:
+ return 0;
+ }
+
+ return ((tuninfo->srh->hdrlen + 1) << 3) + head;
+}
+
+#endif
+
#endif
diff --git a/original/uapi/linux/seg6_local.h b/original/uapi/linux/seg6_local.h
index 3b39ef1..edc138b 100644
--- a/original/uapi/linux/seg6_local.h
+++ b/original/uapi/linux/seg6_local.h
@@ -26,7 +26,6 @@ enum {
SEG6_LOCAL_IIF,
SEG6_LOCAL_OIF,
SEG6_LOCAL_BPF,
- SEG6_LOCAL_VRFTABLE,
__SEG6_LOCAL_MAX,
};
#define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
diff --git a/original/uapi/linux/serial_core.h b/original/uapi/linux/serial_core.h
index c4042dc..8ec3dd7 100644
--- a/original/uapi/linux/serial_core.h
+++ b/original/uapi/linux/serial_core.h
@@ -26,6 +26,20 @@
/*
* The type definitions. These are from Ted Ts'o's serial.h
*/
+#define PORT_UNKNOWN 0
+#define PORT_8250 1
+#define PORT_16450 2
+#define PORT_16550 3
+#define PORT_16550A 4
+#define PORT_CIRRUS 5
+#define PORT_16650 6
+#define PORT_16650V2 7
+#define PORT_16750 8
+#define PORT_STARTECH 9
+#define PORT_16C950 10
+#define PORT_16654 11
+#define PORT_16850 12
+#define PORT_RSA 13
#define PORT_NS16550A 14
#define PORT_XSCALE 15
#define PORT_RM9000 16 /* PMC-Sierra RM9xxx internal UART */
@@ -134,6 +148,8 @@
/*Digi jsm */
#define PORT_JSM 69
+#define PORT_PNX8XXX 70
+
/* SUN4V Hypervisor Console */
#define PORT_SUNHV 72
@@ -208,6 +224,9 @@
/* Atheros AR933X SoC */
#define PORT_AR933X 99
+/* Energy Micro efm32 SoC */
+#define PORT_EFMUART 100
+
/* ARC (Synopsys) on-chip UART */
#define PORT_ARC 101
diff --git a/original/uapi/linux/serio.h b/original/uapi/linux/serio.h
index ed2a96f..50e9919 100644
--- a/original/uapi/linux/serio.h
+++ b/original/uapi/linux/serio.h
@@ -9,7 +9,7 @@
#ifndef _UAPI_SERIO_H
#define _UAPI_SERIO_H
-#include <linux/const.h>
+
#include <linux/ioctl.h>
#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
@@ -18,10 +18,10 @@
/*
* bit masks for use in "interrupt" flags (3rd argument)
*/
-#define SERIO_TIMEOUT _BITUL(0)
-#define SERIO_PARITY _BITUL(1)
-#define SERIO_FRAME _BITUL(2)
-#define SERIO_OOB_DATA _BITUL(3)
+#define SERIO_TIMEOUT BIT(0)
+#define SERIO_PARITY BIT(1)
+#define SERIO_FRAME BIT(2)
+#define SERIO_OOB_DATA BIT(3)
/*
* Serio types
diff --git a/original/uapi/linux/smc.h b/original/uapi/linux/smc.h
index 3e68da0..0e11ca4 100644
--- a/original/uapi/linux/smc.h
+++ b/original/uapi/linux/smc.h
@@ -33,130 +33,4 @@ enum { /* SMC PNET Table commands */
#define SMCR_GENL_FAMILY_NAME "SMC_PNETID"
#define SMCR_GENL_FAMILY_VERSION 1
-/* gennetlink interface to access non-socket information from SMC module */
-#define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
-#define SMC_GENL_FAMILY_VERSION 1
-
-#define SMC_PCI_ID_STR_LEN 16 /* Max length of pci id string */
-
-/* SMC_GENL_FAMILY commands */
-enum {
- SMC_NETLINK_GET_SYS_INFO = 1,
- SMC_NETLINK_GET_LGR_SMCR,
- SMC_NETLINK_GET_LINK_SMCR,
- SMC_NETLINK_GET_LGR_SMCD,
- SMC_NETLINK_GET_DEV_SMCD,
- SMC_NETLINK_GET_DEV_SMCR,
-};
-
-/* SMC_GENL_FAMILY top level attributes */
-enum {
- SMC_GEN_UNSPEC,
- SMC_GEN_SYS_INFO, /* nest */
- SMC_GEN_LGR_SMCR, /* nest */
- SMC_GEN_LINK_SMCR, /* nest */
- SMC_GEN_LGR_SMCD, /* nest */
- SMC_GEN_DEV_SMCD, /* nest */
- SMC_GEN_DEV_SMCR, /* nest */
- __SMC_GEN_MAX,
- SMC_GEN_MAX = __SMC_GEN_MAX - 1
-};
-
-/* SMC_GEN_SYS_INFO attributes */
-enum {
- SMC_NLA_SYS_UNSPEC,
- SMC_NLA_SYS_VER, /* u8 */
- SMC_NLA_SYS_REL, /* u8 */
- SMC_NLA_SYS_IS_ISM_V2, /* u8 */
- SMC_NLA_SYS_LOCAL_HOST, /* string */
- SMC_NLA_SYS_SEID, /* string */
- __SMC_NLA_SYS_MAX,
- SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
-};
-
-/* SMC_NLA_LGR_V2 nested attributes */
-enum {
- SMC_NLA_LGR_V2_VER, /* u8 */
- SMC_NLA_LGR_V2_REL, /* u8 */
- SMC_NLA_LGR_V2_OS, /* u8 */
- SMC_NLA_LGR_V2_NEG_EID, /* string */
- SMC_NLA_LGR_V2_PEER_HOST, /* string */
-};
-
-/* SMC_GEN_LGR_SMCR attributes */
-enum {
- SMC_NLA_LGR_R_UNSPEC,
- SMC_NLA_LGR_R_ID, /* u32 */
- SMC_NLA_LGR_R_ROLE, /* u8 */
- SMC_NLA_LGR_R_TYPE, /* u8 */
- SMC_NLA_LGR_R_PNETID, /* string */
- SMC_NLA_LGR_R_VLAN_ID, /* u8 */
- SMC_NLA_LGR_R_CONNS_NUM, /* u32 */
- __SMC_NLA_LGR_R_MAX,
- SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
-};
-
-/* SMC_GEN_LINK_SMCR attributes */
-enum {
- SMC_NLA_LINK_UNSPEC,
- SMC_NLA_LINK_ID, /* u8 */
- SMC_NLA_LINK_IB_DEV, /* string */
- SMC_NLA_LINK_IB_PORT, /* u8 */
- SMC_NLA_LINK_GID, /* string */
- SMC_NLA_LINK_PEER_GID, /* string */
- SMC_NLA_LINK_CONN_CNT, /* u32 */
- SMC_NLA_LINK_NET_DEV, /* u32 */
- SMC_NLA_LINK_UID, /* u32 */
- SMC_NLA_LINK_PEER_UID, /* u32 */
- SMC_NLA_LINK_STATE, /* u32 */
- __SMC_NLA_LINK_MAX,
- SMC_NLA_LINK_MAX = __SMC_NLA_LINK_MAX - 1
-};
-
-/* SMC_GEN_LGR_SMCD attributes */
-enum {
- SMC_NLA_LGR_D_UNSPEC,
- SMC_NLA_LGR_D_ID, /* u32 */
- SMC_NLA_LGR_D_GID, /* u64 */
- SMC_NLA_LGR_D_PEER_GID, /* u64 */
- SMC_NLA_LGR_D_VLAN_ID, /* u8 */
- SMC_NLA_LGR_D_CONNS_NUM, /* u32 */
- SMC_NLA_LGR_D_PNETID, /* string */
- SMC_NLA_LGR_D_CHID, /* u16 */
- SMC_NLA_LGR_D_PAD, /* flag */
- SMC_NLA_LGR_V2, /* nest */
- __SMC_NLA_LGR_D_MAX,
- SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
-};
-
-/* SMC_NLA_DEV_PORT nested attributes */
-enum {
- SMC_NLA_DEV_PORT_UNSPEC,
- SMC_NLA_DEV_PORT_PNET_USR, /* u8 */
- SMC_NLA_DEV_PORT_PNETID, /* string */
- SMC_NLA_DEV_PORT_NETDEV, /* u32 */
- SMC_NLA_DEV_PORT_STATE, /* u8 */
- SMC_NLA_DEV_PORT_VALID, /* u8 */
- SMC_NLA_DEV_PORT_LNK_CNT, /* u32 */
- __SMC_NLA_DEV_PORT_MAX,
- SMC_NLA_DEV_PORT_MAX = __SMC_NLA_DEV_PORT_MAX - 1
-};
-
-/* SMC_GEN_DEV_SMCD and SMC_GEN_DEV_SMCR attributes */
-enum {
- SMC_NLA_DEV_UNSPEC,
- SMC_NLA_DEV_USE_CNT, /* u32 */
- SMC_NLA_DEV_IS_CRIT, /* u8 */
- SMC_NLA_DEV_PCI_FID, /* u32 */
- SMC_NLA_DEV_PCI_CHID, /* u16 */
- SMC_NLA_DEV_PCI_VENDOR, /* u16 */
- SMC_NLA_DEV_PCI_DEVICE, /* u16 */
- SMC_NLA_DEV_PCI_ID, /* string */
- SMC_NLA_DEV_PORT, /* nest */
- SMC_NLA_DEV_PORT2, /* nest */
- SMC_NLA_DEV_IB_NAME, /* string */
- __SMC_NLA_DEV_MAX,
- SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
-};
-
#endif /* _UAPI_LINUX_SMC_H */
diff --git a/original/uapi/linux/snmp.h b/original/uapi/linux/snmp.h
index 26fc60c..7eee233 100644
--- a/original/uapi/linux/snmp.h
+++ b/original/uapi/linux/snmp.h
@@ -159,7 +159,6 @@ enum
UDP_MIB_SNDBUFERRORS, /* SndbufErrors */
UDP_MIB_CSUMERRORS, /* InCsumErrors */
UDP_MIB_IGNOREDMULTI, /* IgnoredMulti */
- UDP_MIB_MEMERRORS, /* MemErrors */
__UDP_MIB_MAX
};
@@ -286,10 +285,6 @@ enum
LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */
LINUX_MIB_TCPWQUEUETOOBIG, /* TCPWqueueTooBig */
LINUX_MIB_TCPFASTOPENPASSIVEALTKEY, /* TCPFastOpenPassiveAltKey */
- LINUX_MIB_TCPTIMEOUTREHASH, /* TCPTimeoutRehash */
- LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */
- LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */
- LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */
__LINUX_MIB_MAX
};
diff --git a/original/uapi/linux/sock_diag.h b/original/uapi/linux/sock_diag.h
index 5f74a5f..e592500 100644
--- a/original/uapi/linux/sock_diag.h
+++ b/original/uapi/linux/sock_diag.h
@@ -36,30 +36,4 @@ enum sknetlink_groups {
};
#define SKNLGRP_MAX (__SKNLGRP_MAX - 1)
-enum {
- SK_DIAG_BPF_STORAGE_REQ_NONE,
- SK_DIAG_BPF_STORAGE_REQ_MAP_FD,
- __SK_DIAG_BPF_STORAGE_REQ_MAX,
-};
-
-#define SK_DIAG_BPF_STORAGE_REQ_MAX (__SK_DIAG_BPF_STORAGE_REQ_MAX - 1)
-
-enum {
- SK_DIAG_BPF_STORAGE_REP_NONE,
- SK_DIAG_BPF_STORAGE,
- __SK_DIAG_BPF_STORAGE_REP_MAX,
-};
-
-#define SK_DIAB_BPF_STORAGE_REP_MAX (__SK_DIAG_BPF_STORAGE_REP_MAX - 1)
-
-enum {
- SK_DIAG_BPF_STORAGE_NONE,
- SK_DIAG_BPF_STORAGE_PAD,
- SK_DIAG_BPF_STORAGE_MAP_ID,
- SK_DIAG_BPF_STORAGE_MAP_VALUE,
- __SK_DIAG_BPF_STORAGE_MAX,
-};
-
-#define SK_DIAG_BPF_STORAGE_MAX (__SK_DIAG_BPF_STORAGE_MAX - 1)
-
#endif /* _UAPI__SOCK_DIAG_H__ */
diff --git a/original/uapi/linux/spi/spi.h b/original/uapi/linux/spi/spi.h
deleted file mode 100644
index 236a85f..0000000
--- a/original/uapi/linux/spi/spi.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-#ifndef _UAPI_SPI_H
-#define _UAPI_SPI_H
-
-#include <linux/const.h>
-
-#define SPI_CPHA _BITUL(0) /* clock phase */
-#define SPI_CPOL _BITUL(1) /* clock polarity */
-
-#define SPI_MODE_0 (0|0) /* (original MicroWire) */
-#define SPI_MODE_1 (0|SPI_CPHA)
-#define SPI_MODE_2 (SPI_CPOL|0)
-#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
-#define SPI_MODE_X_MASK (SPI_CPOL|SPI_CPHA)
-
-#define SPI_CS_HIGH _BITUL(2) /* chipselect active high? */
-#define SPI_LSB_FIRST _BITUL(3) /* per-word bits-on-wire */
-#define SPI_3WIRE _BITUL(4) /* SI/SO signals shared */
-#define SPI_LOOP _BITUL(5) /* loopback mode */
-#define SPI_NO_CS _BITUL(6) /* 1 dev/bus, no chipselect */
-#define SPI_READY _BITUL(7) /* slave pulls low to pause */
-#define SPI_TX_DUAL _BITUL(8) /* transmit with 2 wires */
-#define SPI_TX_QUAD _BITUL(9) /* transmit with 4 wires */
-#define SPI_RX_DUAL _BITUL(10) /* receive with 2 wires */
-#define SPI_RX_QUAD _BITUL(11) /* receive with 4 wires */
-#define SPI_CS_WORD _BITUL(12) /* toggle cs after each word */
-#define SPI_TX_OCTAL _BITUL(13) /* transmit with 8 wires */
-#define SPI_RX_OCTAL _BITUL(14) /* receive with 8 wires */
-#define SPI_3WIRE_HIZ _BITUL(15) /* high impedance turnaround */
-
-/*
- * All the bits defined above should be covered by SPI_MODE_USER_MASK.
- * The SPI_MODE_USER_MASK has the SPI_MODE_KERNEL_MASK counterpart in
- * 'include/linux/spi/spi.h'. The bits defined here are from bit 0 upwards
- * while in SPI_MODE_KERNEL_MASK they are from the other end downwards.
- * These bits must not overlap. A static assert check should make sure of that.
- * If adding extra bits, make sure to increase the bit index below as well.
- */
-#define SPI_MODE_USER_MASK (_BITUL(16) - 1)
-
-#endif /* _UAPI_SPI_H */
diff --git a/original/uapi/linux/spi/spidev.h b/original/uapi/linux/spi/spidev.h
index 0c3da08..ee0f246 100644
--- a/original/uapi/linux/spi/spidev.h
+++ b/original/uapi/linux/spi/spidev.h
@@ -25,7 +25,31 @@
#include <linux/types.h>
#include <linux/ioctl.h>
-#include <linux/spi/spi.h>
+
+/* User space versions of kernel symbols for SPI clocking modes,
+ * matching <linux/spi/spi.h>
+ */
+
+#define SPI_CPHA 0x01
+#define SPI_CPOL 0x02
+
+#define SPI_MODE_0 (0|0)
+#define SPI_MODE_1 (0|SPI_CPHA)
+#define SPI_MODE_2 (SPI_CPOL|0)
+#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
+
+#define SPI_CS_HIGH 0x04
+#define SPI_LSB_FIRST 0x08
+#define SPI_3WIRE 0x10
+#define SPI_LOOP 0x20
+#define SPI_NO_CS 0x40
+#define SPI_READY 0x80
+#define SPI_TX_DUAL 0x100
+#define SPI_TX_QUAD 0x200
+#define SPI_RX_DUAL 0x400
+#define SPI_RX_QUAD 0x800
+
+/*---------------------------------------------------------------------------*/
/* IOCTL commands */
diff --git a/original/uapi/linux/stat.h b/original/uapi/linux/stat.h
index 1500a0f..ad80a5c 100644
--- a/original/uapi/linux/stat.h
+++ b/original/uapi/linux/stat.h
@@ -123,10 +123,7 @@ struct statx {
__u32 stx_dev_major; /* ID of device containing file [uncond] */
__u32 stx_dev_minor;
/* 0x90 */
- __u64 stx_mnt_id;
- __u64 __spare2;
- /* 0xa0 */
- __u64 __spare3[12]; /* Spare space for future expansion */
+ __u64 __spare2[14]; /* Spare space for future expansion */
/* 0x100 */
};
@@ -151,19 +148,9 @@ struct statx {
#define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */
#define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */
#define STATX_BTIME 0x00000800U /* Want/got stx_btime */
-#define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */
-
+#define STATX_ALL 0x00000fffU /* All currently supported flags */
#define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */
-#ifndef __KERNEL__
-/*
- * This is deprecated, and shall remain the same value in the future. To avoid
- * confusion please use the equivalent (STATX_BASIC_STATS | STATX_BTIME)
- * instead.
- */
-#define STATX_ALL 0x00000fffU
-#endif
-
/*
* Attributes to be found in stx_attributes and masked in stx_attributes_mask.
*
@@ -171,12 +158,9 @@ struct statx {
* be of use to ordinary userspace programs such as GUIs or ls rather than
* specialised tools.
*
- * Note that the flags marked [I] correspond to the FS_IOC_SETFLAGS flags
+ * Note that the flags marked [I] correspond to generic FS_IOC_FLAGS
* semantically. Where possible, the numerical value is picked to correspond
- * also. Note that the DAX attribute indicates that the file is in the CPU
- * direct access state. It does not correspond to the per-inode flag that
- * some filesystems support.
- *
+ * also.
*/
#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */
#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */
@@ -184,9 +168,7 @@ struct statx {
#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
-#define STATX_ATTR_MOUNT_ROOT 0x00002000 /* Root of a mount */
#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */
-#define STATX_ATTR_DAX 0x00200000 /* File is currently in DAX state */
#endif /* _UAPI_LINUX_STAT_H */
diff --git a/original/uapi/linux/surface_aggregator/cdev.h b/original/uapi/linux/surface_aggregator/cdev.h
deleted file mode 100644
index fbcce04..0000000
--- a/original/uapi/linux/surface_aggregator/cdev.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * Surface System Aggregator Module (SSAM) user-space EC interface.
- *
- * Definitions, structs, and IOCTLs for the /dev/surface/aggregator misc
- * device. This device provides direct user-space access to the SSAM EC.
- * Intended for debugging and development.
- *
- * Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com>
- */
-
-#ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H
-#define _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/**
- * enum ssam_cdev_request_flags - Request flags for SSAM cdev request IOCTL.
- *
- * @SSAM_CDEV_REQUEST_HAS_RESPONSE:
- * Specifies that the request expects a response. If not set, the request
- * will be directly completed after its underlying packet has been
- * transmitted. If set, the request transport system waits for a response
- * of the request.
- *
- * @SSAM_CDEV_REQUEST_UNSEQUENCED:
- * Specifies that the request should be transmitted via an unsequenced
- * packet. If set, the request must not have a response, meaning that this
- * flag and the %SSAM_CDEV_REQUEST_HAS_RESPONSE flag are mutually
- * exclusive.
- */
-enum ssam_cdev_request_flags {
- SSAM_CDEV_REQUEST_HAS_RESPONSE = 0x01,
- SSAM_CDEV_REQUEST_UNSEQUENCED = 0x02,
-};
-
-/**
- * struct ssam_cdev_request - Controller request IOCTL argument.
- * @target_category: Target category of the SAM request.
- * @target_id: Target ID of the SAM request.
- * @command_id: Command ID of the SAM request.
- * @instance_id: Instance ID of the SAM request.
- * @flags: Request flags (see &enum ssam_cdev_request_flags).
- * @status: Request status (output).
- * @payload: Request payload (input data).
- * @payload.data: Pointer to request payload data.
- * @payload.length: Length of request payload data (in bytes).
- * @response: Request response (output data).
- * @response.data: Pointer to response buffer.
- * @response.length: On input: Capacity of response buffer (in bytes).
- * On output: Length of request response (number of bytes
- * in the buffer that are actually used).
- */
-struct ssam_cdev_request {
- __u8 target_category;
- __u8 target_id;
- __u8 command_id;
- __u8 instance_id;
- __u16 flags;
- __s16 status;
-
- struct {
- __u64 data;
- __u16 length;
- __u8 __pad[6];
- } payload;
-
- struct {
- __u64 data;
- __u16 length;
- __u8 __pad[6];
- } response;
-} __attribute__((__packed__));
-
-#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
-
-#endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H */
diff --git a/original/uapi/linux/swab.h b/original/uapi/linux/swab.h
index 7272f85..23cd848 100644
--- a/original/uapi/linux/swab.h
+++ b/original/uapi/linux/swab.h
@@ -4,7 +4,6 @@
#include <linux/types.h>
#include <linux/compiler.h>
-#include <asm/bitsperlong.h>
#include <asm/swab.h>
/*
@@ -133,15 +132,6 @@ static inline __attribute_const__ __u32 __fswahb32(__u32 val)
__fswab64(x))
#endif
-static __always_inline unsigned long __swab(const unsigned long y)
-{
-#if __BITS_PER_LONG == 64
- return __swab64(y);
-#else /* __BITS_PER_LONG == 32 */
- return __swab32(y);
-#endif
-}
-
/**
* __swahw32 - return a word-swapped 32-bit value
* @x: value to wordswap
diff --git a/original/uapi/linux/switchtec_ioctl.h b/original/uapi/linux/switchtec_ioctl.h
index 2c661a3..c912b5a 100644
--- a/original/uapi/linux/switchtec_ioctl.h
+++ b/original/uapi/linux/switchtec_ioctl.h
@@ -32,18 +32,7 @@
#define SWITCHTEC_IOCTL_PART_VENDOR5 10
#define SWITCHTEC_IOCTL_PART_VENDOR6 11
#define SWITCHTEC_IOCTL_PART_VENDOR7 12
-#define SWITCHTEC_IOCTL_PART_BL2_0 13
-#define SWITCHTEC_IOCTL_PART_BL2_1 14
-#define SWITCHTEC_IOCTL_PART_MAP_0 15
-#define SWITCHTEC_IOCTL_PART_MAP_1 16
-#define SWITCHTEC_IOCTL_PART_KEY_0 17
-#define SWITCHTEC_IOCTL_PART_KEY_1 18
-
-#define SWITCHTEC_NUM_PARTITIONS_GEN3 13
-#define SWITCHTEC_NUM_PARTITIONS_GEN4 19
-
-/* obsolete: for compatibility with old userspace software */
-#define SWITCHTEC_IOCTL_NUM_PARTITIONS SWITCHTEC_NUM_PARTITIONS_GEN3
+#define SWITCHTEC_IOCTL_NUM_PARTITIONS 13
struct switchtec_ioctl_flash_info {
__u64 flash_length;
@@ -109,9 +98,7 @@ struct switchtec_ioctl_event_summary {
#define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT 27
#define SWITCHTEC_IOCTL_EVENT_LINK_STATE 28
#define SWITCHTEC_IOCTL_EVENT_GFMS 29
-#define SWITCHTEC_IOCTL_EVENT_INTERCOMM_REQ_NOTIFY 30
-#define SWITCHTEC_IOCTL_EVENT_UEC 31
-#define SWITCHTEC_IOCTL_MAX_EVENTS 32
+#define SWITCHTEC_IOCTL_MAX_EVENTS 30
#define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX -1
#define SWITCHTEC_IOCTL_EVENT_IDX_ALL -2
diff --git a/original/uapi/linux/sysctl.h b/original/uapi/linux/sysctl.h
index 1e05d3c..87aa2a6 100644
--- a/original/uapi/linux/sysctl.h
+++ b/original/uapi/linux/sysctl.h
@@ -23,7 +23,7 @@
#ifndef _UAPI_LINUX_SYSCTL_H
#define _UAPI_LINUX_SYSCTL_H
-#include <linux/const.h>
+#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/compiler.h>
@@ -195,7 +195,7 @@ enum
VM_MIN_UNMAPPED=32, /* Set min percent of unmapped pages */
VM_PANIC_ON_OOM=33, /* panic at out-of-memory */
VM_VDSO_ENABLED=34, /* map VDSO into new processes? */
- VM_MIN_SLAB=35, /* Percent pages ignored by node reclaim */
+ VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */
};
@@ -571,7 +571,6 @@ enum {
NET_IPV6_ACCEPT_SOURCE_ROUTE=25,
NET_IPV6_ACCEPT_RA_FROM_LOCAL=26,
NET_IPV6_ACCEPT_RA_RT_INFO_MIN_PLEN=27,
- NET_IPV6_RA_DEFRTR_METRIC=28,
__NET_IPV6_MAX
};
diff --git a/original/uapi/linux/target_core_user.h b/original/uapi/linux/target_core_user.h
index 95b1597..b7b5796 100644
--- a/original/uapi/linux/target_core_user.h
+++ b/original/uapi/linux/target_core_user.h
@@ -45,7 +45,6 @@
#define ALIGN_SIZE 64 /* Should be enough for most CPUs */
#define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */
#define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */
-#define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2) /* TMR notifications */
struct tcmu_mailbox {
__u16 version;
@@ -63,7 +62,6 @@ struct tcmu_mailbox {
enum tcmu_opcode {
TCMU_OP_PAD = 0,
TCMU_OP_CMD,
- TCMU_OP_TMR,
};
/*
@@ -130,29 +128,6 @@ struct tcmu_cmd_entry {
} __packed;
-struct tcmu_tmr_entry {
- struct tcmu_cmd_entry_hdr hdr;
-
-#define TCMU_TMR_UNKNOWN 0
-#define TCMU_TMR_ABORT_TASK 1
-#define TCMU_TMR_ABORT_TASK_SET 2
-#define TCMU_TMR_CLEAR_ACA 3
-#define TCMU_TMR_CLEAR_TASK_SET 4
-#define TCMU_TMR_LUN_RESET 5
-#define TCMU_TMR_TARGET_WARM_RESET 6
-#define TCMU_TMR_TARGET_COLD_RESET 7
-/* Pseudo reset due to received PR OUT */
-#define TCMU_TMR_LUN_RESET_PRO 128
- __u8 tmr_type;
-
- __u8 __pad1;
- __u16 __pad2;
- __u32 cmd_cnt;
- __u64 __pad3;
- __u64 __pad4;
- __u16 cmd_ids[0];
-} __packed;
-
#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
enum tcmu_genl_cmd {
diff --git a/original/uapi/linux/taskstats.h b/original/uapi/linux/taskstats.h
index ccbd087..5e8ca16 100644
--- a/original/uapi/linux/taskstats.h
+++ b/original/uapi/linux/taskstats.h
@@ -34,7 +34,7 @@
*/
-#define TASKSTATS_VERSION 10
+#define TASKSTATS_VERSION 9
#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN
* in linux/sched.h */
@@ -112,7 +112,6 @@ struct taskstats {
__u32 ac_gid; /* Group ID */
__u32 ac_pid; /* Process ID */
__u32 ac_ppid; /* Parent process ID */
- /* __u32 range means times from 1970 to 2106 */
__u32 ac_btime; /* Begin time [sec since 1970] */
__u64 ac_etime __attribute__((aligned(8)));
/* Elapsed time [usec] */
@@ -169,9 +168,6 @@ struct taskstats {
/* Delay waiting for thrashing page */
__u64 thrashing_count;
__u64 thrashing_delay_total;
-
- /* v10: 64-bit btime to avoid overflow */
- __u64 ac_btime64; /* 64-bit begin time */
};
diff --git a/original/uapi/linux/tc_act/tc_gate.h b/original/uapi/linux/tc_act/tc_gate.h
deleted file mode 100644
index f214b3a..0000000
--- a/original/uapi/linux/tc_act/tc_gate.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/* Copyright 2020 NXP */
-
-#ifndef __LINUX_TC_GATE_H
-#define __LINUX_TC_GATE_H
-
-#include <linux/pkt_cls.h>
-
-struct tc_gate {
- tc_gen;
-};
-
-enum {
- TCA_GATE_ENTRY_UNSPEC,
- TCA_GATE_ENTRY_INDEX,
- TCA_GATE_ENTRY_GATE,
- TCA_GATE_ENTRY_INTERVAL,
- TCA_GATE_ENTRY_IPV,
- TCA_GATE_ENTRY_MAX_OCTETS,
- __TCA_GATE_ENTRY_MAX,
-};
-#define TCA_GATE_ENTRY_MAX (__TCA_GATE_ENTRY_MAX - 1)
-
-enum {
- TCA_GATE_ONE_ENTRY_UNSPEC,
- TCA_GATE_ONE_ENTRY,
- __TCA_GATE_ONE_ENTRY_MAX,
-};
-#define TCA_GATE_ONE_ENTRY_MAX (__TCA_GATE_ONE_ENTRY_MAX - 1)
-
-enum {
- TCA_GATE_UNSPEC,
- TCA_GATE_TM,
- TCA_GATE_PARMS,
- TCA_GATE_PAD,
- TCA_GATE_PRIORITY,
- TCA_GATE_ENTRY_LIST,
- TCA_GATE_BASE_TIME,
- TCA_GATE_CYCLE_TIME,
- TCA_GATE_CYCLE_TIME_EXT,
- TCA_GATE_FLAGS,
- TCA_GATE_CLOCKID,
- __TCA_GATE_MAX,
-};
-#define TCA_GATE_MAX (__TCA_GATE_MAX - 1)
-
-#endif
diff --git a/original/uapi/linux/tc_act/tc_mpls.h b/original/uapi/linux/tc_act/tc_mpls.h
index 9e4e8f5..9360e95 100644
--- a/original/uapi/linux/tc_act/tc_mpls.h
+++ b/original/uapi/linux/tc_act/tc_mpls.h
@@ -10,7 +10,6 @@
#define TCA_MPLS_ACT_PUSH 2
#define TCA_MPLS_ACT_MODIFY 3
#define TCA_MPLS_ACT_DEC_TTL 4
-#define TCA_MPLS_ACT_MAC_PUSH 5
struct tc_mpls {
tc_gen; /* generic TC action fields. */
diff --git a/original/uapi/linux/tc_act/tc_vlan.h b/original/uapi/linux/tc_act/tc_vlan.h
index 5b306fe..168995b 100644
--- a/original/uapi/linux/tc_act/tc_vlan.h
+++ b/original/uapi/linux/tc_act/tc_vlan.h
@@ -16,8 +16,6 @@
#define TCA_VLAN_ACT_POP 1
#define TCA_VLAN_ACT_PUSH 2
#define TCA_VLAN_ACT_MODIFY 3
-#define TCA_VLAN_ACT_POP_ETH 4
-#define TCA_VLAN_ACT_PUSH_ETH 5
struct tc_vlan {
tc_gen;
@@ -32,8 +30,6 @@ enum {
TCA_VLAN_PUSH_VLAN_PROTOCOL,
TCA_VLAN_PAD,
TCA_VLAN_PUSH_VLAN_PRIORITY,
- TCA_VLAN_PUSH_ETH_DST,
- TCA_VLAN_PUSH_ETH_SRC,
__TCA_VLAN_MAX,
};
#define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1)
diff --git a/original/uapi/linux/tcp.h b/original/uapi/linux/tcp.h
index 8fc09e8..74af1f7 100644
--- a/original/uapi/linux/tcp.h
+++ b/original/uapi/linux/tcp.h
@@ -51,7 +51,7 @@ struct tcphdr {
fin:1;
#else
#error "Adjust your <asm/byteorder.h> defines"
-#endif
+#endif
__be16 window;
__sum16 check;
__be16 urg_ptr;
@@ -62,14 +62,14 @@ struct tcphdr {
* (union is compatible to any of its members)
* This means this part of the code is -fstrict-aliasing safe now.
*/
-union tcp_word_hdr {
+union tcp_word_hdr {
struct tcphdr hdr;
- __be32 words[5];
-};
+ __be32 words[5];
+};
-#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])
+#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3])
-enum {
+enum {
TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
@@ -80,7 +80,7 @@ enum {
TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
-};
+};
/*
* TCP general constants
@@ -103,8 +103,8 @@ enum {
#define TCP_QUICKACK 12 /* Block/reenable quick acks */
#define TCP_CONGESTION 13 /* Congestion control algorithm */
#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */
-#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/
-#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */
+#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/
+#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */
#define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */
#define TCP_REPAIR 19 /* TCP sock is under repair right now */
#define TCP_REPAIR_QUEUE 20
@@ -311,25 +311,20 @@ enum {
TCP_NLA_DSACK_DUPS, /* DSACK blocks received */
TCP_NLA_REORD_SEEN, /* reordering events seen */
TCP_NLA_SRTT, /* smoothed RTT in usecs */
- TCP_NLA_TIMEOUT_REHASH, /* Timeout-triggered rehash attempts */
- TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */
- TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */
- TCP_NLA_TTL, /* TTL or hop limit of a packet received */
};
/* for TCP_MD5SIG socket option */
#define TCP_MD5SIG_MAXKEYLEN 80
/* tcp_md5sig extension flags for TCP_MD5SIG_EXT */
-#define TCP_MD5SIG_FLAG_PREFIX 0x1 /* address prefix length */
-#define TCP_MD5SIG_FLAG_IFINDEX 0x2 /* ifindex set */
+#define TCP_MD5SIG_FLAG_PREFIX 1 /* address prefix length */
struct tcp_md5sig {
struct __kernel_sockaddr_storage tcpm_addr; /* address associated */
__u8 tcpm_flags; /* extension flags */
__u8 tcpm_prefixlen; /* address prefix */
__u16 tcpm_keylen; /* key length */
- int tcpm_ifindex; /* device index for scope */
+ __u32 __tcpm_pad; /* zero */
__u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */
};
@@ -344,19 +339,9 @@ struct tcp_diag_md5sig {
/* setsockopt(fd, IPPROTO_TCP, TCP_ZEROCOPY_RECEIVE, ...) */
-#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1
struct tcp_zerocopy_receive {
__u64 address; /* in: address of mapping */
__u32 length; /* in/out: number of bytes to map/mapped */
__u32 recv_skip_hint; /* out: amount of bytes to skip */
- __u32 inq; /* out: amount of bytes in read queue */
- __s32 err; /* out: socket error */
- __u64 copybuf_address; /* in: copybuf address (small reads) */
- __s32 copybuf_len; /* in/out: copybuf bytes avail/used or error */
- __u32 flags; /* in: flags */
- __u64 msg_control; /* ancillary data */
- __u64 msg_controllen;
- __u32 msg_flags;
- __u32 reserved; /* set to 0 for now */
};
#endif /* _UAPI_LINUX_TCP_H */
diff --git a/original/uapi/linux/tee.h b/original/uapi/linux/tee.h
index 25a6c53..4b9eb06 100644
--- a/original/uapi/linux/tee.h
+++ b/original/uapi/linux/tee.h
@@ -51,15 +51,11 @@
#define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */
#define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */
#define TEE_GEN_CAP_REG_MEM (1 << 2)/* Supports registering shared memory */
-#define TEE_GEN_CAP_MEMREF_NULL (1 << 3)/* NULL MemRef support */
-
-#define TEE_MEMREF_NULL (__u64)(-1) /* NULL MemRef Buffer */
/*
* TEE Implementation ID
*/
#define TEE_IMPL_ID_OPTEE 1
-#define TEE_IMPL_ID_AMDTEE 2
/*
* OP-TEE specific capabilities
@@ -176,15 +172,6 @@ struct tee_ioctl_buf_data {
#define TEE_IOCTL_LOGIN_APPLICATION 4
#define TEE_IOCTL_LOGIN_USER_APPLICATION 5
#define TEE_IOCTL_LOGIN_GROUP_APPLICATION 6
-/*
- * Disallow user-space to use GP implementation specific login
- * method range (0x80000000 - 0xBFFFFFFF). This range is rather
- * being reserved for REE kernel clients or TEE implementation.
- */
-#define TEE_IOCTL_LOGIN_REE_KERNEL_MIN 0x80000000
-#define TEE_IOCTL_LOGIN_REE_KERNEL_MAX 0xBFFFFFFF
-/* Private login method for REE kernel clients */
-#define TEE_IOCTL_LOGIN_REE_KERNEL 0x80000000
/**
* struct tee_ioctl_param - parameter
@@ -203,16 +190,6 @@ struct tee_ioctl_buf_data {
* a part of a shared memory by specifying an offset (@a) and size (@b) of
* the object. To supply the entire shared memory object set the offset
* (@a) to 0 and size (@b) to the previously returned size of the object.
- *
- * A client may need to present a NULL pointer in the argument
- * passed to a trusted application in the TEE.
- * This is also a requirement in GlobalPlatform Client API v1.0c
- * (section 3.2.5 memory references), which can be found at
- * http://www.globalplatform.org/specificationsdevice.asp
- *
- * If a NULL pointer is passed to a TA in the TEE, the (@c)
- * IOCTL parameters value must be set to TEE_MEMREF_NULL indicating a NULL
- * memory reference.
*/
struct tee_ioctl_param {
__u64 attr;
@@ -355,7 +332,7 @@ struct tee_iocl_supp_send_arg {
};
/**
- * TEE_IOC_SUPPL_SEND - Send a response to a received request
+ * TEE_IOC_SUPPL_SEND - Receive a request for a supplicant function
*
* Takes a struct tee_ioctl_buf_data which contains a struct
* tee_iocl_supp_send_arg followed by any array of struct tee_param
diff --git a/original/uapi/linux/termios.h b/original/uapi/linux/termios.h
index e6da9d4..33961d4 100644
--- a/original/uapi/linux/termios.h
+++ b/original/uapi/linux/termios.h
@@ -5,4 +5,19 @@
#include <linux/types.h>
#include <asm/termios.h>
+#define NFF 5
+
+struct termiox
+{
+ __u16 x_hflag;
+ __u16 x_cflag;
+ __u16 x_rflag[NFF];
+ __u16 x_sflag;
+};
+
+#define RTSXOFF 0x0001 /* RTS flow control on input */
+#define CTSXON 0x0002 /* CTS flow control on output */
+#define DTRXOFF 0x0004 /* DTR flow control on input */
+#define DSRXON 0x0008 /* DCD flow control on output */
+
#endif
diff --git a/original/uapi/linux/thermal.h b/original/uapi/linux/thermal.h
index c105054..9621837 100644
--- a/original/uapi/linux/thermal.h
+++ b/original/uapi/linux/thermal.h
@@ -4,86 +4,31 @@
#define THERMAL_NAME_LENGTH 20
-enum thermal_device_mode {
- THERMAL_DEVICE_DISABLED = 0,
- THERMAL_DEVICE_ENABLED,
-};
-
-enum thermal_trip_type {
- THERMAL_TRIP_ACTIVE = 0,
- THERMAL_TRIP_PASSIVE,
- THERMAL_TRIP_HOT,
- THERMAL_TRIP_CRITICAL,
-};
-
/* Adding event notification support elements */
-#define THERMAL_GENL_FAMILY_NAME "thermal"
-#define THERMAL_GENL_VERSION 0x01
-#define THERMAL_GENL_SAMPLING_GROUP_NAME "sampling"
-#define THERMAL_GENL_EVENT_GROUP_NAME "event"
+#define THERMAL_GENL_FAMILY_NAME "thermal_event"
+#define THERMAL_GENL_VERSION 0x01
+#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_grp"
+
+/* Events supported by Thermal Netlink */
+enum events {
+ THERMAL_AUX0,
+ THERMAL_AUX1,
+ THERMAL_CRITICAL,
+ THERMAL_DEV_FAULT,
+};
-/* Attributes of thermal_genl_family */
-enum thermal_genl_attr {
+/* attributes of thermal_genl_family */
+enum {
THERMAL_GENL_ATTR_UNSPEC,
- THERMAL_GENL_ATTR_TZ,
- THERMAL_GENL_ATTR_TZ_ID,
- THERMAL_GENL_ATTR_TZ_TEMP,
- THERMAL_GENL_ATTR_TZ_TRIP,
- THERMAL_GENL_ATTR_TZ_TRIP_ID,
- THERMAL_GENL_ATTR_TZ_TRIP_TYPE,
- THERMAL_GENL_ATTR_TZ_TRIP_TEMP,
- THERMAL_GENL_ATTR_TZ_TRIP_HYST,
- THERMAL_GENL_ATTR_TZ_MODE,
- THERMAL_GENL_ATTR_TZ_NAME,
- THERMAL_GENL_ATTR_TZ_CDEV_WEIGHT,
- THERMAL_GENL_ATTR_TZ_GOV,
- THERMAL_GENL_ATTR_TZ_GOV_NAME,
- THERMAL_GENL_ATTR_CDEV,
- THERMAL_GENL_ATTR_CDEV_ID,
- THERMAL_GENL_ATTR_CDEV_CUR_STATE,
- THERMAL_GENL_ATTR_CDEV_MAX_STATE,
- THERMAL_GENL_ATTR_CDEV_NAME,
- THERMAL_GENL_ATTR_GOV_NAME,
-
+ THERMAL_GENL_ATTR_EVENT,
__THERMAL_GENL_ATTR_MAX,
};
#define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1)
-enum thermal_genl_sampling {
- THERMAL_GENL_SAMPLING_TEMP,
- __THERMAL_GENL_SAMPLING_MAX,
-};
-#define THERMAL_GENL_SAMPLING_MAX (__THERMAL_GENL_SAMPLING_MAX - 1)
-
-/* Events of thermal_genl_family */
-enum thermal_genl_event {
- THERMAL_GENL_EVENT_UNSPEC,
- THERMAL_GENL_EVENT_TZ_CREATE, /* Thermal zone creation */
- THERMAL_GENL_EVENT_TZ_DELETE, /* Thermal zone deletion */
- THERMAL_GENL_EVENT_TZ_DISABLE, /* Thermal zone disabed */
- THERMAL_GENL_EVENT_TZ_ENABLE, /* Thermal zone enabled */
- THERMAL_GENL_EVENT_TZ_TRIP_UP, /* Trip point crossed the way up */
- THERMAL_GENL_EVENT_TZ_TRIP_DOWN, /* Trip point crossed the way down */
- THERMAL_GENL_EVENT_TZ_TRIP_CHANGE, /* Trip point changed */
- THERMAL_GENL_EVENT_TZ_TRIP_ADD, /* Trip point added */
- THERMAL_GENL_EVENT_TZ_TRIP_DELETE, /* Trip point deleted */
- THERMAL_GENL_EVENT_CDEV_ADD, /* Cdev bound to the thermal zone */
- THERMAL_GENL_EVENT_CDEV_DELETE, /* Cdev unbound */
- THERMAL_GENL_EVENT_CDEV_STATE_UPDATE, /* Cdev state updated */
- THERMAL_GENL_EVENT_TZ_GOV_CHANGE, /* Governor policy changed */
- __THERMAL_GENL_EVENT_MAX,
-};
-#define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1)
-
-/* Commands supported by the thermal_genl_family */
-enum thermal_genl_cmd {
+/* commands supported by the thermal_genl_family */
+enum {
THERMAL_GENL_CMD_UNSPEC,
- THERMAL_GENL_CMD_TZ_GET_ID, /* List of thermal zones id */
- THERMAL_GENL_CMD_TZ_GET_TRIP, /* List of thermal trips */
- THERMAL_GENL_CMD_TZ_GET_TEMP, /* Get the thermal zone temperature */
- THERMAL_GENL_CMD_TZ_GET_GOV, /* Get the thermal zone governor */
- THERMAL_GENL_CMD_TZ_GET_MODE, /* Get the thermal zone mode */
- THERMAL_GENL_CMD_CDEV_GET, /* List of cdev id */
+ THERMAL_GENL_CMD_EVENT,
__THERMAL_GENL_CMD_MAX,
};
#define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1)
diff --git a/original/uapi/linux/time.h b/original/uapi/linux/time.h
index 4f4b6e4..a655aa2 100644
--- a/original/uapi/linux/time.h
+++ b/original/uapi/linux/time.h
@@ -5,7 +5,6 @@
#include <linux/types.h>
#include <linux/time_types.h>
-#ifndef __KERNEL__
#ifndef _STRUCT_TIMESPEC
#define _STRUCT_TIMESPEC
struct timespec {
@@ -19,17 +18,6 @@ struct timeval {
__kernel_suseconds_t tv_usec; /* microseconds */
};
-struct itimerspec {
- struct timespec it_interval;/* timer period */
- struct timespec it_value; /* timer expiration */
-};
-
-struct itimerval {
- struct timeval it_interval;/* timer interval */
- struct timeval it_value; /* current value */
-};
-#endif
-
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
int tz_dsttime; /* type of dst correction */
@@ -43,6 +31,16 @@ struct timezone {
#define ITIMER_VIRTUAL 1
#define ITIMER_PROF 2
+struct itimerspec {
+ struct timespec it_interval; /* timer period */
+ struct timespec it_value; /* timer expiration */
+};
+
+struct itimerval {
+ struct timeval it_interval; /* timer interval */
+ struct timeval it_value; /* current value */
+};
+
/*
* The IDs of the various system clocks (for POSIX.1b interval timers):
*/
diff --git a/original/uapi/linux/time_types.h b/original/uapi/linux/time_types.h
index bcc0002..074e391 100644
--- a/original/uapi/linux/time_types.h
+++ b/original/uapi/linux/time_types.h
@@ -33,11 +33,6 @@ struct __kernel_old_timespec {
long tv_nsec; /* nanoseconds */
};
-struct __kernel_old_itimerval {
- struct __kernel_old_timeval it_interval;/* timer interval */
- struct __kernel_old_timeval it_value; /* current value */
-};
-
struct __kernel_sock_timeval {
__s64 tv_sec;
__s64 tv_usec;
diff --git a/original/uapi/linux/timex.h b/original/uapi/linux/timex.h
index bd627c3..9f517f9 100644
--- a/original/uapi/linux/timex.h
+++ b/original/uapi/linux/timex.h
@@ -57,7 +57,6 @@
#define NTP_API 4 /* NTP API version */
-#ifndef __KERNEL__
/*
* syscall interface - used (mainly by NTP daemon)
* to discipline kernel clock oscillator
@@ -92,7 +91,6 @@ struct timex {
int :32; int :32; int :32; int :32;
int :32; int :32; int :32;
};
-#endif
struct __kernel_timex_timeval {
__kernel_time64_t tv_sec;
diff --git a/original/uapi/linux/tipc.h b/original/uapi/linux/tipc.h
index 80ea15e..add01db 100644
--- a/original/uapi/linux/tipc.h
+++ b/original/uapi/linux/tipc.h
@@ -254,8 +254,6 @@ static inline int tipc_aead_key_size(struct tipc_aead_key *key)
return sizeof(*key) + key->keylen;
}
-#define TIPC_REKEYING_NOW (~0U)
-
/* The macros and functions below are deprecated:
*/
diff --git a/original/uapi/linux/tipc_netlink.h b/original/uapi/linux/tipc_netlink.h
index d847dd6..6c2194a 100644
--- a/original/uapi/linux/tipc_netlink.h
+++ b/original/uapi/linux/tipc_netlink.h
@@ -65,7 +65,6 @@ enum {
TIPC_NL_UDP_GET_REMOTEIP,
TIPC_NL_KEY_SET,
TIPC_NL_KEY_FLUSH,
- TIPC_NL_ADDR_LEGACY_GET,
__TIPC_NL_CMD_MAX,
TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
@@ -165,8 +164,6 @@ enum {
TIPC_NLA_NODE_UP, /* flag */
TIPC_NLA_NODE_ID, /* data */
TIPC_NLA_NODE_KEY, /* data */
- TIPC_NLA_NODE_KEY_MASTER, /* flag */
- TIPC_NLA_NODE_REKEYING, /* u32 */
__TIPC_NLA_NODE_MAX,
TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
@@ -179,7 +176,6 @@ enum {
TIPC_NLA_NET_ADDR, /* u32 */
TIPC_NLA_NET_NODEID, /* u64 */
TIPC_NLA_NET_NODEID_W1, /* u64 */
- TIPC_NLA_NET_ADDR_LEGACY, /* flag */
__TIPC_NLA_NET_MAX,
TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1
diff --git a/original/uapi/linux/tls.h b/original/uapi/linux/tls.h
index 0d54bae..bcd2869 100644
--- a/original/uapi/linux/tls.h
+++ b/original/uapi/linux/tls.h
@@ -77,13 +77,6 @@
#define TLS_CIPHER_AES_CCM_128_TAG_SIZE 16
#define TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE 8
-#define TLS_CIPHER_CHACHA20_POLY1305 54
-#define TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE 12
-#define TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE 32
-#define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
-#define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
-#define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
-
#define TLS_SET_RECORD_TYPE 1
#define TLS_GET_RECORD_TYPE 2
@@ -116,14 +109,6 @@ struct tls12_crypto_info_aes_ccm_128 {
unsigned char rec_seq[TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE];
};
-struct tls12_crypto_info_chacha20_poly1305 {
- struct tls_crypto_info info;
- unsigned char iv[TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE];
- unsigned char key[TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE];
- unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
- unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
-};
-
enum {
TLS_INFO_UNSPEC,
TLS_INFO_VERSION,
diff --git a/original/uapi/linux/types.h b/original/uapi/linux/types.h
index f6d2f83..2fce8b6 100644
--- a/original/uapi/linux/types.h
+++ b/original/uapi/linux/types.h
@@ -7,7 +7,7 @@
#ifndef __ASSEMBLY__
#ifndef __KERNEL__
#ifndef __EXPORTED_HEADERS__
-#warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders"
+#warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders"
#endif /* __EXPORTED_HEADERS__ */
#endif
diff --git a/original/uapi/linux/udp.h b/original/uapi/linux/udp.h
index 4828794..30baccb 100644
--- a/original/uapi/linux/udp.h
+++ b/original/uapi/linux/udp.h
@@ -42,6 +42,5 @@ struct udphdr {
#define UDP_ENCAP_GTP0 4 /* GSM TS 09.60 */
#define UDP_ENCAP_GTP1U 5 /* 3GPP TS 29.060 */
#define UDP_ENCAP_RXRPC 6
-#define TCP_ENCAP_ESPINTCP 7 /* Yikes, this is really xfrm encap types. */
#endif /* _UAPI_LINUX_UDP_H */
diff --git a/original/uapi/linux/um_timetravel.h b/original/uapi/linux/um_timetravel.h
deleted file mode 100644
index ca32382..0000000
--- a/original/uapi/linux/um_timetravel.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Copyright (C) 2019 Intel Corporation
- */
-#ifndef _UAPI_LINUX_UM_TIMETRAVEL_H
-#define _UAPI_LINUX_UM_TIMETRAVEL_H
-#include <linux/types.h>
-
-/**
- * struct um_timetravel_msg - UM time travel message
- *
- * This is the basic message type, going in both directions.
- *
- * This is the message passed between the host (user-mode Linux instance)
- * and the calendar (the application on the other side of the socket) in
- * order to implement common scheduling.
- *
- * Whenever UML has an event it will request runtime for it from the
- * calendar, and then wait for its turn until it can run, etc. Note
- * that it will only ever request the single next runtime, i.e. multiple
- * REQUEST messages override each other.
- */
-struct um_timetravel_msg {
- /**
- * @op: operation value from &enum um_timetravel_ops
- */
- __u32 op;
-
- /**
- * @seq: sequence number for the message - shall be reflected in
- * the ACK response, and should be checked while processing
- * the response to see if it matches
- */
- __u32 seq;
-
- /**
- * @time: time in nanoseconds
- */
- __u64 time;
-};
-
-/**
- * enum um_timetravel_ops - Operation codes
- */
-enum um_timetravel_ops {
- /**
- * @UM_TIMETRAVEL_ACK: response (ACK) to any previous message,
- * this usually doesn't carry any data in the 'time' field
- * unless otherwise specified below
- */
- UM_TIMETRAVEL_ACK = 0,
-
- /**
- * @UM_TIMETRAVEL_START: initialize the connection, the time
- * field contains an (arbitrary) ID to possibly be able
- * to distinguish the connections.
- */
- UM_TIMETRAVEL_START = 1,
-
- /**
- * @UM_TIMETRAVEL_REQUEST: request to run at the given time
- * (host -> calendar)
- */
- UM_TIMETRAVEL_REQUEST = 2,
-
- /**
- * @UM_TIMETRAVEL_WAIT: Indicate waiting for the previously requested
- * runtime, new requests may be made while waiting (e.g. due to
- * interrupts); the time field is ignored. The calendar must process
- * this message and later send a %UM_TIMETRAVEL_RUN message when
- * the host can run again.
- * (host -> calendar)
- */
- UM_TIMETRAVEL_WAIT = 3,
-
- /**
- * @UM_TIMETRAVEL_GET: return the current time from the calendar in the
- * ACK message, the time in the request message is ignored
- * (host -> calendar)
- */
- UM_TIMETRAVEL_GET = 4,
-
- /**
- * @UM_TIMETRAVEL_UPDATE: time update to the calendar, must be sent e.g.
- * before kicking an interrupt to another calendar
- * (host -> calendar)
- */
- UM_TIMETRAVEL_UPDATE = 5,
-
- /**
- * @UM_TIMETRAVEL_RUN: run time request granted, current time is in
- * the time field
- * (calendar -> host)
- */
- UM_TIMETRAVEL_RUN = 6,
-
- /**
- * @UM_TIMETRAVEL_FREE_UNTIL: Enable free-running until the given time,
- * this is a message from the calendar telling the host that it can
- * freely do its own scheduling for anything before the indicated
- * time.
- * Note that if a calendar sends this message once, the host may
- * assume that it will also do so in the future, if it implements
- * wraparound semantics for the time field.
- * (calendar -> host)
- */
- UM_TIMETRAVEL_FREE_UNTIL = 7,
-
- /**
- * @UM_TIMETRAVEL_GET_TOD: Return time of day, typically used once at
- * boot by the virtual machines to get a synchronized time from
- * the simulation.
- */
- UM_TIMETRAVEL_GET_TOD = 8,
-};
-
-#endif /* _UAPI_LINUX_UM_TIMETRAVEL_H */
diff --git a/original/uapi/linux/usb/ch9.h b/original/uapi/linux/usb/ch9.h
index 17ce561..2b623f3 100644
--- a/original/uapi/linux/usb/ch9.h
+++ b/original/uapi/linux/usb/ch9.h
@@ -138,11 +138,11 @@
* Test Mode Selectors
* See USB 2.0 spec Table 9-7
*/
-#define USB_TEST_J 1
-#define USB_TEST_K 2
-#define USB_TEST_SE0_NAK 3
-#define USB_TEST_PACKET 4
-#define USB_TEST_FORCE_ENABLE 5
+#define TEST_J 1
+#define TEST_K 2
+#define TEST_SE0_NAK 3
+#define TEST_PACKET 4
+#define TEST_FORCE_EN 5
/* Status Type */
#define USB_STATUS_TYPE_STANDARD 0
@@ -326,10 +326,6 @@ struct usb_device_descriptor {
#define USB_CLASS_CONTENT_SEC 0x0d /* content security */
#define USB_CLASS_VIDEO 0x0e
#define USB_CLASS_WIRELESS_CONTROLLER 0xe0
-#define USB_CLASS_PERSONAL_HEALTHCARE 0x0f
-#define USB_CLASS_AUDIO_VIDEO 0x10
-#define USB_CLASS_BILLBOARD 0x11
-#define USB_CLASS_USB_TYPE_C_BRIDGE 0x12
#define USB_CLASS_MISC 0xef
#define USB_CLASS_APP_SPEC 0xfe
#define USB_CLASS_VENDOR_SPEC 0xff
@@ -368,9 +364,6 @@ struct usb_config_descriptor {
/*-------------------------------------------------------------------------*/
-/* USB String descriptors can contain at most 126 characters. */
-#define USB_MAX_STRING_LEN 126
-
/* USB_DT_STRING: String descriptor */
struct usb_string_descriptor {
__u8 bLength;
@@ -968,22 +961,9 @@ struct usb_ssp_cap_descriptor {
__le32 bmSublinkSpeedAttr[1]; /* list of sublink speed attrib entries */
#define USB_SSP_SUBLINK_SPEED_SSID (0xf) /* sublink speed ID */
#define USB_SSP_SUBLINK_SPEED_LSE (0x3 << 4) /* Lanespeed exponent */
-#define USB_SSP_SUBLINK_SPEED_LSE_BPS 0
-#define USB_SSP_SUBLINK_SPEED_LSE_KBPS 1
-#define USB_SSP_SUBLINK_SPEED_LSE_MBPS 2
-#define USB_SSP_SUBLINK_SPEED_LSE_GBPS 3
-
#define USB_SSP_SUBLINK_SPEED_ST (0x3 << 6) /* Sublink type */
-#define USB_SSP_SUBLINK_SPEED_ST_SYM_RX 0
-#define USB_SSP_SUBLINK_SPEED_ST_ASYM_RX 1
-#define USB_SSP_SUBLINK_SPEED_ST_SYM_TX 2
-#define USB_SSP_SUBLINK_SPEED_ST_ASYM_TX 3
-
#define USB_SSP_SUBLINK_SPEED_RSVD (0x3f << 8) /* Reserved */
#define USB_SSP_SUBLINK_SPEED_LP (0x3 << 14) /* Link protocol */
-#define USB_SSP_SUBLINK_SPEED_LP_SS 0
-#define USB_SSP_SUBLINK_SPEED_LP_SSP 1
-
#define USB_SSP_SUBLINK_SPEED_LSM (0xff << 16) /* Lanespeed mantissa */
} __attribute__((packed));
@@ -1242,7 +1222,7 @@ struct usb_set_sel_req {
* As per USB compliance update, a device that is actively drawing
* more than 100mA from USB must report itself as bus-powered in
* the GetStatus(DEVICE) call.
- * https://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34
+ * http://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34
*/
#define USB_SELF_POWER_VBUS_MAX_DRAW 100
diff --git a/original/uapi/linux/usb/charger.h b/original/uapi/linux/usb/charger.h
index ad22079..5f72af3 100644
--- a/original/uapi/linux/usb/charger.h
+++ b/original/uapi/linux/usb/charger.h
@@ -14,18 +14,18 @@
* ACA (Accessory Charger Adapters)
*/
enum usb_charger_type {
- UNKNOWN_TYPE = 0,
- SDP_TYPE = 1,
- DCP_TYPE = 2,
- CDP_TYPE = 3,
- ACA_TYPE = 4,
+ UNKNOWN_TYPE,
+ SDP_TYPE,
+ DCP_TYPE,
+ CDP_TYPE,
+ ACA_TYPE,
};
/* USB charger state */
enum usb_charger_state {
- USB_CHARGER_DEFAULT = 0,
- USB_CHARGER_PRESENT = 1,
- USB_CHARGER_ABSENT = 2,
+ USB_CHARGER_DEFAULT,
+ USB_CHARGER_PRESENT,
+ USB_CHARGER_ABSENT,
};
#endif /* _UAPI__LINUX_USB_CHARGER_H */
diff --git a/original/uapi/linux/usb/raw_gadget.h b/original/uapi/linux/usb/raw_gadget.h
deleted file mode 100644
index 0be6852..0000000
--- a/original/uapi/linux/usb/raw_gadget.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * USB Raw Gadget driver.
- *
- * See Documentation/usb/raw-gadget.rst for more details.
- */
-
-#ifndef _UAPI__LINUX_USB_RAW_GADGET_H
-#define _UAPI__LINUX_USB_RAW_GADGET_H
-
-#include <asm/ioctl.h>
-#include <linux/types.h>
-#include <linux/usb/ch9.h>
-
-/* Maximum length of driver_name/device_name in the usb_raw_init struct. */
-#define UDC_NAME_LENGTH_MAX 128
-
-/*
- * struct usb_raw_init - argument for USB_RAW_IOCTL_INIT ioctl.
- * @speed: The speed of the emulated USB device, takes the same values as
- * the usb_device_speed enum: USB_SPEED_FULL, USB_SPEED_HIGH, etc.
- * @driver_name: The name of the UDC driver.
- * @device_name: The name of a UDC instance.
- *
- * The last two fields identify a UDC the gadget driver should bind to.
- * For example, Dummy UDC has "dummy_udc" as its driver_name and "dummy_udc.N"
- * as its device_name, where N in the index of the Dummy UDC instance.
- * At the same time the dwc2 driver that is used on Raspberry Pi Zero, has
- * "20980000.usb" as both driver_name and device_name.
- */
-struct usb_raw_init {
- __u8 driver_name[UDC_NAME_LENGTH_MAX];
- __u8 device_name[UDC_NAME_LENGTH_MAX];
- __u8 speed;
-};
-
-/* The type of event fetched with the USB_RAW_IOCTL_EVENT_FETCH ioctl. */
-enum usb_raw_event_type {
- USB_RAW_EVENT_INVALID = 0,
-
- /* This event is queued when the driver has bound to a UDC. */
- USB_RAW_EVENT_CONNECT = 1,
-
- /* This event is queued when a new control request arrived to ep0. */
- USB_RAW_EVENT_CONTROL = 2,
-
- /* The list might grow in the future. */
-};
-
-/*
- * struct usb_raw_event - argument for USB_RAW_IOCTL_EVENT_FETCH ioctl.
- * @type: The type of the fetched event.
- * @length: Length of the data buffer. Updated by the driver and set to the
- * actual length of the fetched event data.
- * @data: A buffer to store the fetched event data.
- *
- * Currently the fetched data buffer is empty for USB_RAW_EVENT_CONNECT,
- * and contains struct usb_ctrlrequest for USB_RAW_EVENT_CONTROL.
- */
-struct usb_raw_event {
- __u32 type;
- __u32 length;
- __u8 data[0];
-};
-
-#define USB_RAW_IO_FLAGS_ZERO 0x0001
-#define USB_RAW_IO_FLAGS_MASK 0x0001
-
-static inline int usb_raw_io_flags_valid(__u16 flags)
-{
- return (flags & ~USB_RAW_IO_FLAGS_MASK) == 0;
-}
-
-static inline int usb_raw_io_flags_zero(__u16 flags)
-{
- return (flags & USB_RAW_IO_FLAGS_ZERO);
-}
-
-/*
- * struct usb_raw_ep_io - argument for USB_RAW_IOCTL_EP0/EP_WRITE/READ ioctls.
- * @ep: Endpoint handle as returned by USB_RAW_IOCTL_EP_ENABLE for
- * USB_RAW_IOCTL_EP_WRITE/READ. Ignored for USB_RAW_IOCTL_EP0_WRITE/READ.
- * @flags: When USB_RAW_IO_FLAGS_ZERO is specified, the zero flag is set on
- * the submitted USB request, see include/linux/usb/gadget.h for details.
- * @length: Length of data.
- * @data: Data to send for USB_RAW_IOCTL_EP0/EP_WRITE. Buffer to store received
- * data for USB_RAW_IOCTL_EP0/EP_READ.
- */
-struct usb_raw_ep_io {
- __u16 ep;
- __u16 flags;
- __u32 length;
- __u8 data[0];
-};
-
-/* Maximum number of non-control endpoints in struct usb_raw_eps_info. */
-#define USB_RAW_EPS_NUM_MAX 30
-
-/* Maximum length of UDC endpoint name in struct usb_raw_ep_info. */
-#define USB_RAW_EP_NAME_MAX 16
-
-/* Used as addr in struct usb_raw_ep_info if endpoint accepts any address. */
-#define USB_RAW_EP_ADDR_ANY 0xff
-
-/*
- * struct usb_raw_ep_caps - exposes endpoint capabilities from struct usb_ep
- * (technically from its member struct usb_ep_caps).
- */
-struct usb_raw_ep_caps {
- __u32 type_control : 1;
- __u32 type_iso : 1;
- __u32 type_bulk : 1;
- __u32 type_int : 1;
- __u32 dir_in : 1;
- __u32 dir_out : 1;
-};
-
-/*
- * struct usb_raw_ep_limits - exposes endpoint limits from struct usb_ep.
- * @maxpacket_limit: Maximum packet size value supported by this endpoint.
- * @max_streams: maximum number of streams supported by this endpoint
- * (actual number is 2^n).
- * @reserved: Empty, reserved for potential future extensions.
- */
-struct usb_raw_ep_limits {
- __u16 maxpacket_limit;
- __u16 max_streams;
- __u32 reserved;
-};
-
-/*
- * struct usb_raw_ep_info - stores information about a gadget endpoint.
- * @name: Name of the endpoint as it is defined in the UDC driver.
- * @addr: Address of the endpoint that must be specified in the endpoint
- * descriptor passed to USB_RAW_IOCTL_EP_ENABLE ioctl.
- * @caps: Endpoint capabilities.
- * @limits: Endpoint limits.
- */
-struct usb_raw_ep_info {
- __u8 name[USB_RAW_EP_NAME_MAX];
- __u32 addr;
- struct usb_raw_ep_caps caps;
- struct usb_raw_ep_limits limits;
-};
-
-/*
- * struct usb_raw_eps_info - argument for USB_RAW_IOCTL_EPS_INFO ioctl.
- * eps: Structures that store information about non-control endpoints.
- */
-struct usb_raw_eps_info {
- struct usb_raw_ep_info eps[USB_RAW_EPS_NUM_MAX];
-};
-
-/*
- * Initializes a Raw Gadget instance.
- * Accepts a pointer to the usb_raw_init struct as an argument.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_INIT _IOW('U', 0, struct usb_raw_init)
-
-/*
- * Instructs Raw Gadget to bind to a UDC and start emulating a USB device.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_RUN _IO('U', 1)
-
-/*
- * A blocking ioctl that waits for an event and returns fetched event data to
- * the user.
- * Accepts a pointer to the usb_raw_event struct.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_EVENT_FETCH _IOR('U', 2, struct usb_raw_event)
-
-/*
- * Queues an IN (OUT for READ) request as a response to the last setup request
- * received on endpoint 0 (provided that was an IN (OUT for READ) request), and
- * waits until the request is completed. Copies received data to user for READ.
- * Accepts a pointer to the usb_raw_ep_io struct as an argument.
- * Returns length of transferred data on success or negative error code on
- * failure.
- */
-#define USB_RAW_IOCTL_EP0_WRITE _IOW('U', 3, struct usb_raw_ep_io)
-#define USB_RAW_IOCTL_EP0_READ _IOWR('U', 4, struct usb_raw_ep_io)
-
-/*
- * Finds an endpoint that satisfies the parameters specified in the provided
- * descriptors (address, transfer type, etc.) and enables it.
- * Accepts a pointer to the usb_raw_ep_descs struct as an argument.
- * Returns enabled endpoint handle on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_EP_ENABLE _IOW('U', 5, struct usb_endpoint_descriptor)
-
-/*
- * Disables specified endpoint.
- * Accepts endpoint handle as an argument.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_EP_DISABLE _IOW('U', 6, __u32)
-
-/*
- * Queues an IN (OUT for READ) request as a response to the last setup request
- * received on endpoint usb_raw_ep_io.ep (provided that was an IN (OUT for READ)
- * request), and waits until the request is completed. Copies received data to
- * user for READ.
- * Accepts a pointer to the usb_raw_ep_io struct as an argument.
- * Returns length of transferred data on success or negative error code on
- * failure.
- */
-#define USB_RAW_IOCTL_EP_WRITE _IOW('U', 7, struct usb_raw_ep_io)
-#define USB_RAW_IOCTL_EP_READ _IOWR('U', 8, struct usb_raw_ep_io)
-
-/*
- * Switches the gadget into the configured state.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_CONFIGURE _IO('U', 9)
-
-/*
- * Constrains UDC VBUS power usage.
- * Accepts current limit in 2 mA units as an argument.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_VBUS_DRAW _IOW('U', 10, __u32)
-
-/*
- * Fills in the usb_raw_eps_info structure with information about non-control
- * endpoints available for the currently connected UDC.
- * Returns the number of available endpoints on success or negative error code
- * on failure.
- */
-#define USB_RAW_IOCTL_EPS_INFO _IOR('U', 11, struct usb_raw_eps_info)
-
-/*
- * Stalls a pending control request on endpoint 0.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_EP0_STALL _IO('U', 12)
-
-/*
- * Sets or clears halt or wedge status of the endpoint.
- * Accepts endpoint handle as an argument.
- * Returns 0 on success or negative error code on failure.
- */
-#define USB_RAW_IOCTL_EP_SET_HALT _IOW('U', 13, __u32)
-#define USB_RAW_IOCTL_EP_CLEAR_HALT _IOW('U', 14, __u32)
-#define USB_RAW_IOCTL_EP_SET_WEDGE _IOW('U', 15, __u32)
-
-#endif /* _UAPI__LINUX_USB_RAW_GADGET_H */
diff --git a/original/uapi/linux/usb/tmc.h b/original/uapi/linux/usb/tmc.h
index d791cc5..fdd4d88 100644
--- a/original/uapi/linux/usb/tmc.h
+++ b/original/uapi/linux/usb/tmc.h
@@ -102,9 +102,6 @@ struct usbtmc_message {
#define USBTMC_IOCTL_MSG_IN_ATTR _IOR(USBTMC_IOC_NR, 24, __u8)
#define USBTMC_IOCTL_AUTO_ABORT _IOW(USBTMC_IOC_NR, 25, __u8)
-#define USBTMC_IOCTL_GET_STB _IOR(USBTMC_IOC_NR, 26, __u8)
-#define USBTMC_IOCTL_GET_SRQ_STB _IOR(USBTMC_IOC_NR, 27, __u8)
-
/* Cancel and cleanup asynchronous calls */
#define USBTMC_IOCTL_CANCEL_IO _IO(USBTMC_IOC_NR, 35)
#define USBTMC_IOCTL_CLEANUP_IO _IO(USBTMC_IOC_NR, 36)
diff --git a/original/uapi/linux/userfaultfd.h b/original/uapi/linux/userfaultfd.h
index 5f2d882..48f1a7c 100644
--- a/original/uapi/linux/userfaultfd.h
+++ b/original/uapi/linux/userfaultfd.h
@@ -19,8 +19,7 @@
* means the userland is reading).
*/
#define UFFD_API ((__u64)0xAA)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \
- UFFD_FEATURE_EVENT_FORK | \
+#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \
UFFD_FEATURE_EVENT_REMAP | \
UFFD_FEATURE_EVENT_REMOVE | \
UFFD_FEATURE_EVENT_UNMAP | \
@@ -35,8 +34,7 @@
#define UFFD_API_RANGE_IOCTLS \
((__u64)1 << _UFFDIO_WAKE | \
(__u64)1 << _UFFDIO_COPY | \
- (__u64)1 << _UFFDIO_ZEROPAGE | \
- (__u64)1 << _UFFDIO_WRITEPROTECT)
+ (__u64)1 << _UFFDIO_ZEROPAGE)
#define UFFD_API_RANGE_IOCTLS_BASIC \
((__u64)1 << _UFFDIO_WAKE | \
(__u64)1 << _UFFDIO_COPY)
@@ -54,7 +52,6 @@
#define _UFFDIO_WAKE (0x02)
#define _UFFDIO_COPY (0x03)
#define _UFFDIO_ZEROPAGE (0x04)
-#define _UFFDIO_WRITEPROTECT (0x06)
#define _UFFDIO_API (0x3F)
/* userfaultfd ioctl ids */
@@ -71,8 +68,6 @@
struct uffdio_copy)
#define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, \
struct uffdio_zeropage)
-#define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \
- struct uffdio_writeprotect)
/* read() structure */
struct uffd_msg {
@@ -208,14 +203,13 @@ struct uffdio_copy {
__u64 dst;
__u64 src;
__u64 len;
-#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0)
/*
- * UFFDIO_COPY_MODE_WP will map the page write protected on
- * the fly. UFFDIO_COPY_MODE_WP is available only if the
- * write protected ioctl is implemented for the range
- * according to the uffdio_register.ioctls.
+ * There will be a wrprotection flag later that allows to map
+ * pages wrprotected on the fly. And such a flag will be
+ * available if the wrprotection ioctl are implemented for the
+ * range according to the uffdio_register.ioctls.
*/
-#define UFFDIO_COPY_MODE_WP ((__u64)1<<1)
+#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0)
__u64 mode;
/*
@@ -237,33 +231,4 @@ struct uffdio_zeropage {
__s64 zeropage;
};
-struct uffdio_writeprotect {
- struct uffdio_range range;
-/*
- * UFFDIO_WRITEPROTECT_MODE_WP: set the flag to write protect a range,
- * unset the flag to undo protection of a range which was previously
- * write protected.
- *
- * UFFDIO_WRITEPROTECT_MODE_DONTWAKE: set the flag to avoid waking up
- * any wait thread after the operation succeeds.
- *
- * NOTE: Write protecting a region (WP=1) is unrelated to page faults,
- * therefore DONTWAKE flag is meaningless with WP=1. Removing write
- * protection (WP=0) in response to a page fault wakes the faulting
- * task unless DONTWAKE is set.
- */
-#define UFFDIO_WRITEPROTECT_MODE_WP ((__u64)1<<0)
-#define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64)1<<1)
- __u64 mode;
-};
-
-/*
- * Flags for the userfaultfd(2) system call itself.
- */
-
-/*
- * Create a userfaultfd that can handle page faults only in user mode.
- */
-#define UFFD_USER_MODE_ONLY 1
-
#endif /* _LINUX_USERFAULTFD_H */
diff --git a/original/uapi/linux/v4l2-controls.h b/original/uapi/linux/v4l2-controls.h
index 039c0d7..5a7bede 100644
--- a/original/uapi/linux/v4l2-controls.h
+++ b/original/uapi/linux/v4l2-controls.h
@@ -54,7 +54,7 @@
/* Control classes */
#define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */
-#define V4L2_CTRL_CLASS_CODEC 0x00990000 /* Stateful codec controls */
+#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */
#define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */
#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator controls */
#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */
@@ -65,7 +65,6 @@
#define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */
#define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */
#define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */
-#define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000 /* Stateless codecs controls */
/* User-class control IDs */
@@ -193,32 +192,15 @@ enum v4l2_colorfx {
* We reserve 16 controls for this driver. */
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
-/*
- * The base for the atmel isc driver controls.
- * We reserve 32 controls for this driver.
- */
-#define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
-
-/*
- * The base for the CODA driver controls.
- * We reserve 16 controls for this driver.
- */
-#define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
-/*
- * The base for MIPI CCS driver controls.
- * We reserve 128 controls for this driver.
- */
-#define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
-
/* MPEG-class control IDs */
/* The MPEG controls are applicable to all codec controls
* and the 'MPEG' part of the define is historical */
-#define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
-#define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
+#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
+#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1)
/* MPEG streams, specific to multiplexed streams */
-#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE+0)
+#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
enum v4l2_mpeg_stream_type {
V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */
V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */
@@ -227,26 +209,26 @@ enum v4l2_mpeg_stream_type {
V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */
V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */
};
-#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_CODEC_BASE+1)
-#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_CODEC_BASE+2)
-#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_CODEC_BASE+3)
-#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_CODEC_BASE+4)
-#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_CODEC_BASE+5)
-#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_CODEC_BASE+6)
-#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_CODEC_BASE+7)
+#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
+#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
+#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
+#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
+#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
+#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
+#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
enum v4l2_mpeg_stream_vbi_fmt {
V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */
V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */
};
/* MPEG audio controls specific to multiplexed streams */
-#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_CODEC_BASE+100)
+#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
enum v4l2_mpeg_audio_sampling_freq {
V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0,
V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1,
V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2,
};
-#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_CODEC_BASE+101)
+#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
enum v4l2_mpeg_audio_encoding {
V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
@@ -254,7 +236,7 @@ enum v4l2_mpeg_audio_encoding {
V4L2_MPEG_AUDIO_ENCODING_AAC = 3,
V4L2_MPEG_AUDIO_ENCODING_AC3 = 4,
};
-#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_CODEC_BASE+102)
+#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
enum v4l2_mpeg_audio_l1_bitrate {
V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0,
V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1,
@@ -271,7 +253,7 @@ enum v4l2_mpeg_audio_l1_bitrate {
V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12,
V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,
};
-#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_CODEC_BASE+103)
+#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
enum v4l2_mpeg_audio_l2_bitrate {
V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0,
V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1,
@@ -288,7 +270,7 @@ enum v4l2_mpeg_audio_l2_bitrate {
V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12,
V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,
};
-#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_CODEC_BASE+104)
+#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
enum v4l2_mpeg_audio_l3_bitrate {
V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0,
V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1,
@@ -305,34 +287,34 @@ enum v4l2_mpeg_audio_l3_bitrate {
V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12,
V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,
};
-#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_CODEC_BASE+105)
+#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
enum v4l2_mpeg_audio_mode {
V4L2_MPEG_AUDIO_MODE_STEREO = 0,
V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1,
V4L2_MPEG_AUDIO_MODE_DUAL = 2,
V4L2_MPEG_AUDIO_MODE_MONO = 3,
};
-#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_CODEC_BASE+106)
+#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
enum v4l2_mpeg_audio_mode_extension {
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0,
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1,
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2,
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,
};
-#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_CODEC_BASE+107)
+#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
enum v4l2_mpeg_audio_emphasis {
V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0,
V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1,
V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,
};
-#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_CODEC_BASE+108)
+#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
enum v4l2_mpeg_audio_crc {
V4L2_MPEG_AUDIO_CRC_NONE = 0,
V4L2_MPEG_AUDIO_CRC_CRC16 = 1,
};
-#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_CODEC_BASE+109)
-#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_CODEC_BASE+110)
-#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_CODEC_BASE+111)
+#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
+#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110)
+#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111)
enum v4l2_mpeg_audio_ac3_bitrate {
V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0,
V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1,
@@ -354,7 +336,7 @@ enum v4l2_mpeg_audio_ac3_bitrate {
V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17,
V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18,
};
-#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_CODEC_BASE+112)
+#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112)
enum v4l2_mpeg_audio_dec_playback {
V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0,
V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1,
@@ -363,52 +345,51 @@ enum v4l2_mpeg_audio_dec_playback {
V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4,
V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5,
};
-#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_CODEC_BASE+113)
+#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113)
/* MPEG video controls specific to multiplexed streams */
-#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_CODEC_BASE+200)
+#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
enum v4l2_mpeg_video_encoding {
V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
};
-#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_CODEC_BASE+201)
+#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
enum v4l2_mpeg_video_aspect {
V4L2_MPEG_VIDEO_ASPECT_1x1 = 0,
V4L2_MPEG_VIDEO_ASPECT_4x3 = 1,
V4L2_MPEG_VIDEO_ASPECT_16x9 = 2,
V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,
};
-#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_CODEC_BASE+202)
-#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_CODEC_BASE+203)
-#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_CODEC_BASE+204)
-#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_CODEC_BASE+205)
-#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_CODEC_BASE+206)
+#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
+#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
+#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
+#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
+#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
enum v4l2_mpeg_video_bitrate_mode {
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
- V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2,
-};
-#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_CODEC_BASE+207)
-#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_CODEC_BASE+208)
-#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_CODEC_BASE+209)
-#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_CODEC_BASE+210)
-#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_CODEC_BASE+211)
-#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_CODEC_BASE+212)
-#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_CODEC_BASE+213)
-#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_CODEC_BASE+214)
-#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_CODEC_BASE+215)
-#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_CODEC_BASE+216)
+};
+#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
+#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
+#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)
+#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
+#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
+#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212)
+#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213)
+#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214)
+#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215)
+#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216)
enum v4l2_mpeg_video_header_mode {
V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0,
V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1,
};
-#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_CODEC_BASE+217)
-#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_CODEC_BASE+218)
-#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_CODEC_BASE+219)
-#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_CODEC_BASE+220)
-#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_CODEC_BASE+221)
+#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217)
+#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218)
+#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219)
+#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220)
+#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221)
enum v4l2_mpeg_video_multi_slice_mode {
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1,
@@ -419,25 +400,24 @@ enum v4l2_mpeg_video_multi_slice_mode {
V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
#endif
};
-#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_CODEC_BASE+222)
-#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_CODEC_BASE+223)
-#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_CODEC_BASE+224)
-#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_CODEC_BASE+225)
-#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_CODEC_BASE+226)
-#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_CODEC_BASE+227)
-#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228)
-#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229)
-#define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE+230)
+#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222)
+#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
+#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224)
+#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225)
+#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226)
+#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227)
+#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228)
+#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229)
/* CIDs for the MPEG-2 Part 2 (H.262) codec */
-#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270)
+#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270)
enum v4l2_mpeg_video_mpeg2_level {
V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1,
V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2,
V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3,
};
-#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_CODEC_BASE+271)
+#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE+271)
enum v4l2_mpeg_video_mpeg2_profile {
V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0,
V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1,
@@ -448,28 +428,28 @@ enum v4l2_mpeg_video_mpeg2_profile {
};
/* CIDs for the FWHT codec as used by the vicodec driver. */
-#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_CODEC_BASE + 290)
-#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_CODEC_BASE + 291)
-
-#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_CODEC_BASE+300)
-#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_CODEC_BASE+301)
-#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_CODEC_BASE+302)
-#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_CODEC_BASE+303)
-#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_CODEC_BASE+304)
-#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_CODEC_BASE+350)
-#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_CODEC_BASE+351)
-#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_CODEC_BASE+352)
-#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_CODEC_BASE+353)
-#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_CODEC_BASE+354)
-#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_CODEC_BASE+355)
-#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_CODEC_BASE+356)
-#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_CODEC_BASE+357)
+#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290)
+#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291)
+
+#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
+#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
+#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302)
+#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303)
+#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304)
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350)
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351)
+#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352)
+#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353)
+#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354)
+#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355)
+#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356)
+#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357)
enum v4l2_mpeg_video_h264_entropy_mode {
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0,
V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1,
};
-#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_CODEC_BASE+358)
-#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_CODEC_BASE+359)
+#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358)
+#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359)
enum v4l2_mpeg_video_h264_level {
V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0,
V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1,
@@ -487,20 +467,16 @@ enum v4l2_mpeg_video_h264_level {
V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13,
V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14,
V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15,
- V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16,
- V4L2_MPEG_VIDEO_H264_LEVEL_6_0 = 17,
- V4L2_MPEG_VIDEO_H264_LEVEL_6_1 = 18,
- V4L2_MPEG_VIDEO_H264_LEVEL_6_2 = 19,
-};
-#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_CODEC_BASE+360)
-#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_CODEC_BASE+361)
-#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE+362)
+};
+#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360)
+#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361)
+#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362)
enum v4l2_mpeg_video_h264_loop_filter_mode {
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0,
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1,
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
};
-#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_CODEC_BASE+363)
+#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363)
enum v4l2_mpeg_video_h264_profile {
V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0,
V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1,
@@ -519,12 +495,11 @@ enum v4l2_mpeg_video_h264_profile {
V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14,
V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15,
V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16,
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17,
};
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_CODEC_BASE+364)
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_CODEC_BASE+365)
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_CODEC_BASE+366)
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_CODEC_BASE+367)
+#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364)
+#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365)
+#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366)
+#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367)
enum v4l2_mpeg_video_h264_vui_sar_idc {
V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0,
V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1,
@@ -545,9 +520,9 @@ enum v4l2_mpeg_video_h264_vui_sar_idc {
V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16,
V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17,
};
-#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_CODEC_BASE+368)
-#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_CODEC_BASE+369)
-#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_CODEC_BASE+370)
+#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368)
+#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369)
+#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370)
enum v4l2_mpeg_video_h264_sei_fp_arrangement_type {
V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0,
V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1,
@@ -556,8 +531,8 @@ enum v4l2_mpeg_video_h264_sei_fp_arrangement_type {
V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4,
V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5,
};
-#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_CODEC_BASE+371)
-#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_CODEC_BASE+372)
+#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371)
+#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372)
enum v4l2_mpeg_video_h264_fmo_map_type {
V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0,
V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1,
@@ -567,45 +542,36 @@ enum v4l2_mpeg_video_h264_fmo_map_type {
V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5,
V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6,
};
-#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_CODEC_BASE+373)
-#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_CODEC_BASE+374)
+#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373)
+#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374)
enum v4l2_mpeg_video_h264_fmo_change_dir {
V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0,
V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1,
};
-#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_CODEC_BASE+375)
-#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_CODEC_BASE+376)
-#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_CODEC_BASE+377)
-#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_CODEC_BASE+378)
-#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_CODEC_BASE+379)
-#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_CODEC_BASE+380)
+#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375)
+#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376)
+#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377)
+#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378)
+#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379)
+#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380)
enum v4l2_mpeg_video_h264_hierarchical_coding_type {
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0,
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1,
};
-#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_CODEC_BASE+381)
-#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_CODEC_BASE+382)
-#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_CODEC_BASE+383)
-#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_CODEC_BASE+384)
-#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+385)
-#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+386)
-#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+387)
-#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+388)
-#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+389)
-#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+390)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE+391)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE+392)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE+393)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE+394)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE+395)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE+396)
-#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE+397)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_CODEC_BASE+400)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_CODEC_BASE+401)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_CODEC_BASE+402)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_CODEC_BASE+403)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_CODEC_BASE+404)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_CODEC_BASE+405)
+#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381)
+#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382)
+#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383)
+#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384)
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385)
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386)
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387)
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405)
enum v4l2_mpeg_video_mpeg4_level {
V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0,
V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1,
@@ -616,7 +582,7 @@ enum v4l2_mpeg_video_mpeg4_level {
V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6,
V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7,
};
-#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_CODEC_BASE+406)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406)
enum v4l2_mpeg_video_mpeg4_profile {
V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0,
V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1,
@@ -624,40 +590,40 @@ enum v4l2_mpeg_video_mpeg4_profile {
V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3,
V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4,
};
-#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_CODEC_BASE+407)
+#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407)
/* Control IDs for VP8 streams
* Although VP8 is not part of MPEG we add these controls to the MPEG class
* as that class is already handling other video compression standards
*/
-#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_CODEC_BASE+500)
+#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500)
enum v4l2_vp8_num_partitions {
V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0,
V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1,
V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2,
V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3,
};
-#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_CODEC_BASE+501)
-#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_CODEC_BASE+502)
+#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501)
+#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502)
enum v4l2_vp8_num_ref_frames {
V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0,
V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1,
V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2,
};
-#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_CODEC_BASE+503)
-#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_CODEC_BASE+504)
-#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_CODEC_BASE+505)
-#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_CODEC_BASE+506)
+#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503)
+#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504)
+#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505)
+#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506)
enum v4l2_vp8_golden_frame_sel {
V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0,
V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1,
};
-#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_CODEC_BASE+507)
-#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_CODEC_BASE+508)
-#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_CODEC_BASE+509)
-#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_CODEC_BASE+510)
+#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507)
+#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
+#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
+#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
-#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_CODEC_BASE+511)
+#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511)
enum v4l2_mpeg_video_vp8_profile {
V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0,
V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1,
@@ -666,59 +632,42 @@ enum v4l2_mpeg_video_vp8_profile {
};
/* Deprecated alias for compatibility reasons. */
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
-#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_CODEC_BASE+512)
+#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512)
enum v4l2_mpeg_video_vp9_profile {
V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
};
-#define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_CODEC_BASE+513)
-enum v4l2_mpeg_video_vp9_level {
- V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0,
- V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1,
- V4L2_MPEG_VIDEO_VP9_LEVEL_2_0 = 2,
- V4L2_MPEG_VIDEO_VP9_LEVEL_2_1 = 3,
- V4L2_MPEG_VIDEO_VP9_LEVEL_3_0 = 4,
- V4L2_MPEG_VIDEO_VP9_LEVEL_3_1 = 5,
- V4L2_MPEG_VIDEO_VP9_LEVEL_4_0 = 6,
- V4L2_MPEG_VIDEO_VP9_LEVEL_4_1 = 7,
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_0 = 8,
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_1 = 9,
- V4L2_MPEG_VIDEO_VP9_LEVEL_5_2 = 10,
- V4L2_MPEG_VIDEO_VP9_LEVEL_6_0 = 11,
- V4L2_MPEG_VIDEO_VP9_LEVEL_6_1 = 12,
- V4L2_MPEG_VIDEO_VP9_LEVEL_6_2 = 13,
-};
/* CIDs for HEVC encoding. */
-#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_CODEC_BASE + 600)
-#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_CODEC_BASE + 601)
-#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_CODEC_BASE + 602)
-#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_CODEC_BASE + 603)
-#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_CODEC_BASE + 604)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_CODEC_BASE + 605)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_CODEC_BASE + 606)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
+#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
+#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
+#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
enum v4l2_mpeg_video_hevc_hier_coding_type {
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_CODEC_BASE + 607)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_CODEC_BASE + 608)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_CODEC_BASE + 609)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_CODEC_BASE + 610)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_CODEC_BASE + 611)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_CODEC_BASE + 612)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_CODEC_BASE + 613)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_CODEC_BASE + 614)
-#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_CODEC_BASE + 615)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
+#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
enum v4l2_mpeg_video_hevc_profile {
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_CODEC_BASE + 616)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
enum v4l2_mpeg_video_hevc_level {
V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
@@ -734,78 +683,64 @@ enum v4l2_mpeg_video_hevc_level {
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_CODEC_BASE + 617)
-#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_CODEC_BASE + 618)
+#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
+#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
enum v4l2_mpeg_video_hevc_tier {
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_CODEC_BASE + 619)
-#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE + 620)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 621)
-#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 622)
-#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_CODEC_BASE + 623)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
+#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
enum v4l2_cid_mpeg_video_hevc_refresh_type {
V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 624)
-#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_CODEC_BASE + 625)
-#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_CODEC_BASE + 626)
-#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_CODEC_BASE + 627)
-#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_CODEC_BASE + 628)
-#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_CODEC_BASE + 629)
-#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_CODEC_BASE + 630)
-#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_CODEC_BASE + 631)
-#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_CODEC_BASE + 632)
-#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_CODEC_BASE + 633)
-#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_CODEC_BASE + 634)
-#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_CODEC_BASE + 635)
+#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
+#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
+#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
+#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
+#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
+#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
+#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
+#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
+#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
+#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
};
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE + 636)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE + 637)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE + 638)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE + 639)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE + 640)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE + 641)
-#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE + 642)
-#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_CODEC_BASE + 643)
-#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_CODEC_BASE + 644)
-#define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_CODEC_BASE + 645)
-#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_BASE + 646)
-enum v4l2_mpeg_video_frame_skip_mode {
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
- V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
-};
-
-#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 647)
-#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 648)
-#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 649)
-#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
-#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
-#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
+#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
+#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
-#define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0)
+#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0,
V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,
};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+1)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+2)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0,
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
@@ -813,18 +748,18 @@ enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3,
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,
};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+3)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type {
V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0,
V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+4)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
enum v4l2_mpeg_cx2341x_video_temporal_filter_mode {
V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0,
V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,
};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+5)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+6)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
enum v4l2_mpeg_cx2341x_video_median_filter_type {
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0,
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1,
@@ -832,38 +767,38 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type {
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3,
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,
};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+7)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+8)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+9)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+10)
-#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_CODEC_CX2341X_BASE+11)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)
+#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
+#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */
-#define V4L2_CID_CODEC_MFC51_BASE (V4L2_CTRL_CLASS_CODEC | 0x1100)
+#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
-#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_CODEC_MFC51_BASE+0)
-#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_MFC51_BASE+1)
-#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_MFC51_BASE+2)
+#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0)
+#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1)
+#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2)
enum v4l2_mpeg_mfc51_video_frame_skip_mode {
V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
};
-#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_CODEC_MFC51_BASE+3)
+#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3)
enum v4l2_mpeg_mfc51_video_force_frame_type {
V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0,
V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1,
V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2,
};
-#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_CODEC_MFC51_BASE+4)
-#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_CODEC_MFC51_BASE+5)
-#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_CODEC_MFC51_BASE+6)
-#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_CODEC_MFC51_BASE+7)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_CODEC_MFC51_BASE+50)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_CODEC_MFC51_BASE+51)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_CODEC_MFC51_BASE+52)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_CODEC_MFC51_BASE+53)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_CODEC_MFC51_BASE+54)
+#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4)
+#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5)
+#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6)
+#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7)
+#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50)
+#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51)
+#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52)
+#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
+#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
/* Camera class control IDs */
@@ -977,13 +912,6 @@ enum v4l2_auto_focus_range {
#define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
#define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
-#define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34)
-#define V4L2_CAMERA_ORIENTATION_FRONT 0
-#define V4L2_CAMERA_ORIENTATION_BACK 1
-#define V4L2_CAMERA_ORIENTATION_EXTERNAL 2
-
-#define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35)
-
/* FM Modulator class control IDs */
#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
@@ -1200,470 +1128,4 @@ enum v4l2_detect_md_mode {
#define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
#define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
-
-/* Stateless CODECs controls */
-#define V4L2_CID_CODEC_STATELESS_BASE (V4L2_CTRL_CLASS_CODEC_STATELESS | 0x900)
-#define V4L2_CID_CODEC_STATELESS_CLASS (V4L2_CTRL_CLASS_CODEC_STATELESS | 1)
-
-#define V4L2_CID_STATELESS_H264_DECODE_MODE (V4L2_CID_CODEC_STATELESS_BASE + 0)
-/**
- * enum v4l2_stateless_h264_decode_mode - Decoding mode
- *
- * @V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED: indicates that decoding
- * is performed one slice at a time. In this mode,
- * V4L2_CID_STATELESS_H264_SLICE_PARAMS must contain the parsed slice
- * parameters and the OUTPUT buffer must contain a single slice.
- * V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF feature is used
- * in order to support multislice frames.
- * @V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED: indicates that
- * decoding is performed per frame. The OUTPUT buffer must contain
- * all slices and also both fields. This mode is typically supported
- * by device drivers that are able to parse the slice(s) header(s)
- * in hardware. When this mode is selected,
- * V4L2_CID_STATELESS_H264_SLICE_PARAMS is not used.
- */
-enum v4l2_stateless_h264_decode_mode {
- V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED,
- V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED,
-};
-
-#define V4L2_CID_STATELESS_H264_START_CODE (V4L2_CID_CODEC_STATELESS_BASE + 1)
-/**
- * enum v4l2_stateless_h264_start_code - Start code
- *
- * @V4L2_STATELESS_H264_START_CODE_NONE: slices are passed
- * to the driver without any start code.
- * @V4L2_STATELESS_H264_START_CODE_ANNEX_B: slices are passed
- * to the driver with an Annex B start code prefix
- * (legal start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001).
- * This mode is typically supported by device drivers that parse
- * the start code in hardware.
- */
-enum v4l2_stateless_h264_start_code {
- V4L2_STATELESS_H264_START_CODE_NONE,
- V4L2_STATELESS_H264_START_CODE_ANNEX_B,
-};
-
-#define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01
-#define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02
-#define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04
-#define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08
-#define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10
-#define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20
-
-#define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01
-#define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02
-#define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04
-#define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08
-#define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10
-#define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20
-#define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40
-
-#define V4L2_H264_SPS_HAS_CHROMA_FORMAT(sps) \
- ((sps)->profile_idc == 100 || (sps)->profile_idc == 110 || \
- (sps)->profile_idc == 122 || (sps)->profile_idc == 244 || \
- (sps)->profile_idc == 44 || (sps)->profile_idc == 83 || \
- (sps)->profile_idc == 86 || (sps)->profile_idc == 118 || \
- (sps)->profile_idc == 128 || (sps)->profile_idc == 138 || \
- (sps)->profile_idc == 139 || (sps)->profile_idc == 134 || \
- (sps)->profile_idc == 135)
-
-#define V4L2_CID_STATELESS_H264_SPS (V4L2_CID_CODEC_STATELESS_BASE + 2)
-/**
- * struct v4l2_ctrl_h264_sps - H264 sequence parameter set
- *
- * All the members on this sequence parameter set structure match the
- * sequence parameter set syntax as specified by the H264 specification.
- *
- * @profile_idc: see H264 specification.
- * @constraint_set_flags: see H264 specification.
- * @level_idc: see H264 specification.
- * @seq_parameter_set_id: see H264 specification.
- * @chroma_format_idc: see H264 specification.
- * @bit_depth_luma_minus8: see H264 specification.
- * @bit_depth_chroma_minus8: see H264 specification.
- * @log2_max_frame_num_minus4: see H264 specification.
- * @pic_order_cnt_type: see H264 specification.
- * @log2_max_pic_order_cnt_lsb_minus4: see H264 specification.
- * @max_num_ref_frames: see H264 specification.
- * @num_ref_frames_in_pic_order_cnt_cycle: see H264 specification.
- * @offset_for_ref_frame: see H264 specification.
- * @offset_for_non_ref_pic: see H264 specification.
- * @offset_for_top_to_bottom_field: see H264 specification.
- * @pic_width_in_mbs_minus1: see H264 specification.
- * @pic_height_in_map_units_minus1: see H264 specification.
- * @flags: see V4L2_H264_SPS_FLAG_{}.
- */
-struct v4l2_ctrl_h264_sps {
- __u8 profile_idc;
- __u8 constraint_set_flags;
- __u8 level_idc;
- __u8 seq_parameter_set_id;
- __u8 chroma_format_idc;
- __u8 bit_depth_luma_minus8;
- __u8 bit_depth_chroma_minus8;
- __u8 log2_max_frame_num_minus4;
- __u8 pic_order_cnt_type;
- __u8 log2_max_pic_order_cnt_lsb_minus4;
- __u8 max_num_ref_frames;
- __u8 num_ref_frames_in_pic_order_cnt_cycle;
- __s32 offset_for_ref_frame[255];
- __s32 offset_for_non_ref_pic;
- __s32 offset_for_top_to_bottom_field;
- __u16 pic_width_in_mbs_minus1;
- __u16 pic_height_in_map_units_minus1;
- __u32 flags;
-};
-
-#define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001
-#define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002
-#define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004
-#define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008
-#define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010
-#define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020
-#define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040
-#define V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT 0x0080
-
-#define V4L2_CID_STATELESS_H264_PPS (V4L2_CID_CODEC_STATELESS_BASE + 3)
-/**
- * struct v4l2_ctrl_h264_pps - H264 picture parameter set
- *
- * Except where noted, all the members on this picture parameter set
- * structure match the sequence parameter set syntax as specified
- * by the H264 specification.
- *
- * In particular, V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag
- * has a specific meaning. This flag should be set if a non-flat
- * scaling matrix applies to the picture. In this case, applications
- * are expected to use V4L2_CID_STATELESS_H264_SCALING_MATRIX,
- * to pass the values of the non-flat matrices.
- *
- * @pic_parameter_set_id: see H264 specification.
- * @seq_parameter_set_id: see H264 specification.
- * @num_slice_groups_minus1: see H264 specification.
- * @num_ref_idx_l0_default_active_minus1: see H264 specification.
- * @num_ref_idx_l1_default_active_minus1: see H264 specification.
- * @weighted_bipred_idc: see H264 specification.
- * @pic_init_qp_minus26: see H264 specification.
- * @pic_init_qs_minus26: see H264 specification.
- * @chroma_qp_index_offset: see H264 specification.
- * @second_chroma_qp_index_offset: see H264 specification.
- * @flags: see V4L2_H264_PPS_FLAG_{}.
- */
-struct v4l2_ctrl_h264_pps {
- __u8 pic_parameter_set_id;
- __u8 seq_parameter_set_id;
- __u8 num_slice_groups_minus1;
- __u8 num_ref_idx_l0_default_active_minus1;
- __u8 num_ref_idx_l1_default_active_minus1;
- __u8 weighted_bipred_idc;
- __s8 pic_init_qp_minus26;
- __s8 pic_init_qs_minus26;
- __s8 chroma_qp_index_offset;
- __s8 second_chroma_qp_index_offset;
- __u16 flags;
-};
-
-#define V4L2_CID_STATELESS_H264_SCALING_MATRIX (V4L2_CID_CODEC_STATELESS_BASE + 4)
-/**
- * struct v4l2_ctrl_h264_scaling_matrix - H264 scaling matrices
- *
- * @scaling_list_4x4: scaling matrix after applying the inverse
- * scanning process. Expected list order is Intra Y, Intra Cb,
- * Intra Cr, Inter Y, Inter Cb, Inter Cr. The values on each
- * scaling list are expected in raster scan order.
- * @scaling_list_8x8: scaling matrix after applying the inverse
- * scanning process. Expected list order is Intra Y, Inter Y,
- * Intra Cb, Inter Cb, Intra Cr, Inter Cr. The values on each
- * scaling list are expected in raster scan order.
- *
- * Note that the list order is different for the 4x4 and 8x8
- * matrices as per the H264 specification, see table 7-2 "Assignment
- * of mnemonic names to scaling list indices and specification of
- * fall-back rule".
- */
-struct v4l2_ctrl_h264_scaling_matrix {
- __u8 scaling_list_4x4[6][16];
- __u8 scaling_list_8x8[6][64];
-};
-
-struct v4l2_h264_weight_factors {
- __s16 luma_weight[32];
- __s16 luma_offset[32];
- __s16 chroma_weight[32][2];
- __s16 chroma_offset[32][2];
-};
-
-#define V4L2_H264_CTRL_PRED_WEIGHTS_REQUIRED(pps, slice) \
- ((((pps)->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) && \
- ((slice)->slice_type == V4L2_H264_SLICE_TYPE_P || \
- (slice)->slice_type == V4L2_H264_SLICE_TYPE_SP)) || \
- ((pps)->weighted_bipred_idc == 1 && \
- (slice)->slice_type == V4L2_H264_SLICE_TYPE_B))
-
-#define V4L2_CID_STATELESS_H264_PRED_WEIGHTS (V4L2_CID_CODEC_STATELESS_BASE + 5)
-/**
- * struct v4l2_ctrl_h264_pred_weights - Prediction weight table
- *
- * Prediction weight table, which matches the syntax specified
- * by the H264 specification.
- *
- * @luma_log2_weight_denom: see H264 specification.
- * @chroma_log2_weight_denom: see H264 specification.
- * @weight_factors: luma and chroma weight factors.
- */
-struct v4l2_ctrl_h264_pred_weights {
- __u16 luma_log2_weight_denom;
- __u16 chroma_log2_weight_denom;
- struct v4l2_h264_weight_factors weight_factors[2];
-};
-
-#define V4L2_H264_SLICE_TYPE_P 0
-#define V4L2_H264_SLICE_TYPE_B 1
-#define V4L2_H264_SLICE_TYPE_I 2
-#define V4L2_H264_SLICE_TYPE_SP 3
-#define V4L2_H264_SLICE_TYPE_SI 4
-
-#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01
-#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02
-
-#define V4L2_H264_TOP_FIELD_REF 0x1
-#define V4L2_H264_BOTTOM_FIELD_REF 0x2
-#define V4L2_H264_FRAME_REF 0x3
-
-/**
- * struct v4l2_h264_reference - H264 picture reference
- *
- * @fields: indicates how the picture is referenced.
- * Valid values are V4L2_H264_{}_REF.
- * @index: index into v4l2_ctrl_h264_decode_params.dpb[].
- */
-struct v4l2_h264_reference {
- __u8 fields;
- __u8 index;
-};
-
-/*
- * Maximum DPB size, as specified by section 'A.3.1 Level limits
- * common to the Baseline, Main, and Extended profiles'.
- */
-#define V4L2_H264_NUM_DPB_ENTRIES 16
-#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES)
-
-#define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6)
-/**
- * struct v4l2_ctrl_h264_slice_params - H264 slice parameters
- *
- * This structure holds the H264 syntax elements that are specified
- * as non-invariant for the slices in a given frame.
- *
- * Slice invariant syntax elements are contained in struct
- * v4l2_ctrl_h264_decode_params. This is done to reduce the API surface
- * on frame-based decoders, where slice header parsing is done by the
- * hardware.
- *
- * Slice invariant syntax elements are specified in specification section
- * "7.4.3 Slice header semantics".
- *
- * Except where noted, the members on this struct match the slice header syntax.
- *
- * @header_bit_size: offset in bits to slice_data() from the beginning of this slice.
- * @first_mb_in_slice: see H264 specification.
- * @slice_type: see H264 specification.
- * @colour_plane_id: see H264 specification.
- * @redundant_pic_cnt: see H264 specification.
- * @cabac_init_idc: see H264 specification.
- * @slice_qp_delta: see H264 specification.
- * @slice_qs_delta: see H264 specification.
- * @disable_deblocking_filter_idc: see H264 specification.
- * @slice_alpha_c0_offset_div2: see H264 specification.
- * @slice_beta_offset_div2: see H264 specification.
- * @num_ref_idx_l0_active_minus1: see H264 specification.
- * @num_ref_idx_l1_active_minus1: see H264 specification.
- * @reserved: padding field. Should be zeroed by applications.
- * @ref_pic_list0: reference picture list 0 after applying the per-slice modifications.
- * @ref_pic_list1: reference picture list 1 after applying the per-slice modifications.
- * @flags: see V4L2_H264_SLICE_FLAG_{}.
- */
-struct v4l2_ctrl_h264_slice_params {
- __u32 header_bit_size;
- __u32 first_mb_in_slice;
- __u8 slice_type;
- __u8 colour_plane_id;
- __u8 redundant_pic_cnt;
- __u8 cabac_init_idc;
- __s8 slice_qp_delta;
- __s8 slice_qs_delta;
- __u8 disable_deblocking_filter_idc;
- __s8 slice_alpha_c0_offset_div2;
- __s8 slice_beta_offset_div2;
- __u8 num_ref_idx_l0_active_minus1;
- __u8 num_ref_idx_l1_active_minus1;
-
- __u8 reserved;
-
- struct v4l2_h264_reference ref_pic_list0[V4L2_H264_REF_LIST_LEN];
- struct v4l2_h264_reference ref_pic_list1[V4L2_H264_REF_LIST_LEN];
-
- __u32 flags;
-};
-
-#define V4L2_H264_DPB_ENTRY_FLAG_VALID 0x01
-#define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x02
-#define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x04
-#define V4L2_H264_DPB_ENTRY_FLAG_FIELD 0x08
-
-/**
- * struct v4l2_h264_dpb_entry - H264 decoded picture buffer entry
- *
- * @reference_ts: timestamp of the V4L2 capture buffer to use as reference.
- * The timestamp refers to the timestamp field in struct v4l2_buffer.
- * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
- * @pic_num: matches PicNum variable assigned during the reference
- * picture lists construction process.
- * @frame_num: frame identifier which matches frame_num syntax element.
- * @fields: indicates how the DPB entry is referenced. Valid values are
- * V4L2_H264_{}_REF.
- * @reserved: padding field. Should be zeroed by applications.
- * @top_field_order_cnt: matches TopFieldOrderCnt picture value.
- * @bottom_field_order_cnt: matches BottomFieldOrderCnt picture value.
- * Note that picture field is indicated by v4l2_buffer.field.
- * @flags: see V4L2_H264_DPB_ENTRY_FLAG_{}.
- */
-struct v4l2_h264_dpb_entry {
- __u64 reference_ts;
- __u32 pic_num;
- __u16 frame_num;
- __u8 fields;
- __u8 reserved[5];
- __s32 top_field_order_cnt;
- __s32 bottom_field_order_cnt;
- __u32 flags;
-};
-
-#define V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC 0x01
-#define V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC 0x02
-#define V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD 0x04
-
-#define V4L2_CID_STATELESS_H264_DECODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 7)
-/**
- * struct v4l2_ctrl_h264_decode_params - H264 decoding parameters
- *
- * @dpb: decoded picture buffer.
- * @nal_ref_idc: slice header syntax element.
- * @frame_num: slice header syntax element.
- * @top_field_order_cnt: matches TopFieldOrderCnt picture value.
- * @bottom_field_order_cnt: matches BottomFieldOrderCnt picture value.
- * Note that picture field is indicated by v4l2_buffer.field.
- * @idr_pic_id: slice header syntax element.
- * @pic_order_cnt_lsb: slice header syntax element.
- * @delta_pic_order_cnt_bottom: slice header syntax element.
- * @delta_pic_order_cnt0: slice header syntax element.
- * @delta_pic_order_cnt1: slice header syntax element.
- * @dec_ref_pic_marking_bit_size: size in bits of dec_ref_pic_marking()
- * syntax element.
- * @pic_order_cnt_bit_size: size in bits of pic order count syntax.
- * @slice_group_change_cycle: slice header syntax element.
- * @reserved: padding field. Should be zeroed by applications.
- * @flags: see V4L2_H264_DECODE_PARAM_FLAG_{}.
- */
-struct v4l2_ctrl_h264_decode_params {
- struct v4l2_h264_dpb_entry dpb[V4L2_H264_NUM_DPB_ENTRIES];
- __u16 nal_ref_idc;
- __u16 frame_num;
- __s32 top_field_order_cnt;
- __s32 bottom_field_order_cnt;
- __u16 idr_pic_id;
- __u16 pic_order_cnt_lsb;
- __s32 delta_pic_order_cnt_bottom;
- __s32 delta_pic_order_cnt0;
- __s32 delta_pic_order_cnt1;
- __u32 dec_ref_pic_marking_bit_size;
- __u32 pic_order_cnt_bit_size;
- __u32 slice_group_change_cycle;
-
- __u32 reserved;
- __u32 flags;
-};
-
-
-/* Stateless FWHT control, used by the vicodec driver */
-
-/* Current FWHT version */
-#define V4L2_FWHT_VERSION 3
-
-/* Set if this is an interlaced format */
-#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
-/* Set if this is a bottom-first (NTSC) interlaced format */
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
-/* Set if each 'frame' contains just one field */
-#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
-/*
- * If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this
- * 'frame' is the bottom field, else it is the top field.
- */
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
-/* Set if the Y' plane is uncompressed */
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
-/* Set if the Cb plane is uncompressed */
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
-/* Set if the Cr plane is uncompressed */
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
-/* Set if the chroma plane is full height, if cleared it is half height */
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
-/* Set if the chroma plane is full width, if cleared it is half width */
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
-/* Set if the alpha plane is uncompressed */
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
-/* Set if this is an I Frame */
-#define V4L2_FWHT_FL_I_FRAME BIT(10)
-
-/* A 4-values flag - the number of components - 1 */
-#define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
-#define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
-
-/* A 4-values flag - the pixel encoding type */
-#define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
-#define V4L2_FWHT_FL_PIXENC_OFFSET 19
-#define V4L2_FWHT_FL_PIXENC_YUV (1 << V4L2_FWHT_FL_PIXENC_OFFSET)
-#define V4L2_FWHT_FL_PIXENC_RGB (2 << V4L2_FWHT_FL_PIXENC_OFFSET)
-#define V4L2_FWHT_FL_PIXENC_HSV (3 << V4L2_FWHT_FL_PIXENC_OFFSET)
-
-#define V4L2_CID_STATELESS_FWHT_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 100)
-/**
- * struct v4l2_ctrl_fwht_params - FWHT parameters
- *
- * @backward_ref_ts: timestamp of the V4L2 capture buffer to use as reference.
- * The timestamp refers to the timestamp field in struct v4l2_buffer.
- * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
- * @version: must be V4L2_FWHT_VERSION.
- * @width: width of frame.
- * @height: height of frame.
- * @flags: FWHT flags (see V4L2_FWHT_FL_*).
- * @colorspace: the colorspace (enum v4l2_colorspace).
- * @xfer_func: the transfer function (enum v4l2_xfer_func).
- * @ycbcr_enc: the Y'CbCr encoding (enum v4l2_ycbcr_encoding).
- * @quantization: the quantization (enum v4l2_quantization).
- */
-struct v4l2_ctrl_fwht_params {
- __u64 backward_ref_ts;
- __u32 version;
- __u32 width;
- __u32 height;
- __u32 flags;
- __u32 colorspace;
- __u32 xfer_func;
- __u32 ycbcr_enc;
- __u32 quantization;
-};
-
-/* MPEG-compression definitions kept for backwards compatibility */
-#ifndef __KERNEL__
-#define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
-#define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
-#define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
-#define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE
-#define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE
-#endif
-
#endif
diff --git a/original/uapi/linux/v4l2-mediabus.h b/original/uapi/linux/v4l2-mediabus.h
index 903e67b..123a231 100644
--- a/original/uapi/linux/v4l2-mediabus.h
+++ b/original/uapi/linux/v4l2-mediabus.h
@@ -16,8 +16,6 @@
#include <linux/types.h>
#include <linux/videodev2.h>
-#define V4L2_MBUS_FRAMEFMT_SET_CSC 0x0001
-
/**
* struct v4l2_mbus_framefmt - frame format on the media bus
* @width: image width
@@ -26,11 +24,8 @@
* @field: used interlacing type (from enum v4l2_field)
* @colorspace: colorspace of the data (from enum v4l2_colorspace)
* @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding)
- * @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding)
* @quantization: quantization of the data (from enum v4l2_quantization)
* @xfer_func: transfer function of the data (from enum v4l2_xfer_func)
- * @flags: flags (V4L2_MBUS_FRAMEFMT_*)
- * @reserved: reserved bytes that can be later used
*/
struct v4l2_mbus_framefmt {
__u32 width;
@@ -38,16 +33,10 @@ struct v4l2_mbus_framefmt {
__u32 code;
__u32 field;
__u32 colorspace;
- union {
- /* enum v4l2_ycbcr_encoding */
- __u16 ycbcr_enc;
- /* enum v4l2_hsv_encoding */
- __u16 hsv_enc;
- };
+ __u16 ycbcr_enc;
__u16 quantization;
__u16 xfer_func;
- __u16 flags;
- __u16 reserved[10];
+ __u16 reserved[11];
};
#ifndef __KERNEL__
diff --git a/original/uapi/linux/v4l2-subdev.h b/original/uapi/linux/v4l2-subdev.h
index a38454d..03970ce 100644
--- a/original/uapi/linux/v4l2-subdev.h
+++ b/original/uapi/linux/v4l2-subdev.h
@@ -65,27 +65,19 @@ struct v4l2_subdev_crop {
__u32 reserved[8];
};
-#define V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE 0x00000001
-#define V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC 0x00000002
-#define V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC 0x00000004
-#define V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC
-#define V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION 0x00000008
-
/**
* struct v4l2_subdev_mbus_code_enum - Media bus format enumeration
* @pad: pad number, as reported by the media API
* @index: format index during enumeration
* @code: format code (MEDIA_BUS_FMT_ definitions)
* @which: format type (from enum v4l2_subdev_format_whence)
- * @flags: flags set by the driver, (V4L2_SUBDEV_MBUS_CODE_*)
*/
struct v4l2_subdev_mbus_code_enum {
__u32 pad;
__u32 index;
__u32 code;
__u32 which;
- __u32 flags;
- __u32 reserved[7];
+ __u32 reserved[8];
};
/**
@@ -163,25 +155,9 @@ struct v4l2_subdev_selection {
__u32 reserved[8];
};
-/**
- * struct v4l2_subdev_capability - subdev capabilities
- * @version: the driver versioning number
- * @capabilities: the subdev capabilities, see V4L2_SUBDEV_CAP_*
- * @reserved: for future use, set to zero for now
- */
-struct v4l2_subdev_capability {
- __u32 version;
- __u32 capabilities;
- __u32 reserved[14];
-};
-
-/* The v4l2 sub-device video device node is registered in read-only mode. */
-#define V4L2_SUBDEV_CAP_RO_SUBDEV 0x00000001
-
/* Backwards compatibility define --- to be removed */
#define v4l2_subdev_edid v4l2_edid
-#define VIDIOC_SUBDEV_QUERYCAP _IOR('V', 0, struct v4l2_subdev_capability)
#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format)
#define VIDIOC_SUBDEV_G_FRAME_INTERVAL _IOWR('V', 21, struct v4l2_subdev_frame_interval)
diff --git a/original/uapi/linux/vbox_vmmdev_types.h b/original/uapi/linux/vbox_vmmdev_types.h
index f8a8d6b..c27289f 100644
--- a/original/uapi/linux/vbox_vmmdev_types.h
+++ b/original/uapi/linux/vbox_vmmdev_types.h
@@ -63,7 +63,6 @@ enum vmmdev_request_type {
VMMDEVREQ_SET_GUEST_CAPABILITIES = 56,
VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */
VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */
- VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81,
VMMDEVREQ_HGCM_CONNECT = 60,
VMMDEVREQ_HGCM_DISCONNECT = 61,
VMMDEVREQ_HGCM_CALL32 = 62,
@@ -93,8 +92,6 @@ enum vmmdev_request_type {
VMMDEVREQ_WRITE_COREDUMP = 218,
VMMDEVREQ_GUEST_HEARTBEAT = 219,
VMMDEVREQ_HEARTBEAT_CONFIGURE = 220,
- VMMDEVREQ_NT_BUG_CHECK = 221,
- VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222,
/* Ensure the enum is a 32 bit data-type */
VMMDEVREQ_SIZEHACK = 0x7fffffff
};
diff --git a/original/uapi/linux/vboxguest.h b/original/uapi/linux/vboxguest.h
index 15125f6..9cec58a 100644
--- a/original/uapi/linux/vboxguest.h
+++ b/original/uapi/linux/vboxguest.h
@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20);
/* IOCTL to perform a VMM Device request larger then 1KB. */
-#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3)
+#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
/** VBG_IOCTL_HGCM_CONNECT data structure. */
@@ -198,7 +198,7 @@ struct vbg_ioctl_log {
} u;
};
-#define VBG_IOCTL_LOG(s) _IO('V', 9)
+#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
/** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */
@@ -257,30 +257,6 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8);
_IOWR('V', 12, struct vbg_ioctl_change_filter)
-/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */
-struct vbg_ioctl_acquire_guest_caps {
- /** The header. */
- struct vbg_ioctl_hdr hdr;
- union {
- struct {
- /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */
- __u32 flags;
- /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */
- __u32 or_mask;
- /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */
- __u32 not_mask;
- } in;
- } u;
-};
-VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12);
-
-#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001
-#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001
-
-#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \
- _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps)
-
-
/** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */
struct vbg_ioctl_set_guest_caps {
/** The header. */
diff --git a/original/uapi/linux/vdpa.h b/original/uapi/linux/vdpa.h
deleted file mode 100644
index 66a41e4..0000000
--- a/original/uapi/linux/vdpa.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * vdpa device management interface
- * Copyright (c) 2020 Mellanox Technologies Ltd. All rights reserved.
- */
-
-#ifndef _UAPI_LINUX_VDPA_H_
-#define _UAPI_LINUX_VDPA_H_
-
-#define VDPA_GENL_NAME "vdpa"
-#define VDPA_GENL_VERSION 0x1
-
-enum vdpa_command {
- VDPA_CMD_UNSPEC,
- VDPA_CMD_MGMTDEV_NEW,
- VDPA_CMD_MGMTDEV_GET, /* can dump */
- VDPA_CMD_DEV_NEW,
- VDPA_CMD_DEV_DEL,
- VDPA_CMD_DEV_GET, /* can dump */
-};
-
-enum vdpa_attr {
- VDPA_ATTR_UNSPEC,
-
- /* bus name (optional) + dev name together make the parent device handle */
- VDPA_ATTR_MGMTDEV_BUS_NAME, /* string */
- VDPA_ATTR_MGMTDEV_DEV_NAME, /* string */
- VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES, /* u64 */
-
- VDPA_ATTR_DEV_NAME, /* string */
- VDPA_ATTR_DEV_ID, /* u32 */
- VDPA_ATTR_DEV_VENDOR_ID, /* u32 */
- VDPA_ATTR_DEV_MAX_VQS, /* u32 */
- VDPA_ATTR_DEV_MAX_VQ_SIZE, /* u16 */
-
- /* new attributes must be added above here */
- VDPA_ATTR_MAX,
-};
-
-#endif
diff --git a/original/uapi/linux/version.h b/original/uapi/linux/version.h
index 535b224..9004c23 100644
--- a/original/uapi/linux/version.h
+++ b/original/uapi/linux/version.h
@@ -1,5 +1,2 @@
-#define LINUX_VERSION_CODE 330752
-#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
-#define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 12
-#define LINUX_VERSION_SUBLEVEL 0
+#define LINUX_VERSION_CODE 328960
+#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
diff --git a/original/uapi/linux/vfio.h b/original/uapi/linux/vfio.h
index 8ce36c1..9e843a1 100644
--- a/original/uapi/linux/vfio.h
+++ b/original/uapi/linux/vfio.h
@@ -46,12 +46,6 @@
*/
#define VFIO_NOIOMMU_IOMMU 8
-/* Supports VFIO_DMA_UNMAP_FLAG_ALL */
-#define VFIO_UNMAP_ALL 9
-
-/* Supports the vaddr flag for DMA map and unmap */
-#define VFIO_UPDATE_VADDR 10
-
/*
* The IOCTL interface is designed for extensibility by embedding the
* structure length (argsz) and flags into structures passed between
@@ -207,11 +201,8 @@ struct vfio_device_info {
#define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */
#define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */
#define VFIO_DEVICE_FLAGS_AP (1 << 5) /* vfio-ap device */
-#define VFIO_DEVICE_FLAGS_FSL_MC (1 << 6) /* vfio-fsl-mc device */
-#define VFIO_DEVICE_FLAGS_CAPS (1 << 7) /* Info supports caps */
__u32 num_regions; /* Max region index + 1 */
__u32 num_irqs; /* Max IRQ index + 1 */
- __u32 cap_offset; /* Offset within info struct of first cap */
};
#define VFIO_DEVICE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 7)
@@ -227,15 +218,6 @@ struct vfio_device_info {
#define VFIO_DEVICE_API_CCW_STRING "vfio-ccw"
#define VFIO_DEVICE_API_AP_STRING "vfio-ap"
-/*
- * The following capabilities are unique to s390 zPCI devices. Their contents
- * are further-defined in vfio_zdev.h
- */
-#define VFIO_DEVICE_INFO_CAP_ZPCI_BASE 1
-#define VFIO_DEVICE_INFO_CAP_ZPCI_GROUP 2
-#define VFIO_DEVICE_INFO_CAP_ZPCI_UTIL 3
-#define VFIO_DEVICE_INFO_CAP_ZPCI_PFIP 4
-
/**
* VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8,
* struct vfio_region_info)
@@ -323,7 +305,6 @@ struct vfio_region_info_cap_type {
#define VFIO_REGION_TYPE_PCI_VENDOR_MASK (0xffff)
#define VFIO_REGION_TYPE_GFX (1)
#define VFIO_REGION_TYPE_CCW (2)
-#define VFIO_REGION_TYPE_MIGRATION (3)
/* sub-types for VFIO_REGION_TYPE_PCI_* */
@@ -397,235 +378,6 @@ struct vfio_region_gfx_edid {
/* sub-types for VFIO_REGION_TYPE_CCW */
#define VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD (1)
-#define VFIO_REGION_SUBTYPE_CCW_SCHIB (2)
-#define VFIO_REGION_SUBTYPE_CCW_CRW (3)
-
-/* sub-types for VFIO_REGION_TYPE_MIGRATION */
-#define VFIO_REGION_SUBTYPE_MIGRATION (1)
-
-/*
- * The structure vfio_device_migration_info is placed at the 0th offset of
- * the VFIO_REGION_SUBTYPE_MIGRATION region to get and set VFIO device related
- * migration information. Field accesses from this structure are only supported
- * at their native width and alignment. Otherwise, the result is undefined and
- * vendor drivers should return an error.
- *
- * device_state: (read/write)
- * - The user application writes to this field to inform the vendor driver
- * about the device state to be transitioned to.
- * - The vendor driver should take the necessary actions to change the
- * device state. After successful transition to a given state, the
- * vendor driver should return success on write(device_state, state)
- * system call. If the device state transition fails, the vendor driver
- * should return an appropriate -errno for the fault condition.
- * - On the user application side, if the device state transition fails,
- * that is, if write(device_state, state) returns an error, read
- * device_state again to determine the current state of the device from
- * the vendor driver.
- * - The vendor driver should return previous state of the device unless
- * the vendor driver has encountered an internal error, in which case
- * the vendor driver may report the device_state VFIO_DEVICE_STATE_ERROR.
- * - The user application must use the device reset ioctl to recover the
- * device from VFIO_DEVICE_STATE_ERROR state. If the device is
- * indicated to be in a valid device state by reading device_state, the
- * user application may attempt to transition the device to any valid
- * state reachable from the current state or terminate itself.
- *
- * device_state consists of 3 bits:
- * - If bit 0 is set, it indicates the _RUNNING state. If bit 0 is clear,
- * it indicates the _STOP state. When the device state is changed to
- * _STOP, driver should stop the device before write() returns.
- * - If bit 1 is set, it indicates the _SAVING state, which means that the
- * driver should start gathering device state information that will be
- * provided to the VFIO user application to save the device's state.
- * - If bit 2 is set, it indicates the _RESUMING state, which means that
- * the driver should prepare to resume the device. Data provided through
- * the migration region should be used to resume the device.
- * Bits 3 - 31 are reserved for future use. To preserve them, the user
- * application should perform a read-modify-write operation on this
- * field when modifying the specified bits.
- *
- * +------- _RESUMING
- * |+------ _SAVING
- * ||+----- _RUNNING
- * |||
- * 000b => Device Stopped, not saving or resuming
- * 001b => Device running, which is the default state
- * 010b => Stop the device & save the device state, stop-and-copy state
- * 011b => Device running and save the device state, pre-copy state
- * 100b => Device stopped and the device state is resuming
- * 101b => Invalid state
- * 110b => Error state
- * 111b => Invalid state
- *
- * State transitions:
- *
- * _RESUMING _RUNNING Pre-copy Stop-and-copy _STOP
- * (100b) (001b) (011b) (010b) (000b)
- * 0. Running or default state
- * |
- *
- * 1. Normal Shutdown (optional)
- * |------------------------------------->|
- *
- * 2. Save the state or suspend
- * |------------------------->|---------->|
- *
- * 3. Save the state during live migration
- * |----------->|------------>|---------->|
- *
- * 4. Resuming
- * |<---------|
- *
- * 5. Resumed
- * |--------->|
- *
- * 0. Default state of VFIO device is _RUNNING when the user application starts.
- * 1. During normal shutdown of the user application, the user application may
- * optionally change the VFIO device state from _RUNNING to _STOP. This
- * transition is optional. The vendor driver must support this transition but
- * must not require it.
- * 2. When the user application saves state or suspends the application, the
- * device state transitions from _RUNNING to stop-and-copy and then to _STOP.
- * On state transition from _RUNNING to stop-and-copy, driver must stop the
- * device, save the device state and send it to the application through the
- * migration region. The sequence to be followed for such transition is given
- * below.
- * 3. In live migration of user application, the state transitions from _RUNNING
- * to pre-copy, to stop-and-copy, and to _STOP.
- * On state transition from _RUNNING to pre-copy, the driver should start
- * gathering the device state while the application is still running and send
- * the device state data to application through the migration region.
- * On state transition from pre-copy to stop-and-copy, the driver must stop
- * the device, save the device state and send it to the user application
- * through the migration region.
- * Vendor drivers must support the pre-copy state even for implementations
- * where no data is provided to the user before the stop-and-copy state. The
- * user must not be required to consume all migration data before the device
- * transitions to a new state, including the stop-and-copy state.
- * The sequence to be followed for above two transitions is given below.
- * 4. To start the resuming phase, the device state should be transitioned from
- * the _RUNNING to the _RESUMING state.
- * In the _RESUMING state, the driver should use the device state data
- * received through the migration region to resume the device.
- * 5. After providing saved device data to the driver, the application should
- * change the state from _RESUMING to _RUNNING.
- *
- * reserved:
- * Reads on this field return zero and writes are ignored.
- *
- * pending_bytes: (read only)
- * The number of pending bytes still to be migrated from the vendor driver.
- *
- * data_offset: (read only)
- * The user application should read data_offset field from the migration
- * region. The user application should read the device data from this
- * offset within the migration region during the _SAVING state or write
- * the device data during the _RESUMING state. See below for details of
- * sequence to be followed.
- *
- * data_size: (read/write)
- * The user application should read data_size to get the size in bytes of
- * the data copied in the migration region during the _SAVING state and
- * write the size in bytes of the data copied in the migration region
- * during the _RESUMING state.
- *
- * The format of the migration region is as follows:
- * ------------------------------------------------------------------
- * |vfio_device_migration_info| data section |
- * | | /////////////////////////////// |
- * ------------------------------------------------------------------
- * ^ ^
- * offset 0-trapped part data_offset
- *
- * The structure vfio_device_migration_info is always followed by the data
- * section in the region, so data_offset will always be nonzero. The offset
- * from where the data is copied is decided by the kernel driver. The data
- * section can be trapped, mmapped, or partitioned, depending on how the kernel
- * driver defines the data section. The data section partition can be defined
- * as mapped by the sparse mmap capability. If mmapped, data_offset must be
- * page aligned, whereas initial section which contains the
- * vfio_device_migration_info structure, might not end at the offset, which is
- * page aligned. The user is not required to access through mmap regardless
- * of the capabilities of the region mmap.
- * The vendor driver should determine whether and how to partition the data
- * section. The vendor driver should return data_offset accordingly.
- *
- * The sequence to be followed while in pre-copy state and stop-and-copy state
- * is as follows:
- * a. Read pending_bytes, indicating the start of a new iteration to get device
- * data. Repeated read on pending_bytes at this stage should have no side
- * effects.
- * If pending_bytes == 0, the user application should not iterate to get data
- * for that device.
- * If pending_bytes > 0, perform the following steps.
- * b. Read data_offset, indicating that the vendor driver should make data
- * available through the data section. The vendor driver should return this
- * read operation only after data is available from (region + data_offset)
- * to (region + data_offset + data_size).
- * c. Read data_size, which is the amount of data in bytes available through
- * the migration region.
- * Read on data_offset and data_size should return the offset and size of
- * the current buffer if the user application reads data_offset and
- * data_size more than once here.
- * d. Read data_size bytes of data from (region + data_offset) from the
- * migration region.
- * e. Process the data.
- * f. Read pending_bytes, which indicates that the data from the previous
- * iteration has been read. If pending_bytes > 0, go to step b.
- *
- * The user application can transition from the _SAVING|_RUNNING
- * (pre-copy state) to the _SAVING (stop-and-copy) state regardless of the
- * number of pending bytes. The user application should iterate in _SAVING
- * (stop-and-copy) until pending_bytes is 0.
- *
- * The sequence to be followed while _RESUMING device state is as follows:
- * While data for this device is available, repeat the following steps:
- * a. Read data_offset from where the user application should write data.
- * b. Write migration data starting at the migration region + data_offset for
- * the length determined by data_size from the migration source.
- * c. Write data_size, which indicates to the vendor driver that data is
- * written in the migration region. Vendor driver must return this write
- * operations on consuming data. Vendor driver should apply the
- * user-provided migration region data to the device resume state.
- *
- * If an error occurs during the above sequences, the vendor driver can return
- * an error code for next read() or write() operation, which will terminate the
- * loop. The user application should then take the next necessary action, for
- * example, failing migration or terminating the user application.
- *
- * For the user application, data is opaque. The user application should write
- * data in the same order as the data is received and the data should be of
- * same transaction size at the source.
- */
-
-struct vfio_device_migration_info {
- __u32 device_state; /* VFIO device state */
-#define VFIO_DEVICE_STATE_STOP (0)
-#define VFIO_DEVICE_STATE_RUNNING (1 << 0)
-#define VFIO_DEVICE_STATE_SAVING (1 << 1)
-#define VFIO_DEVICE_STATE_RESUMING (1 << 2)
-#define VFIO_DEVICE_STATE_MASK (VFIO_DEVICE_STATE_RUNNING | \
- VFIO_DEVICE_STATE_SAVING | \
- VFIO_DEVICE_STATE_RESUMING)
-
-#define VFIO_DEVICE_STATE_VALID(state) \
- (state & VFIO_DEVICE_STATE_RESUMING ? \
- (state & VFIO_DEVICE_STATE_MASK) == VFIO_DEVICE_STATE_RESUMING : 1)
-
-#define VFIO_DEVICE_STATE_IS_ERROR(state) \
- ((state & VFIO_DEVICE_STATE_MASK) == (VFIO_DEVICE_STATE_SAVING | \
- VFIO_DEVICE_STATE_RESUMING))
-
-#define VFIO_DEVICE_STATE_SET_ERROR(state) \
- ((state & ~VFIO_DEVICE_STATE_MASK) | VFIO_DEVICE_SATE_SAVING | \
- VFIO_DEVICE_STATE_RESUMING)
-
- __u32 reserved;
- __u64 pending_bytes;
- __u64 data_offset;
- __u64 data_size;
-};
/*
* The MSIX mappable capability informs that MSIX data of a BAR can be mmapped
@@ -825,8 +577,6 @@ enum {
enum {
VFIO_CCW_IO_IRQ_INDEX,
- VFIO_CCW_CRW_IRQ_INDEX,
- VFIO_CCW_REQ_IRQ_INDEX,
VFIO_CCW_NUM_IRQS
};
@@ -957,43 +707,6 @@ struct vfio_device_ioeventfd {
#define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16)
-/**
- * VFIO_DEVICE_FEATURE - _IORW(VFIO_TYPE, VFIO_BASE + 17,
- * struct vfio_device_feature)
- *
- * Get, set, or probe feature data of the device. The feature is selected
- * using the FEATURE_MASK portion of the flags field. Support for a feature
- * can be probed by setting both the FEATURE_MASK and PROBE bits. A probe
- * may optionally include the GET and/or SET bits to determine read vs write
- * access of the feature respectively. Probing a feature will return success
- * if the feature is supported and all of the optionally indicated GET/SET
- * methods are supported. The format of the data portion of the structure is
- * specific to the given feature. The data portion is not required for
- * probing. GET and SET are mutually exclusive, except for use with PROBE.
- *
- * Return 0 on success, -errno on failure.
- */
-struct vfio_device_feature {
- __u32 argsz;
- __u32 flags;
-#define VFIO_DEVICE_FEATURE_MASK (0xffff) /* 16-bit feature index */
-#define VFIO_DEVICE_FEATURE_GET (1 << 16) /* Get feature into data[] */
-#define VFIO_DEVICE_FEATURE_SET (1 << 17) /* Set feature from data[] */
-#define VFIO_DEVICE_FEATURE_PROBE (1 << 18) /* Probe feature support */
- __u8 data[];
-};
-
-#define VFIO_DEVICE_FEATURE _IO(VFIO_TYPE, VFIO_BASE + 17)
-
-/*
- * Provide support for setting a PCI VF Token, which is used as a shared
- * secret between PF and VF drivers. This feature may only be set on a
- * PCI SR-IOV PF when SR-IOV is enabled on the PF and there are no existing
- * open VFs. Data provided when setting this feature is a 16-byte array
- * (__u8 b[16]), representing a UUID.
- */
-#define VFIO_DEVICE_FEATURE_PCI_VF_TOKEN (0)
-
/* -------- API for Type1 VFIO IOMMU -------- */
/**
@@ -1035,44 +748,6 @@ struct vfio_iommu_type1_info_cap_iova_range {
struct vfio_iova_range iova_ranges[];
};
-/*
- * The migration capability allows to report supported features for migration.
- *
- * The structures below define version 1 of this capability.
- *
- * The existence of this capability indicates that IOMMU kernel driver supports
- * dirty page logging.
- *
- * pgsize_bitmap: Kernel driver returns bitmap of supported page sizes for dirty
- * page logging.
- * max_dirty_bitmap_size: Kernel driver returns maximum supported dirty bitmap
- * size in bytes that can be used by user applications when getting the dirty
- * bitmap.
- */
-#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION 2
-
-struct vfio_iommu_type1_info_cap_migration {
- struct vfio_info_cap_header header;
- __u32 flags;
- __u64 pgsize_bitmap;
- __u64 max_dirty_bitmap_size; /* in bytes */
-};
-
-/*
- * The DMA available capability allows to report the current number of
- * simultaneously outstanding DMA mappings that are allowed.
- *
- * The structure below defines version 1 of this capability.
- *
- * avail: specifies the current number of outstanding DMA mappings allowed.
- */
-#define VFIO_IOMMU_TYPE1_INFO_DMA_AVAIL 3
-
-struct vfio_iommu_type1_info_dma_avail {
- struct vfio_info_cap_header header;
- __u32 avail;
-};
-
#define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
/**
@@ -1080,22 +755,12 @@ struct vfio_iommu_type1_info_dma_avail {
*
* Map process virtual addresses to IO virtual addresses using the
* provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required.
- *
- * If flags & VFIO_DMA_MAP_FLAG_VADDR, update the base vaddr for iova, and
- * unblock translation of host virtual addresses in the iova range. The vaddr
- * must have previously been invalidated with VFIO_DMA_UNMAP_FLAG_VADDR. To
- * maintain memory consistency within the user application, the updated vaddr
- * must address the same memory object as originally mapped. Failure to do so
- * will result in user memory corruption and/or device misbehavior. iova and
- * size must match those in the original MAP_DMA call. Protection is not
- * changed, and the READ & WRITE flags must be 0.
*/
struct vfio_iommu_type1_dma_map {
__u32 argsz;
__u32 flags;
#define VFIO_DMA_MAP_FLAG_READ (1 << 0) /* readable from device */
#define VFIO_DMA_MAP_FLAG_WRITE (1 << 1) /* writable from device */
-#define VFIO_DMA_MAP_FLAG_VADDR (1 << 2)
__u64 vaddr; /* Process virtual address */
__u64 iova; /* IO virtual address */
__u64 size; /* Size of mapping (bytes) */
@@ -1103,12 +768,6 @@ struct vfio_iommu_type1_dma_map {
#define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13)
-struct vfio_bitmap {
- __u64 pgsize; /* page size for bitmap in bytes */
- __u64 size; /* in bytes */
- __u64 __user *data; /* one bit per page */
-};
-
/**
* VFIO_IOMMU_UNMAP_DMA - _IOWR(VFIO_TYPE, VFIO_BASE + 14,
* struct vfio_dma_unmap)
@@ -1118,34 +777,12 @@ struct vfio_bitmap {
* field. No guarantee is made to the user that arbitrary unmaps of iova
* or size different from those used in the original mapping call will
* succeed.
- *
- * VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP should be set to get the dirty bitmap
- * before unmapping IO virtual addresses. When this flag is set, the user must
- * provide a struct vfio_bitmap in data[]. User must provide zero-allocated
- * memory via vfio_bitmap.data and its size in the vfio_bitmap.size field.
- * A bit in the bitmap represents one page, of user provided page size in
- * vfio_bitmap.pgsize field, consecutively starting from iova offset. Bit set
- * indicates that the page at that offset from iova is dirty. A Bitmap of the
- * pages in the range of unmapped size is returned in the user-provided
- * vfio_bitmap.data.
- *
- * If flags & VFIO_DMA_UNMAP_FLAG_ALL, unmap all addresses. iova and size
- * must be 0. This cannot be combined with the get-dirty-bitmap flag.
- *
- * If flags & VFIO_DMA_UNMAP_FLAG_VADDR, do not unmap, but invalidate host
- * virtual addresses in the iova range. Tasks that attempt to translate an
- * iova's vaddr will block. DMA to already-mapped pages continues. This
- * cannot be combined with the get-dirty-bitmap flag.
*/
struct vfio_iommu_type1_dma_unmap {
__u32 argsz;
__u32 flags;
-#define VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP (1 << 0)
-#define VFIO_DMA_UNMAP_FLAG_ALL (1 << 1)
-#define VFIO_DMA_UNMAP_FLAG_VADDR (1 << 2)
__u64 iova; /* IO virtual address */
__u64 size; /* Size of mapping (bytes) */
- __u8 data[];
};
#define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14)
@@ -1157,57 +794,6 @@ struct vfio_iommu_type1_dma_unmap {
#define VFIO_IOMMU_ENABLE _IO(VFIO_TYPE, VFIO_BASE + 15)
#define VFIO_IOMMU_DISABLE _IO(VFIO_TYPE, VFIO_BASE + 16)
-/**
- * VFIO_IOMMU_DIRTY_PAGES - _IOWR(VFIO_TYPE, VFIO_BASE + 17,
- * struct vfio_iommu_type1_dirty_bitmap)
- * IOCTL is used for dirty pages logging.
- * Caller should set flag depending on which operation to perform, details as
- * below:
- *
- * Calling the IOCTL with VFIO_IOMMU_DIRTY_PAGES_FLAG_START flag set, instructs
- * the IOMMU driver to log pages that are dirtied or potentially dirtied by
- * the device; designed to be used when a migration is in progress. Dirty pages
- * are logged until logging is disabled by user application by calling the IOCTL
- * with VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP flag.
- *
- * Calling the IOCTL with VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP flag set, instructs
- * the IOMMU driver to stop logging dirtied pages.
- *
- * Calling the IOCTL with VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP flag set
- * returns the dirty pages bitmap for IOMMU container for a given IOVA range.
- * The user must specify the IOVA range and the pgsize through the structure
- * vfio_iommu_type1_dirty_bitmap_get in the data[] portion. This interface
- * supports getting a bitmap of the smallest supported pgsize only and can be
- * modified in future to get a bitmap of any specified supported pgsize. The
- * user must provide a zeroed memory area for the bitmap memory and specify its
- * size in bitmap.size. One bit is used to represent one page consecutively
- * starting from iova offset. The user should provide page size in bitmap.pgsize
- * field. A bit set in the bitmap indicates that the page at that offset from
- * iova is dirty. The caller must set argsz to a value including the size of
- * structure vfio_iommu_type1_dirty_bitmap_get, but excluding the size of the
- * actual bitmap. If dirty pages logging is not enabled, an error will be
- * returned.
- *
- * Only one of the flags _START, _STOP and _GET may be specified at a time.
- *
- */
-struct vfio_iommu_type1_dirty_bitmap {
- __u32 argsz;
- __u32 flags;
-#define VFIO_IOMMU_DIRTY_PAGES_FLAG_START (1 << 0)
-#define VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP (1 << 1)
-#define VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP (1 << 2)
- __u8 data[];
-};
-
-struct vfio_iommu_type1_dirty_bitmap_get {
- __u64 iova; /* IO virtual address */
- __u64 size; /* Size of iova range */
- struct vfio_bitmap bitmap;
-};
-
-#define VFIO_IOMMU_DIRTY_PAGES _IO(VFIO_TYPE, VFIO_BASE + 17)
-
/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */
/*
diff --git a/original/uapi/linux/vfio_ccw.h b/original/uapi/linux/vfio_ccw.h
index aa04f3a..cbecbf0 100644
--- a/original/uapi/linux/vfio_ccw.h
+++ b/original/uapi/linux/vfio_ccw.h
@@ -34,23 +34,4 @@ struct ccw_cmd_region {
__u32 ret_code;
} __packed;
-/*
- * Used for processing commands that read the subchannel-information block
- * Reading this region triggers a stsch() to hardware
- * Note: this is controlled by a capability
- */
-struct ccw_schib_region {
-#define SCHIB_AREA_SIZE 52
- __u8 schib_area[SCHIB_AREA_SIZE];
-} __packed;
-
-/*
- * Used for returning a Channel Report Word to userspace.
- * Note: this is controlled by a capability
- */
-struct ccw_crw_region {
- __u32 crw;
- __u32 pad;
-} __packed;
-
#endif
diff --git a/original/uapi/linux/vfio_zdev.h b/original/uapi/linux/vfio_zdev.h
deleted file mode 100644
index b430939..0000000
--- a/original/uapi/linux/vfio_zdev.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * VFIO Region definitions for ZPCI devices
- *
- * Copyright IBM Corp. 2020
- *
- * Author(s): Pierre Morel <pmorel@linux.ibm.com>
- * Matthew Rosato <mjrosato@linux.ibm.com>
- */
-
-#ifndef _VFIO_ZDEV_H_
-#define _VFIO_ZDEV_H_
-
-#include <linux/types.h>
-#include <linux/vfio.h>
-
-/**
- * VFIO_DEVICE_INFO_CAP_ZPCI_BASE - Base PCI Function information
- *
- * This capability provides a set of descriptive information about the
- * associated PCI function.
- */
-struct vfio_device_info_cap_zpci_base {
- struct vfio_info_cap_header header;
- __u64 start_dma; /* Start of available DMA addresses */
- __u64 end_dma; /* End of available DMA addresses */
- __u16 pchid; /* Physical Channel ID */
- __u16 vfn; /* Virtual function number */
- __u16 fmb_length; /* Measurement Block Length (in bytes) */
- __u8 pft; /* PCI Function Type */
- __u8 gid; /* PCI function group ID */
-};
-
-/**
- * VFIO_DEVICE_INFO_CAP_ZPCI_GROUP - Base PCI Function Group information
- *
- * This capability provides a set of descriptive information about the group of
- * PCI functions that the associated device belongs to.
- */
-struct vfio_device_info_cap_zpci_group {
- struct vfio_info_cap_header header;
- __u64 dasm; /* DMA Address space mask */
- __u64 msi_addr; /* MSI address */
- __u64 flags;
-#define VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH 1 /* Program-specified TLB refresh */
- __u16 mui; /* Measurement Block Update Interval */
- __u16 noi; /* Maximum number of MSIs */
- __u16 maxstbl; /* Maximum Store Block Length */
- __u8 version; /* Supported PCI Version */
-};
-
-/**
- * VFIO_DEVICE_INFO_CAP_ZPCI_UTIL - Utility String
- *
- * This capability provides the utility string for the associated device, which
- * is a device identifier string made up of EBCDID characters. 'size' specifies
- * the length of 'util_str'.
- */
-struct vfio_device_info_cap_zpci_util {
- struct vfio_info_cap_header header;
- __u32 size;
- __u8 util_str[];
-};
-
-/**
- * VFIO_DEVICE_INFO_CAP_ZPCI_PFIP - PCI Function Path
- *
- * This capability provides the PCI function path string, which is an identifier
- * that describes the internal hardware path of the device. 'size' specifies
- * the length of 'pfip'.
- */
-struct vfio_device_info_cap_zpci_pfip {
- struct vfio_info_cap_header header;
- __u32 size;
- __u8 pfip[];
-};
-
-#endif
diff --git a/original/uapi/linux/vhost.h b/original/uapi/linux/vhost.h
index c998860..40d028e 100644
--- a/original/uapi/linux/vhost.h
+++ b/original/uapi/linux/vhost.h
@@ -15,8 +15,6 @@
#include <linux/types.h>
#include <linux/ioctl.h>
-#define VHOST_FILE_UNBIND -1
-
/* ioctls */
#define VHOST_VIRTIO 0xAF
@@ -91,8 +89,6 @@
/* Use message type V2 */
#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
-/* IOTLB can accept batching hints */
-#define VHOST_BACKEND_F_IOTLB_BATCH 0x2
#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
#define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64)
@@ -120,34 +116,4 @@
#define VHOST_VSOCK_SET_GUEST_CID _IOW(VHOST_VIRTIO, 0x60, __u64)
#define VHOST_VSOCK_SET_RUNNING _IOW(VHOST_VIRTIO, 0x61, int)
-/* VHOST_VDPA specific defines */
-
-/* Get the device id. The device ids follow the same definition of
- * the device id defined in virtio-spec.
- */
-#define VHOST_VDPA_GET_DEVICE_ID _IOR(VHOST_VIRTIO, 0x70, __u32)
-/* Get and set the status. The status bits follow the same definition
- * of the device status defined in virtio-spec.
- */
-#define VHOST_VDPA_GET_STATUS _IOR(VHOST_VIRTIO, 0x71, __u8)
-#define VHOST_VDPA_SET_STATUS _IOW(VHOST_VIRTIO, 0x72, __u8)
-/* Get and set the device config. The device config follows the same
- * definition of the device config defined in virtio-spec.
- */
-#define VHOST_VDPA_GET_CONFIG _IOR(VHOST_VIRTIO, 0x73, \
- struct vhost_vdpa_config)
-#define VHOST_VDPA_SET_CONFIG _IOW(VHOST_VIRTIO, 0x74, \
- struct vhost_vdpa_config)
-/* Enable/disable the ring. */
-#define VHOST_VDPA_SET_VRING_ENABLE _IOW(VHOST_VIRTIO, 0x75, \
- struct vhost_vring_state)
-/* Get the max ring size. */
-#define VHOST_VDPA_GET_VRING_NUM _IOR(VHOST_VIRTIO, 0x76, __u16)
-
-/* Set event fd for config interrupt*/
-#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int)
-
-/* Get the valid iova range */
-#define VHOST_VDPA_GET_IOVA_RANGE _IOR(VHOST_VIRTIO, 0x78, \
- struct vhost_vdpa_iova_range)
#endif
diff --git a/original/uapi/linux/vhost_types.h b/original/uapi/linux/vhost_types.h
index f7f6a3a..c907290 100644
--- a/original/uapi/linux/vhost_types.h
+++ b/original/uapi/linux/vhost_types.h
@@ -60,17 +60,6 @@ struct vhost_iotlb_msg {
#define VHOST_IOTLB_UPDATE 2
#define VHOST_IOTLB_INVALIDATE 3
#define VHOST_IOTLB_ACCESS_FAIL 4
-/*
- * VHOST_IOTLB_BATCH_BEGIN and VHOST_IOTLB_BATCH_END allow modifying
- * multiple mappings in one go: beginning with
- * VHOST_IOTLB_BATCH_BEGIN, followed by any number of
- * VHOST_IOTLB_UPDATE messages, and ending with VHOST_IOTLB_BATCH_END.
- * When one of these two values is used as the message type, the rest
- * of the fields in the message are ignored. There's no guarantee that
- * these changes take place automatically in the device.
- */
-#define VHOST_IOTLB_BATCH_BEGIN 5
-#define VHOST_IOTLB_BATCH_END 6
__u8 type;
};
@@ -130,23 +119,6 @@ struct vhost_scsi_target {
unsigned short reserved;
};
-/* VHOST_VDPA specific definitions */
-
-struct vhost_vdpa_config {
- __u32 off;
- __u32 len;
- __u8 buf[0];
-};
-
-/* vhost vdpa IOVA range
- * @first: First address that can be mapped by vhost-vDPA
- * @last: Last address that can be mapped by vhost-vDPA
- */
-struct vhost_vdpa_iova_range {
- __u64 first;
- __u64 last;
-};
-
/* Feature bits */
/* Log all write descriptors. Can be changed while device is active. */
#define VHOST_F_LOG_ALL 26
diff --git a/original/uapi/linux/videodev2.h b/original/uapi/linux/videodev2.h
index 3e44b6c..169e210 100644
--- a/original/uapi/linux/videodev2.h
+++ b/original/uapi/linux/videodev2.h
@@ -171,8 +171,6 @@ enum v4l2_buf_type {
|| (type) == V4L2_BUF_TYPE_SDR_OUTPUT \
|| (type) == V4L2_BUF_TYPE_META_OUTPUT)
-#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
-
enum v4l2_tuner_type {
V4L2_TUNER_RADIO = 1,
V4L2_TUNER_ANALOG_TV = 2,
@@ -221,7 +219,9 @@ enum v4l2_colorspace {
V4L2_COLORSPACE_470_SYSTEM_M = 5,
/*
- * EBU Tech 3213 PAL/SECAM colorspace.
+ * EBU Tech 3213 PAL/SECAM colorspace. This only makes sense when
+ * dealing with really old PAL/SECAM recordings. Superseded by
+ * SMPTE 170M.
*/
V4L2_COLORSPACE_470_SYSTEM_BG = 6,
@@ -371,9 +371,9 @@ enum v4l2_hsv_encoding {
enum v4l2_quantization {
/*
- * The default for R'G'B' quantization is always full range.
- * For Y'CbCr the quantization is always limited range, except
- * for COLORSPACE_JPEG: this is full range.
+ * The default for R'G'B' quantization is always full range, except
+ * for the BT2020 colorspace. For Y'CbCr the quantization is always
+ * limited range, except for COLORSPACE_JPEG: this is full range.
*/
V4L2_QUANTIZATION_DEFAULT = 0,
V4L2_QUANTIZATION_FULL_RANGE = 1,
@@ -382,13 +382,14 @@ enum v4l2_quantization {
/*
* Determine how QUANTIZATION_DEFAULT should map to a proper quantization.
- * This depends on whether the image is RGB or not, the colorspace.
- * The Y'CbCr encoding is not used anymore, but is still there for backwards
- * compatibility.
+ * This depends on whether the image is RGB or not, the colorspace and the
+ * Y'CbCr encoding.
*/
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \
- (((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \
- V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE)
+ (((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
+ V4L2_QUANTIZATION_LIM_RANGE : \
+ (((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \
+ V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
/*
* Deprecated names for opRGB colorspace (IEC 61966-2-5)
@@ -486,8 +487,6 @@ struct v4l2_capability {
#define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */
-#define V4L2_CAP_IO_MC 0x20000000 /* Is input/output controlled by the media controller */
-
#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */
/*
@@ -515,7 +514,7 @@ struct v4l2_pix_format {
/* Pixel format FOURCC depth Description */
-/* RGB formats (1 or 2 bytes per pixel) */
+/* RGB formats */
#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */
#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */
#define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */
@@ -524,6 +523,12 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') /* 16 rrrrgggg bbbbxxxx */
#define V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') /* 16 aaaabbbb ggggrrrr */
#define V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') /* 16 xxxxbbbb ggggrrrr */
+
+/*
+ * Originally this had 'BA12' as fourcc, but this clashed with the older
+ * V4L2_PIX_FMT_SGRBG12 which inexplicably used that same fourcc.
+ * So use 'GA12' instead for V4L2_PIX_FMT_BGRA444.
+ */
#define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') /* 16 bbbbgggg rrrraaaa */
#define V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') /* 16 bbbbgggg rrrrxxxx */
#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
@@ -540,8 +545,6 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16 ARGB-5-5-5 BE */
#define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16 XRGB-5-5-5 BE */
#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */
-
-/* RGB formats (3 or 4 bytes per pixel) */
#define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */
#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
@@ -562,7 +565,6 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */
#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */
-#define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') /* 14 Greyscale */
#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */
#define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */
@@ -591,6 +593,8 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */
#define V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') /* 32 VUYA-8-8-8-8 */
#define V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') /* 32 VUYX-8-8-8-8 */
+#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
+#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
/* two planes -- one Y, one Cr + Cb interleaved */
@@ -600,7 +604,6 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
/* two non contiguous planes - one Y, one Cr + Cb interleaved */
#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */
@@ -659,10 +662,6 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
-#define V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') /* 14 BGBG.. GRGR.. */
-#define V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') /* 14 GBGB.. RGRG.. */
-#define V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('G', 'R', '1', '4') /* 14 GRGR.. BGBG.. */
-#define V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') /* 14 RGRG.. GBGB.. */
/* 14bit raw bayer packed, 7 bytes for every 4 pixels */
#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E')
#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E')
@@ -698,7 +697,6 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
#define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */
#define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') /* Stateless FWHT (vicodec) */
-#define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* H264 parsed slices */
/* Vendor-specific formats */
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
@@ -734,7 +732,6 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */
#define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */
-#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */
/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
#define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */
@@ -765,16 +762,11 @@ struct v4l2_pix_format {
#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
#define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
-/* Vendor specific - used for RK_ISP1 camera sub-system */
-#define V4L2_META_FMT_RK_ISP1_PARAMS v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 3A Parameters */
-#define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */
-
/* priv field value to indicates that subsequent fields are valid. */
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
/* Flags */
#define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001
-#define V4L2_PIX_FMT_FLAG_SET_CSC 0x00000002
/*
* F O R M A T E N U M E R A T I O N
@@ -785,20 +777,13 @@ struct v4l2_fmtdesc {
__u32 flags;
__u8 description[32]; /* Description string */
__u32 pixelformat; /* Format fourcc */
- __u32 mbus_code; /* Media bus code */
- __u32 reserved[3];
+ __u32 reserved[4];
};
#define V4L2_FMT_FLAG_COMPRESSED 0x0001
#define V4L2_FMT_FLAG_EMULATED 0x0002
#define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM 0x0004
#define V4L2_FMT_FLAG_DYN_RESOLUTION 0x0008
-#define V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL 0x0010
-#define V4L2_FMT_FLAG_CSC_COLORSPACE 0x0020
-#define V4L2_FMT_FLAG_CSC_XFER_FUNC 0x0040
-#define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080
-#define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC
-#define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100
/* Frame Size and frame rate enumeration */
/*
@@ -927,25 +912,6 @@ struct v4l2_jpegcompression {
/*
* M E M O R Y - M A P P I N G B U F F E R S
*/
-
-#ifdef __KERNEL__
-/*
- * This corresponds to the user space version of timeval
- * for 64-bit time_t. sparc64 is different from everyone
- * else, using the microseconds in the wrong half of the
- * second 64-bit word.
- */
-struct __kernel_v4l2_timeval {
- long long tv_sec;
-#if defined(__sparc__) && defined(__arch64__)
- int tv_usec;
- int __pad;
-#else
- long long tv_usec;
-#endif
-};
-#endif
-
struct v4l2_requestbuffers {
__u32 count;
__u32 type; /* enum v4l2_buf_type */
@@ -961,7 +927,6 @@ struct v4l2_requestbuffers {
#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)
#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
#define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
-#define V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS (1 << 6)
/**
* struct v4l2_plane - plane info for multi-planar buffers
@@ -977,7 +942,9 @@ struct v4l2_requestbuffers {
* descriptor associated with this plane
* @data_offset: offset in the plane to the start of data; usually 0,
* unless there is a header in front of the data
- *
+ * @reserved: few userspace clients and drivers use reserved fields
+ * and it is up to them how these fields are used. v4l2
+ * simply copy reserved fields between them.
* Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer
* with two planes can have one plane for Y, and another for interleaved CbCr
* components. Each plane can reside in a separate memory buffer, or even in
@@ -992,6 +959,7 @@ struct v4l2_plane {
__s32 fd;
} m;
__u32 data_offset;
+ /* reserved fields used by few userspace clients and drivers */
__u32 reserved[11];
};
@@ -1032,11 +1000,7 @@ struct v4l2_buffer {
__u32 bytesused;
__u32 flags;
__u32 field;
-#ifdef __KERNEL__
- struct __kernel_v4l2_timeval timestamp;
-#else
struct timeval timestamp;
-#endif
struct v4l2_timecode timecode;
__u32 sequence;
@@ -1056,7 +1020,6 @@ struct v4l2_buffer {
};
};
-#ifndef __KERNEL__
/**
* v4l2_timeval_to_ns - Convert timeval to nanoseconds
* @ts: pointer to the timeval variable to be converted
@@ -1068,7 +1031,6 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv)
{
return (__u64)tv->tv_sec * 1000000000ULL + tv->tv_usec * 1000;
}
-#endif
/* Flags for 'flags' field */
/* Buffer is mapped (flag) */
@@ -1184,7 +1146,7 @@ struct v4l2_window {
struct v4l2_rect w;
__u32 field; /* enum v4l2_field */
__u32 chromakey;
- struct v4l2_clip *clips;
+ struct v4l2_clip __user *clips;
__u32 clipcount;
void __user *bitmap;
__u8 global_alpha;
@@ -1258,10 +1220,6 @@ struct v4l2_selection {
typedef __u64 v4l2_std_id;
-/*
- * Attention: Keep the V4L2_STD_* bit definitions in sync with
- * include/dt-bindings/display/sdtv-standards.h SDTV_STD_* bit definitions.
- */
/* one bit for each */
#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001)
#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002)
@@ -1730,13 +1688,6 @@ struct v4l2_ext_control {
__u16 __user *p_u16;
__u32 __user *p_u32;
struct v4l2_area __user *p_area;
- struct v4l2_ctrl_h264_sps __user *p_h264_sps;
- struct v4l2_ctrl_h264_pps *p_h264_pps;
- struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix;
- struct v4l2_ctrl_h264_pred_weights __user *p_h264_pred_weights;
- struct v4l2_ctrl_h264_slice_params __user *p_h264_slice_params;
- struct v4l2_ctrl_h264_decode_params __user *p_h264_decode_params;
- struct v4l2_ctrl_fwht_params __user *p_fwht_params;
void __user *ptr;
};
} __attribute__ ((packed));
@@ -1783,15 +1734,6 @@ enum v4l2_ctrl_type {
V4L2_CTRL_TYPE_U16 = 0x0101,
V4L2_CTRL_TYPE_U32 = 0x0102,
V4L2_CTRL_TYPE_AREA = 0x0106,
-
- V4L2_CTRL_TYPE_H264_SPS = 0x0200,
- V4L2_CTRL_TYPE_H264_PPS = 0x0201,
- V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
- V4L2_CTRL_TYPE_H264_SLICE_PARAMS = 0x0203,
- V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204,
- V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205,
-
- V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
};
/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@@ -2400,11 +2342,7 @@ struct v4l2_event {
} u;
__u32 pending;
__u32 sequence;
-#ifdef __KERNEL__
- struct __kernel_timespec timestamp;
-#else
struct timespec timestamp;
-#endif
__u32 id;
__u32 reserved[8];
};
diff --git a/original/uapi/linux/virtio_9p.h b/original/uapi/linux/virtio_9p.h
index 4410474..277c4ad 100644
--- a/original/uapi/linux/virtio_9p.h
+++ b/original/uapi/linux/virtio_9p.h
@@ -25,7 +25,7 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. */
-#include <linux/virtio_types.h>
+#include <linux/types.h>
#include <linux/virtio_ids.h>
#include <linux/virtio_config.h>
@@ -36,7 +36,7 @@
struct virtio_9p_config {
/* length of the tag name */
- __virtio16 tag_len;
+ __u16 tag_len;
/* non-NULL terminated tag name */
__u8 tag[0];
} __attribute__((packed));
diff --git a/original/uapi/linux/virtio_balloon.h b/original/uapi/linux/virtio_balloon.h
index ddaa45e..a1966cd 100644
--- a/original/uapi/linux/virtio_balloon.h
+++ b/original/uapi/linux/virtio_balloon.h
@@ -36,7 +36,6 @@
#define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */
#define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */
#define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */
-#define VIRTIO_BALLOON_F_REPORTING 5 /* Page reporting virtqueue */
/* Size of a PFN in the balloon interface. */
#define VIRTIO_BALLOON_PFN_SHIFT 12
@@ -45,20 +44,13 @@
#define VIRTIO_BALLOON_CMD_ID_DONE 1
struct virtio_balloon_config {
/* Number of pages host wants Guest to give up. */
- __le32 num_pages;
+ __u32 num_pages;
/* Number of pages we've actually got in balloon. */
- __le32 actual;
- /*
- * Free page hint command id, readonly by guest.
- * Was previously named free_page_report_cmd_id so we
- * need to carry that name for legacy support.
- */
- union {
- __le32 free_page_hint_cmd_id;
- __le32 free_page_report_cmd_id; /* deprecated */
- };
+ __u32 actual;
+ /* Free page report command id, readonly by guest */
+ __u32 free_page_report_cmd_id;
/* Stores PAGE_POISON if page poisoning is in use */
- __le32 poison_val;
+ __u32 poison_val;
};
#define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */
diff --git a/original/uapi/linux/virtio_blk.h b/original/uapi/linux/virtio_blk.h
index d888f01..0f99d7b 100644
--- a/original/uapi/linux/virtio_blk.h
+++ b/original/uapi/linux/virtio_blk.h
@@ -57,20 +57,20 @@
struct virtio_blk_config {
/* The capacity (in 512-byte sectors). */
- __virtio64 capacity;
+ __u64 capacity;
/* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */
- __virtio32 size_max;
+ __u32 size_max;
/* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */
- __virtio32 seg_max;
+ __u32 seg_max;
/* geometry of the device (if VIRTIO_BLK_F_GEOMETRY) */
struct virtio_blk_geometry {
- __virtio16 cylinders;
+ __u16 cylinders;
__u8 heads;
__u8 sectors;
} geometry;
/* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */
- __virtio32 blk_size;
+ __u32 blk_size;
/* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY */
/* exponent for physical block per logical block. */
@@ -78,42 +78,42 @@ struct virtio_blk_config {
/* alignment offset in logical blocks. */
__u8 alignment_offset;
/* minimum I/O size without performance penalty in logical blocks. */
- __virtio16 min_io_size;
+ __u16 min_io_size;
/* optimal sustained I/O size in logical blocks. */
- __virtio32 opt_io_size;
+ __u32 opt_io_size;
/* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */
__u8 wce;
__u8 unused;
/* number of vqs, only available when VIRTIO_BLK_F_MQ is set */
- __virtio16 num_queues;
+ __u16 num_queues;
/* the next 3 entries are guarded by VIRTIO_BLK_F_DISCARD */
/*
* The maximum discard sectors (in 512-byte sectors) for
* one segment.
*/
- __virtio32 max_discard_sectors;
+ __u32 max_discard_sectors;
/*
* The maximum number of discard segments in a
* discard command.
*/
- __virtio32 max_discard_seg;
+ __u32 max_discard_seg;
/* Discard commands must be aligned to this number of sectors. */
- __virtio32 discard_sector_alignment;
+ __u32 discard_sector_alignment;
/* the next 3 entries are guarded by VIRTIO_BLK_F_WRITE_ZEROES */
/*
* The maximum number of write zeroes sectors (in 512-byte sectors) in
* one segment.
*/
- __virtio32 max_write_zeroes_sectors;
+ __u32 max_write_zeroes_sectors;
/*
* The maximum number of segments in a write zeroes
* command.
*/
- __virtio32 max_write_zeroes_seg;
+ __u32 max_write_zeroes_seg;
/*
* Set if a VIRTIO_BLK_T_WRITE_ZEROES request may result in the
* deallocation of one or more of the sectors.
diff --git a/original/uapi/linux/virtio_config.h b/original/uapi/linux/virtio_config.h
index b5eda06..ff8e7dc 100644
--- a/original/uapi/linux/virtio_config.h
+++ b/original/uapi/linux/virtio_config.h
@@ -67,17 +67,13 @@
#define VIRTIO_F_VERSION_1 32
/*
- * If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature.
- * If set - use platform DMA tools to access the memory.
+ * If clear - device has the IOMMU bypass quirk feature.
+ * If set - use platform tools to detect the IOMMU.
*
* Note the reverse polarity (compared to most other features),
* this is for compatibility with legacy systems.
*/
-#define VIRTIO_F_ACCESS_PLATFORM 33
-#ifndef __KERNEL__
-/* Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace) */
-#define VIRTIO_F_IOMMU_PLATFORM VIRTIO_F_ACCESS_PLATFORM
-#endif /* __KERNEL__ */
+#define VIRTIO_F_IOMMU_PLATFORM 33
/* This feature indicates support for the packed virtqueue layout. */
#define VIRTIO_F_RING_PACKED 34
diff --git a/original/uapi/linux/virtio_console.h b/original/uapi/linux/virtio_console.h
index 7e6ec2f..b7fb108 100644
--- a/original/uapi/linux/virtio_console.h
+++ b/original/uapi/linux/virtio_console.h
@@ -45,13 +45,13 @@
struct virtio_console_config {
/* colums of the screens */
- __virtio16 cols;
+ __u16 cols;
/* rows of the screens */
- __virtio16 rows;
+ __u16 rows;
/* max. number of ports this device can hold */
- __virtio32 max_nr_ports;
+ __u32 max_nr_ports;
/* emergency write register */
- __virtio32 emerg_wr;
+ __u32 emerg_wr;
} __attribute__((packed));
/*
diff --git a/original/uapi/linux/virtio_crypto.h b/original/uapi/linux/virtio_crypto.h
index a03932f..50cdc8a 100644
--- a/original/uapi/linux/virtio_crypto.h
+++ b/original/uapi/linux/virtio_crypto.h
@@ -414,33 +414,33 @@ struct virtio_crypto_op_data_req {
struct virtio_crypto_config {
/* See VIRTIO_CRYPTO_OP_* above */
- __le32 status;
+ __u32 status;
/*
* Maximum number of data queue
*/
- __le32 max_dataqueues;
+ __u32 max_dataqueues;
/*
* Specifies the services mask which the device support,
* see VIRTIO_CRYPTO_SERVICE_* above
*/
- __le32 crypto_services;
+ __u32 crypto_services;
/* Detailed algorithms mask */
- __le32 cipher_algo_l;
- __le32 cipher_algo_h;
- __le32 hash_algo;
- __le32 mac_algo_l;
- __le32 mac_algo_h;
- __le32 aead_algo;
+ __u32 cipher_algo_l;
+ __u32 cipher_algo_h;
+ __u32 hash_algo;
+ __u32 mac_algo_l;
+ __u32 mac_algo_h;
+ __u32 aead_algo;
/* Maximum length of cipher key */
- __le32 max_cipher_key_len;
+ __u32 max_cipher_key_len;
/* Maximum length of authenticated key */
- __le32 max_auth_key_len;
- __le32 reserve;
+ __u32 max_auth_key_len;
+ __u32 reserve;
/* Maximum size of each crypto request's content */
- __le64 max_size;
+ __u64 max_size;
};
struct virtio_crypto_inhdr {
diff --git a/original/uapi/linux/virtio_fs.h b/original/uapi/linux/virtio_fs.h
index bea3829..b02eb2a 100644
--- a/original/uapi/linux/virtio_fs.h
+++ b/original/uapi/linux/virtio_fs.h
@@ -13,10 +13,7 @@ struct virtio_fs_config {
__u8 tag[36];
/* Number of request queues */
- __le32 num_request_queues;
+ __u32 num_request_queues;
} __attribute__((packed));
-/* For the id field in virtio_pci_shm_cap */
-#define VIRTIO_FS_SHMCAP_ID_CACHE 0
-
#endif /* _UAPI_LINUX_VIRTIO_FS_H */
diff --git a/original/uapi/linux/virtio_gpu.h b/original/uapi/linux/virtio_gpu.h
index 97523a9..0c85914 100644
--- a/original/uapi/linux/virtio_gpu.h
+++ b/original/uapi/linux/virtio_gpu.h
@@ -50,15 +50,6 @@
* VIRTIO_GPU_CMD_GET_EDID
*/
#define VIRTIO_GPU_F_EDID 1
-/*
- * VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID
- */
-#define VIRTIO_GPU_F_RESOURCE_UUID 2
-
-/*
- * VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB
- */
-#define VIRTIO_GPU_F_RESOURCE_BLOB 3
enum virtio_gpu_ctrl_type {
VIRTIO_GPU_UNDEFINED = 0,
@@ -75,9 +66,6 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_CMD_GET_CAPSET_INFO,
VIRTIO_GPU_CMD_GET_CAPSET,
VIRTIO_GPU_CMD_GET_EDID,
- VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID,
- VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB,
- VIRTIO_GPU_CMD_SET_SCANOUT_BLOB,
/* 3d commands */
VIRTIO_GPU_CMD_CTX_CREATE = 0x0200,
@@ -88,8 +76,6 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D,
VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D,
VIRTIO_GPU_CMD_SUBMIT_3D,
- VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB,
- VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB,
/* cursor commands */
VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300,
@@ -101,8 +87,6 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_RESP_OK_CAPSET_INFO,
VIRTIO_GPU_RESP_OK_CAPSET,
VIRTIO_GPU_RESP_OK_EDID,
- VIRTIO_GPU_RESP_OK_RESOURCE_UUID,
- VIRTIO_GPU_RESP_OK_MAP_INFO,
/* error responses */
VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200,
@@ -113,15 +97,6 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER,
};
-enum virtio_gpu_shm_id {
- VIRTIO_GPU_SHM_ID_UNDEFINED = 0,
- /*
- * VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB
- * VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB
- */
- VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
-};
-
#define VIRTIO_GPU_FLAG_FENCE (1 << 0)
struct virtio_gpu_ctrl_hdr {
@@ -345,10 +320,10 @@ struct virtio_gpu_resp_edid {
#define VIRTIO_GPU_EVENT_DISPLAY (1 << 0)
struct virtio_gpu_config {
- __le32 events_read;
- __le32 events_clear;
- __le32 num_scanouts;
- __le32 num_capsets;
+ __u32 events_read;
+ __u32 events_clear;
+ __u32 num_scanouts;
+ __u32 num_capsets;
};
/* simple formats for fbcon/X use */
@@ -365,80 +340,4 @@ enum virtio_gpu_formats {
VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM = 134,
};
-/* VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID */
-struct virtio_gpu_resource_assign_uuid {
- struct virtio_gpu_ctrl_hdr hdr;
- __le32 resource_id;
- __le32 padding;
-};
-
-/* VIRTIO_GPU_RESP_OK_RESOURCE_UUID */
-struct virtio_gpu_resp_resource_uuid {
- struct virtio_gpu_ctrl_hdr hdr;
- __u8 uuid[16];
-};
-
-/* VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB */
-struct virtio_gpu_resource_create_blob {
- struct virtio_gpu_ctrl_hdr hdr;
- __le32 resource_id;
-#define VIRTIO_GPU_BLOB_MEM_GUEST 0x0001
-#define VIRTIO_GPU_BLOB_MEM_HOST3D 0x0002
-#define VIRTIO_GPU_BLOB_MEM_HOST3D_GUEST 0x0003
-
-#define VIRTIO_GPU_BLOB_FLAG_USE_MAPPABLE 0x0001
-#define VIRTIO_GPU_BLOB_FLAG_USE_SHAREABLE 0x0002
-#define VIRTIO_GPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004
- /* zero is invalid blob mem */
- __le32 blob_mem;
- __le32 blob_flags;
- __le32 nr_entries;
- __le64 blob_id;
- __le64 size;
- /*
- * sizeof(nr_entries * virtio_gpu_mem_entry) bytes follow
- */
-};
-
-/* VIRTIO_GPU_CMD_SET_SCANOUT_BLOB */
-struct virtio_gpu_set_scanout_blob {
- struct virtio_gpu_ctrl_hdr hdr;
- struct virtio_gpu_rect r;
- __le32 scanout_id;
- __le32 resource_id;
- __le32 width;
- __le32 height;
- __le32 format;
- __le32 padding;
- __le32 strides[4];
- __le32 offsets[4];
-};
-
-/* VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB */
-struct virtio_gpu_resource_map_blob {
- struct virtio_gpu_ctrl_hdr hdr;
- __le32 resource_id;
- __le32 padding;
- __le64 offset;
-};
-
-/* VIRTIO_GPU_RESP_OK_MAP_INFO */
-#define VIRTIO_GPU_MAP_CACHE_MASK 0x0f
-#define VIRTIO_GPU_MAP_CACHE_NONE 0x00
-#define VIRTIO_GPU_MAP_CACHE_CACHED 0x01
-#define VIRTIO_GPU_MAP_CACHE_UNCACHED 0x02
-#define VIRTIO_GPU_MAP_CACHE_WC 0x03
-struct virtio_gpu_resp_map_info {
- struct virtio_gpu_ctrl_hdr hdr;
- __u32 map_info;
- __u32 padding;
-};
-
-/* VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB */
-struct virtio_gpu_resource_unmap_blob {
- struct virtio_gpu_ctrl_hdr hdr;
- __le32 resource_id;
- __le32 padding;
-};
-
#endif
diff --git a/original/uapi/linux/virtio_ids.h b/original/uapi/linux/virtio_ids.h
index bc1c062..585e07b 100644
--- a/original/uapi/linux/virtio_ids.h
+++ b/original/uapi/linux/virtio_ids.h
@@ -29,30 +29,22 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. */
-#define VIRTIO_ID_NET 1 /* virtio net */
-#define VIRTIO_ID_BLOCK 2 /* virtio block */
-#define VIRTIO_ID_CONSOLE 3 /* virtio console */
-#define VIRTIO_ID_RNG 4 /* virtio rng */
-#define VIRTIO_ID_BALLOON 5 /* virtio balloon */
-#define VIRTIO_ID_IOMEM 6 /* virtio ioMemory */
-#define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */
-#define VIRTIO_ID_SCSI 8 /* virtio scsi */
-#define VIRTIO_ID_9P 9 /* 9p virtio console */
-#define VIRTIO_ID_MAC80211_WLAN 10 /* virtio WLAN MAC */
-#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */
-#define VIRTIO_ID_CAIF 12 /* Virtio caif */
-#define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */
-#define VIRTIO_ID_GPU 16 /* virtio GPU */
-#define VIRTIO_ID_CLOCK 17 /* virtio clock/timer */
-#define VIRTIO_ID_INPUT 18 /* virtio input */
-#define VIRTIO_ID_VSOCK 19 /* virtio vsock transport */
-#define VIRTIO_ID_CRYPTO 20 /* virtio crypto */
-#define VIRTIO_ID_SIGNAL_DIST 21 /* virtio signal distribution device */
-#define VIRTIO_ID_PSTORE 22 /* virtio pstore device */
-#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */
-#define VIRTIO_ID_MEM 24 /* virtio mem */
-#define VIRTIO_ID_FS 26 /* virtio filesystem */
-#define VIRTIO_ID_PMEM 27 /* virtio pmem */
-#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
+#define VIRTIO_ID_NET 1 /* virtio net */
+#define VIRTIO_ID_BLOCK 2 /* virtio block */
+#define VIRTIO_ID_CONSOLE 3 /* virtio console */
+#define VIRTIO_ID_RNG 4 /* virtio rng */
+#define VIRTIO_ID_BALLOON 5 /* virtio balloon */
+#define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */
+#define VIRTIO_ID_SCSI 8 /* virtio scsi */
+#define VIRTIO_ID_9P 9 /* 9p virtio console */
+#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */
+#define VIRTIO_ID_CAIF 12 /* Virtio caif */
+#define VIRTIO_ID_GPU 16 /* virtio GPU */
+#define VIRTIO_ID_INPUT 18 /* virtio input */
+#define VIRTIO_ID_VSOCK 19 /* virtio vsock transport */
+#define VIRTIO_ID_CRYPTO 20 /* virtio crypto */
+#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */
+#define VIRTIO_ID_FS 26 /* virtio filesystem */
+#define VIRTIO_ID_PMEM 27 /* virtio pmem */
#endif /* _LINUX_VIRTIO_IDS_H */
diff --git a/original/uapi/linux/virtio_input.h b/original/uapi/linux/virtio_input.h
index 52084b1..a7fe5c8 100644
--- a/original/uapi/linux/virtio_input.h
+++ b/original/uapi/linux/virtio_input.h
@@ -40,18 +40,18 @@ enum virtio_input_config_select {
};
struct virtio_input_absinfo {
- __le32 min;
- __le32 max;
- __le32 fuzz;
- __le32 flat;
- __le32 res;
+ __u32 min;
+ __u32 max;
+ __u32 fuzz;
+ __u32 flat;
+ __u32 res;
};
struct virtio_input_devids {
- __le16 bustype;
- __le16 vendor;
- __le16 product;
- __le16 version;
+ __u16 bustype;
+ __u16 vendor;
+ __u16 product;
+ __u16 version;
};
struct virtio_input_config {
diff --git a/original/uapi/linux/virtio_mem.h b/original/uapi/linux/virtio_mem.h
deleted file mode 100644
index 70e01c6..0000000
--- a/original/uapi/linux/virtio_mem.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause */
-/*
- * Virtio Mem Device
- *
- * Copyright Red Hat, Inc. 2020
- *
- * Authors:
- * David Hildenbrand <david@redhat.com>
- *
- * This header is BSD licensed so anyone can use the definitions
- * to implement compatible drivers/servers:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _LINUX_VIRTIO_MEM_H
-#define _LINUX_VIRTIO_MEM_H
-
-#include <linux/types.h>
-#include <linux/virtio_types.h>
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-
-/*
- * Each virtio-mem device manages a dedicated region in physical address
- * space. Each device can belong to a single NUMA node, multiple devices
- * for a single NUMA node are possible. A virtio-mem device is like a
- * "resizable DIMM" consisting of small memory blocks that can be plugged
- * or unplugged. The device driver is responsible for (un)plugging memory
- * blocks on demand.
- *
- * Virtio-mem devices can only operate on their assigned memory region in
- * order to (un)plug memory. A device cannot (un)plug memory belonging to
- * other devices.
- *
- * The "region_size" corresponds to the maximum amount of memory that can
- * be provided by a device. The "size" corresponds to the amount of memory
- * that is currently plugged. "requested_size" corresponds to a request
- * from the device to the device driver to (un)plug blocks. The
- * device driver should try to (un)plug blocks in order to reach the
- * "requested_size". It is impossible to plug more memory than requested.
- *
- * The "usable_region_size" represents the memory region that can actually
- * be used to (un)plug memory. It is always at least as big as the
- * "requested_size" and will grow dynamically. It will only shrink when
- * explicitly triggered (VIRTIO_MEM_REQ_UNPLUG).
- *
- * There are no guarantees what will happen if unplugged memory is
- * read/written. Such memory should, in general, not be touched. E.g.,
- * even writing might succeed, but the values will simply be discarded at
- * random points in time.
- *
- * It can happen that the device cannot process a request, because it is
- * busy. The device driver has to retry later.
- *
- * Usually, during system resets all memory will get unplugged, so the
- * device driver can start with a clean state. However, in specific
- * scenarios (if the device is busy) it can happen that the device still
- * has memory plugged. The device driver can request to unplug all memory
- * (VIRTIO_MEM_REQ_UNPLUG) - which might take a while to succeed if the
- * device is busy.
- */
-
-/* --- virtio-mem: feature bits --- */
-
-/* node_id is an ACPI PXM and is valid */
-#define VIRTIO_MEM_F_ACPI_PXM 0
-
-
-/* --- virtio-mem: guest -> host requests --- */
-
-/* request to plug memory blocks */
-#define VIRTIO_MEM_REQ_PLUG 0
-/* request to unplug memory blocks */
-#define VIRTIO_MEM_REQ_UNPLUG 1
-/* request to unplug all blocks and shrink the usable size */
-#define VIRTIO_MEM_REQ_UNPLUG_ALL 2
-/* request information about the plugged state of memory blocks */
-#define VIRTIO_MEM_REQ_STATE 3
-
-struct virtio_mem_req_plug {
- __virtio64 addr;
- __virtio16 nb_blocks;
- __virtio16 padding[3];
-};
-
-struct virtio_mem_req_unplug {
- __virtio64 addr;
- __virtio16 nb_blocks;
- __virtio16 padding[3];
-};
-
-struct virtio_mem_req_state {
- __virtio64 addr;
- __virtio16 nb_blocks;
- __virtio16 padding[3];
-};
-
-struct virtio_mem_req {
- __virtio16 type;
- __virtio16 padding[3];
-
- union {
- struct virtio_mem_req_plug plug;
- struct virtio_mem_req_unplug unplug;
- struct virtio_mem_req_state state;
- } u;
-};
-
-
-/* --- virtio-mem: host -> guest response --- */
-
-/*
- * Request processed successfully, applicable for
- * - VIRTIO_MEM_REQ_PLUG
- * - VIRTIO_MEM_REQ_UNPLUG
- * - VIRTIO_MEM_REQ_UNPLUG_ALL
- * - VIRTIO_MEM_REQ_STATE
- */
-#define VIRTIO_MEM_RESP_ACK 0
-/*
- * Request denied - e.g. trying to plug more than requested, applicable for
- * - VIRTIO_MEM_REQ_PLUG
- */
-#define VIRTIO_MEM_RESP_NACK 1
-/*
- * Request cannot be processed right now, try again later, applicable for
- * - VIRTIO_MEM_REQ_PLUG
- * - VIRTIO_MEM_REQ_UNPLUG
- * - VIRTIO_MEM_REQ_UNPLUG_ALL
- */
-#define VIRTIO_MEM_RESP_BUSY 2
-/*
- * Error in request (e.g. addresses/alignment), applicable for
- * - VIRTIO_MEM_REQ_PLUG
- * - VIRTIO_MEM_REQ_UNPLUG
- * - VIRTIO_MEM_REQ_STATE
- */
-#define VIRTIO_MEM_RESP_ERROR 3
-
-
-/* State of memory blocks is "plugged" */
-#define VIRTIO_MEM_STATE_PLUGGED 0
-/* State of memory blocks is "unplugged" */
-#define VIRTIO_MEM_STATE_UNPLUGGED 1
-/* State of memory blocks is "mixed" */
-#define VIRTIO_MEM_STATE_MIXED 2
-
-struct virtio_mem_resp_state {
- __virtio16 state;
-};
-
-struct virtio_mem_resp {
- __virtio16 type;
- __virtio16 padding[3];
-
- union {
- struct virtio_mem_resp_state state;
- } u;
-};
-
-/* --- virtio-mem: configuration --- */
-
-struct virtio_mem_config {
- /* Block size and alignment. Cannot change. */
- __le64 block_size;
- /* Valid with VIRTIO_MEM_F_ACPI_PXM. Cannot change. */
- __le16 node_id;
- __u8 padding[6];
- /* Start address of the memory region. Cannot change. */
- __le64 addr;
- /* Region size (maximum). Cannot change. */
- __le64 region_size;
- /*
- * Currently usable region size. Can grow up to region_size. Can
- * shrink due to VIRTIO_MEM_REQ_UNPLUG_ALL (in which case no config
- * update will be sent).
- */
- __le64 usable_region_size;
- /*
- * Currently used size. Changes due to plug/unplug requests, but no
- * config updates will be sent.
- */
- __le64 plugged_size;
- /* Requested size. New plug requests cannot exceed it. Can change. */
- __le64 requested_size;
-};
-
-#endif /* _LINUX_VIRTIO_MEM_H */
diff --git a/original/uapi/linux/virtio_mmio.h b/original/uapi/linux/virtio_mmio.h
index 0650f91..c4b0968 100644
--- a/original/uapi/linux/virtio_mmio.h
+++ b/original/uapi/linux/virtio_mmio.h
@@ -122,17 +122,6 @@
#define VIRTIO_MMIO_QUEUE_USED_LOW 0x0a0
#define VIRTIO_MMIO_QUEUE_USED_HIGH 0x0a4
-/* Shared memory region id */
-#define VIRTIO_MMIO_SHM_SEL 0x0ac
-
-/* Shared memory region length, 64 bits in two halves */
-#define VIRTIO_MMIO_SHM_LEN_LOW 0x0b0
-#define VIRTIO_MMIO_SHM_LEN_HIGH 0x0b4
-
-/* Shared memory region base address, 64 bits in two halves */
-#define VIRTIO_MMIO_SHM_BASE_LOW 0x0b8
-#define VIRTIO_MMIO_SHM_BASE_HIGH 0x0bc
-
/* Configuration atomicity value */
#define VIRTIO_MMIO_CONFIG_GENERATION 0x0fc
diff --git a/original/uapi/linux/virtio_net.h b/original/uapi/linux/virtio_net.h
index 3f55a42..a3715a3 100644
--- a/original/uapi/linux/virtio_net.h
+++ b/original/uapi/linux/virtio_net.h
@@ -57,9 +57,6 @@
* Steering */
#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
-#define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */
-#define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */
-#define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */
#define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device
* with the same MAC.
*/
@@ -72,46 +69,29 @@
#define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
#define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */
-/* supported/enabled hash types */
-#define VIRTIO_NET_RSS_HASH_TYPE_IPv4 (1 << 0)
-#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4 (1 << 1)
-#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4 (1 << 2)
-#define VIRTIO_NET_RSS_HASH_TYPE_IPv6 (1 << 3)
-#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6 (1 << 4)
-#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6 (1 << 5)
-#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX (1 << 6)
-#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX (1 << 7)
-#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX (1 << 8)
-
struct virtio_net_config {
/* The config defining mac address (if VIRTIO_NET_F_MAC) */
__u8 mac[ETH_ALEN];
/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
- __virtio16 status;
+ __u16 status;
/* Maximum number of each of transmit and receive queues;
* see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ.
* Legal values are between 1 and 0x8000
*/
- __virtio16 max_virtqueue_pairs;
+ __u16 max_virtqueue_pairs;
/* Default maximum transmit unit advice */
- __virtio16 mtu;
+ __u16 mtu;
/*
* speed, in units of 1Mb. All values 0 to INT_MAX are legal.
* Any other value stands for unknown.
*/
- __le32 speed;
+ __u32 speed;
/*
* 0x00 - half duplex
* 0x01 - full duplex
* Any other value stands for unknown.
*/
__u8 duplex;
- /* maximum size of RSS key */
- __u8 rss_max_key_size;
- /* maximum number of indirection table entries */
- __le16 rss_max_indirection_table_length;
- /* bitmask of supported VIRTIO_NET_RSS_HASH_ types */
- __le32 supported_hash_types;
} __attribute__((packed));
/*
@@ -124,7 +104,6 @@ struct virtio_net_config {
struct virtio_net_hdr_v1 {
#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
#define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
-#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */
__u8 flags;
#define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
@@ -134,46 +113,11 @@ struct virtio_net_hdr_v1 {
__u8 gso_type;
__virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
__virtio16 gso_size; /* Bytes to append to hdr_len per frame */
- union {
- struct {
- __virtio16 csum_start;
- __virtio16 csum_offset;
- };
- /* Checksum calculation */
- struct {
- /* Position to start checksumming from */
- __virtio16 start;
- /* Offset after that to place checksum */
- __virtio16 offset;
- } csum;
- /* Receive Segment Coalescing */
- struct {
- /* Number of coalesced segments */
- __le16 segments;
- /* Number of duplicated acks */
- __le16 dup_acks;
- } rsc;
- };
+ __virtio16 csum_start; /* Position to start checksumming from */
+ __virtio16 csum_offset; /* Offset after that to place checksum */
__virtio16 num_buffers; /* Number of merged rx buffers */
};
-struct virtio_net_hdr_v1_hash {
- struct virtio_net_hdr_v1 hdr;
- __le32 hash_value;
-#define VIRTIO_NET_HASH_REPORT_NONE 0
-#define VIRTIO_NET_HASH_REPORT_IPv4 1
-#define VIRTIO_NET_HASH_REPORT_TCPv4 2
-#define VIRTIO_NET_HASH_REPORT_UDPv4 3
-#define VIRTIO_NET_HASH_REPORT_IPv6 4
-#define VIRTIO_NET_HASH_REPORT_TCPv6 5
-#define VIRTIO_NET_HASH_REPORT_UDPv6 6
-#define VIRTIO_NET_HASH_REPORT_IPv6_EX 7
-#define VIRTIO_NET_HASH_REPORT_TCPv6_EX 8
-#define VIRTIO_NET_HASH_REPORT_UDPv6_EX 9
- __le16 hash_report;
- __le16 padding;
-};
-
#ifndef VIRTIO_NET_NO_LEGACY
/* This header comes first in the scatter-gather list.
* For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
@@ -284,9 +228,7 @@ struct virtio_net_ctrl_mac {
/*
* Control Receive Flow Steering
- */
-#define VIRTIO_NET_CTRL_MQ 4
-/*
+ *
* The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET
* enables Receive Flow Steering, specifying the number of the transmit and
* receive queues that will be used. After the command is consumed and acked by
@@ -299,48 +241,12 @@ struct virtio_net_ctrl_mq {
__virtio16 virtqueue_pairs;
};
+#define VIRTIO_NET_CTRL_MQ 4
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000
/*
- * The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as
- * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures
- * the receive steering to use a hash calculated for incoming packet
- * to decide on receive virtqueue to place the packet. The command
- * also provides parameters to calculate a hash and receive virtqueue.
- */
-struct virtio_net_rss_config {
- __le32 hash_types;
- __le16 indirection_table_mask;
- __le16 unclassified_queue;
- __le16 indirection_table[1/* + indirection_table_mask */];
- __le16 max_tx_vq;
- __u8 hash_key_length;
- __u8 hash_key_data[/* hash_key_length */];
-};
-
- #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1
-
-/*
- * The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device
- * to include in the virtio header of the packet the value of the
- * calculated hash and the report type of hash. It also provides
- * parameters for hash calculation. The command requires feature
- * VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the
- * layout of virtio header as defined in virtio_net_hdr_v1_hash.
- */
-struct virtio_net_hash_config {
- __le32 hash_types;
- /* for compatibility with virtio_net_rss_config */
- __le16 reserved[4];
- __u8 hash_key_length;
- __u8 hash_key_data[/* hash_key_length */];
-};
-
- #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG 2
-
-/*
* Control network offloads
*
* Reconfigures the network offloads that Guest can handle.
diff --git a/original/uapi/linux/virtio_pci.h b/original/uapi/linux/virtio_pci.h
index 3a86f36..90007a1 100644
--- a/original/uapi/linux/virtio_pci.h
+++ b/original/uapi/linux/virtio_pci.h
@@ -113,8 +113,6 @@
#define VIRTIO_PCI_CAP_DEVICE_CFG 4
/* PCI configuration access */
#define VIRTIO_PCI_CAP_PCI_CFG 5
-/* Additional shared memory capability */
-#define VIRTIO_PCI_CAP_SHARED_MEMORY_CFG 8
/* This is the PCI capability header: */
struct virtio_pci_cap {
@@ -123,18 +121,11 @@ struct virtio_pci_cap {
__u8 cap_len; /* Generic PCI field: capability length */
__u8 cfg_type; /* Identifies the structure. */
__u8 bar; /* Where to find it. */
- __u8 id; /* Multiple capabilities of the same type */
- __u8 padding[2]; /* Pad to full dword. */
+ __u8 padding[3]; /* Pad to full dword. */
__le32 offset; /* Offset within bar. */
__le32 length; /* Length of the structure, in bytes. */
};
-struct virtio_pci_cap64 {
- struct virtio_pci_cap cap;
- __le32 offset_hi; /* Most sig 32 bits of offset */
- __le32 length_hi; /* Most sig 32 bits of length */
-};
-
struct virtio_pci_notify_cap {
struct virtio_pci_cap cap;
__le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */
diff --git a/original/uapi/linux/virtio_pmem.h b/original/uapi/linux/virtio_pmem.h
index d676b36..b022787 100644
--- a/original/uapi/linux/virtio_pmem.h
+++ b/original/uapi/linux/virtio_pmem.h
@@ -15,8 +15,8 @@
#include <linux/virtio_config.h>
struct virtio_pmem_config {
- __le64 start;
- __le64 size;
+ __u64 start;
+ __u64 size;
};
#define VIRTIO_PMEM_REQ_TYPE_FLUSH 0
diff --git a/original/uapi/linux/virtio_ring.h b/original/uapi/linux/virtio_ring.h
index 476d3e5..559f42e 100644
--- a/original/uapi/linux/virtio_ring.h
+++ b/original/uapi/linux/virtio_ring.h
@@ -86,13 +86,6 @@
* at the end of the used ring. Guest should ignore the used->flags field. */
#define VIRTIO_RING_F_EVENT_IDX 29
-/* Alignment requirements for vring elements.
- * When using pre-virtio 1.0 layout, these fall out naturally.
- */
-#define VRING_AVAIL_ALIGN_SIZE 2
-#define VRING_USED_ALIGN_SIZE 4
-#define VRING_DESC_ALIGN_SIZE 16
-
/* Virtio ring descriptors: 16 bytes. These can chain together via "next". */
struct vring_desc {
/* Address (guest-physical). */
@@ -119,47 +112,28 @@ struct vring_used_elem {
__virtio32 len;
};
-typedef struct vring_used_elem __attribute__((aligned(VRING_USED_ALIGN_SIZE)))
- vring_used_elem_t;
-
struct vring_used {
__virtio16 flags;
__virtio16 idx;
- vring_used_elem_t ring[];
+ struct vring_used_elem ring[];
};
-/*
- * The ring element addresses are passed between components with different
- * alignments assumptions. Thus, we might need to decrease the compiler-selected
- * alignment, and so must use a typedef to make sure the aligned attribute
- * actually takes hold:
- *
- * https://gcc.gnu.org/onlinedocs//gcc/Common-Type-Attributes.html#Common-Type-Attributes
- *
- * When used on a struct, or struct member, the aligned attribute can only
- * increase the alignment; in order to decrease it, the packed attribute must
- * be specified as well. When used as part of a typedef, the aligned attribute
- * can both increase and decrease alignment, and specifying the packed
- * attribute generates a warning.
- */
-typedef struct vring_desc __attribute__((aligned(VRING_DESC_ALIGN_SIZE)))
- vring_desc_t;
-typedef struct vring_avail __attribute__((aligned(VRING_AVAIL_ALIGN_SIZE)))
- vring_avail_t;
-typedef struct vring_used __attribute__((aligned(VRING_USED_ALIGN_SIZE)))
- vring_used_t;
-
struct vring {
unsigned int num;
- vring_desc_t *desc;
+ struct vring_desc *desc;
- vring_avail_t *avail;
+ struct vring_avail *avail;
- vring_used_t *used;
+ struct vring_used *used;
};
-#ifndef VIRTIO_RING_NO_LEGACY
+/* Alignment requirements for vring elements.
+ * When using pre-virtio 1.0 layout, these fall out naturally.
+ */
+#define VRING_AVAIL_ALIGN_SIZE 2
+#define VRING_USED_ALIGN_SIZE 4
+#define VRING_DESC_ALIGN_SIZE 16
/* The standard layout for the ring is a continuous chunk of memory which looks
* like this. We assume num is a power of 2.
@@ -207,8 +181,6 @@ static inline unsigned vring_size(unsigned int num, unsigned long align)
+ sizeof(__virtio16) * 3 + sizeof(struct vring_used_elem) * num;
}
-#endif /* VIRTIO_RING_NO_LEGACY */
-
/* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */
/* Assuming a given event_idx value from the other side, if
* we have just incremented index from old to new_idx,
diff --git a/original/uapi/linux/virtio_scsi.h b/original/uapi/linux/virtio_scsi.h
index 0abaae4..cc18ef8 100644
--- a/original/uapi/linux/virtio_scsi.h
+++ b/original/uapi/linux/virtio_scsi.h
@@ -103,16 +103,16 @@ struct virtio_scsi_event {
} __attribute__((packed));
struct virtio_scsi_config {
- __virtio32 num_queues;
- __virtio32 seg_max;
- __virtio32 max_sectors;
- __virtio32 cmd_per_lun;
- __virtio32 event_info_size;
- __virtio32 sense_size;
- __virtio32 cdb_size;
- __virtio16 max_channel;
- __virtio16 max_target;
- __virtio32 max_lun;
+ __u32 num_queues;
+ __u32 seg_max;
+ __u32 max_sectors;
+ __u32 cmd_per_lun;
+ __u32 event_info_size;
+ __u32 sense_size;
+ __u32 cdb_size;
+ __u16 max_channel;
+ __u16 max_target;
+ __u32 max_lun;
} __attribute__((packed));
/* Feature Bits */
diff --git a/original/uapi/linux/vm_sockets.h b/original/uapi/linux/vm_sockets.h
index 46918a1..68d57c5 100644
--- a/original/uapi/linux/vm_sockets.h
+++ b/original/uapi/linux/vm_sockets.h
@@ -18,7 +18,6 @@
#define _UAPI_VM_SOCKETS_H
#include <linux/socket.h>
-#include <linux/types.h>
/* Option name for STREAM socket buffer size. Use as the option name in
* setsockopt(3) or getsockopt(3) to set or get an unsigned long long that
@@ -100,13 +99,11 @@
#define VMADDR_CID_HYPERVISOR 0
-/* Use this as the destination CID in an address when referring to the
- * local communication (loopback).
- * (This was VMADDR_CID_RESERVED, but even VMCI doesn't use it anymore,
- * it was a legacy value from an older release).
+/* This CID is specific to VMCI and can be considered reserved (even VMCI
+ * doesn't use it anymore, it's a legacy value from an older release).
*/
-#define VMADDR_CID_LOCAL 1
+#define VMADDR_CID_RESERVED 1
/* Use this as the destination CID in an address when referring to the host
* (any process other than the hypervisor). VMCI relies on it being 2, but
@@ -115,26 +112,6 @@
#define VMADDR_CID_HOST 2
-/* The current default use case for the vsock channel is the following:
- * local vsock communication between guest and host and nested VMs setup.
- * In addition to this, implicitly, the vsock packets are forwarded to the host
- * if no host->guest vsock transport is set.
- *
- * Set this flag value in the sockaddr_vm corresponding field if the vsock
- * packets need to be always forwarded to the host. Using this behavior,
- * vsock communication between sibling VMs can be setup.
- *
- * This way can explicitly distinguish between vsock channels created for
- * different use cases, such as nested VMs (or local communication between
- * guest and host) and sibling VMs.
- *
- * The flag can be set in the connect logic in the user space application flow.
- * In the listen logic (from kernel space) the flag is set on the remote peer
- * address. This happens for an incoming connection when it is routed from the
- * host and comes from the guest (local CID and remote CID > VMADDR_CID_HOST).
- */
-#define VMADDR_FLAG_TO_HOST 0x01
-
/* Invalid vSockets version. */
#define VM_SOCKETS_INVALID_VERSION -1U
@@ -169,13 +146,10 @@ struct sockaddr_vm {
unsigned short svm_reserved1;
unsigned int svm_port;
unsigned int svm_cid;
- __u8 svm_flags;
unsigned char svm_zero[sizeof(struct sockaddr) -
sizeof(sa_family_t) -
sizeof(unsigned short) -
- sizeof(unsigned int) -
- sizeof(unsigned int) -
- sizeof(__u8)];
+ sizeof(unsigned int) - sizeof(unsigned int)];
};
#define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9)
diff --git a/original/uapi/linux/vsoc_shm.h b/original/uapi/linux/vsoc_shm.h
new file mode 100644
index 0000000..6291fb2
--- /dev/null
+++ b/original/uapi/linux/vsoc_shm.h
@@ -0,0 +1,295 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2017 Google, Inc.
+ *
+ */
+
+#ifndef _UAPI_LINUX_VSOC_SHM_H
+#define _UAPI_LINUX_VSOC_SHM_H
+
+#include <linux/types.h>
+
+/**
+ * A permission is a token that permits a receiver to read and/or write an area
+ * of memory within a Vsoc region.
+ *
+ * An fd_scoped permission grants both read and write access, and can be
+ * attached to a file description (see open(2)).
+ * Ownership of the area can then be shared by passing a file descriptor
+ * among processes.
+ *
+ * begin_offset and end_offset define the area of memory that is controlled by
+ * the permission. owner_offset points to a word, also in shared memory, that
+ * controls ownership of the area.
+ *
+ * ownership of the region expires when the associated file description is
+ * released.
+ *
+ * At most one permission can be attached to each file description.
+ *
+ * This is useful when implementing HALs like gralloc that scope and pass
+ * ownership of shared resources via file descriptors.
+ *
+ * The caller is responsibe for doing any fencing.
+ *
+ * The calling process will normally identify a currently free area of
+ * memory. It will construct a proposed fd_scoped_permission_arg structure:
+ *
+ * begin_offset and end_offset describe the area being claimed
+ *
+ * owner_offset points to the location in shared memory that indicates the
+ * owner of the area.
+ *
+ * owned_value is the value that will be stored in owner_offset iff the
+ * permission can be granted. It must be different than VSOC_REGION_FREE.
+ *
+ * Two fd_scoped_permission structures are compatible if they vary only by
+ * their owned_value fields.
+ *
+ * The driver ensures that, for any group of simultaneous callers proposing
+ * compatible fd_scoped_permissions, it will accept exactly one of the
+ * propopsals. The other callers will get a failure with errno of EAGAIN.
+ *
+ * A process receiving a file descriptor can identify the region being
+ * granted using the VSOC_GET_FD_SCOPED_PERMISSION ioctl.
+ */
+struct fd_scoped_permission {
+ __u32 begin_offset;
+ __u32 end_offset;
+ __u32 owner_offset;
+ __u32 owned_value;
+};
+
+/*
+ * This value represents a free area of memory. The driver expects to see this
+ * value at owner_offset when creating a permission otherwise it will not do it,
+ * and will write this value back once the permission is no longer needed.
+ */
+#define VSOC_REGION_FREE ((__u32)0)
+
+/**
+ * ioctl argument for VSOC_CREATE_FD_SCOPE_PERMISSION
+ */
+struct fd_scoped_permission_arg {
+ struct fd_scoped_permission perm;
+ __s32 managed_region_fd;
+};
+
+#define VSOC_NODE_FREE ((__u32)0)
+
+/*
+ * Describes a signal table in shared memory. Each non-zero entry in the
+ * table indicates that the receiver should signal the futex at the given
+ * offset. Offsets are relative to the region, not the shared memory window.
+ *
+ * interrupt_signalled_offset is used to reliably signal interrupts across the
+ * vmm boundary. There are two roles: transmitter and receiver. For example,
+ * in the host_to_guest_signal_table the host is the transmitter and the
+ * guest is the receiver. The protocol is as follows:
+ *
+ * 1. The transmitter should convert the offset of the futex to an offset
+ * in the signal table [0, (1 << num_nodes_lg2))
+ * The transmitter can choose any appropriate hashing algorithm, including
+ * hash = futex_offset & ((1 << num_nodes_lg2) - 1)
+ *
+ * 3. The transmitter should atomically compare and swap futex_offset with 0
+ * at hash. There are 3 possible outcomes
+ * a. The swap fails because the futex_offset is already in the table.
+ * The transmitter should stop.
+ * b. Some other offset is in the table. This is a hash collision. The
+ * transmitter should move to another table slot and try again. One
+ * possible algorithm:
+ * hash = (hash + 1) & ((1 << num_nodes_lg2) - 1)
+ * c. The swap worked. Continue below.
+ *
+ * 3. The transmitter atomically swaps 1 with the value at the
+ * interrupt_signalled_offset. There are two outcomes:
+ * a. The prior value was 1. In this case an interrupt has already been
+ * posted. The transmitter is done.
+ * b. The prior value was 0, indicating that the receiver may be sleeping.
+ * The transmitter will issue an interrupt.
+ *
+ * 4. On waking the receiver immediately exchanges a 0 with the
+ * interrupt_signalled_offset. If it receives a 0 then this a spurious
+ * interrupt. That may occasionally happen in the current protocol, but
+ * should be rare.
+ *
+ * 5. The receiver scans the signal table by atomicaly exchanging 0 at each
+ * location. If a non-zero offset is returned from the exchange the
+ * receiver wakes all sleepers at the given offset:
+ * futex((int*)(region_base + old_value), FUTEX_WAKE, MAX_INT);
+ *
+ * 6. The receiver thread then does a conditional wait, waking immediately
+ * if the value at interrupt_signalled_offset is non-zero. This catches cases
+ * here additional signals were posted while the table was being scanned.
+ * On the guest the wait is handled via the VSOC_WAIT_FOR_INCOMING_INTERRUPT
+ * ioctl.
+ */
+struct vsoc_signal_table_layout {
+ /* log_2(Number of signal table entries) */
+ __u32 num_nodes_lg2;
+ /*
+ * Offset to the first signal table entry relative to the start of the
+ * region
+ */
+ __u32 futex_uaddr_table_offset;
+ /*
+ * Offset to an atomic_t / atomic uint32_t. A non-zero value indicates
+ * that one or more offsets are currently posted in the table.
+ * semi-unique access to an entry in the table
+ */
+ __u32 interrupt_signalled_offset;
+};
+
+#define VSOC_REGION_WHOLE ((__s32)0)
+#define VSOC_DEVICE_NAME_SZ 16
+
+/**
+ * Each HAL would (usually) talk to a single device region
+ * Mulitple entities care about these regions:
+ * - The ivshmem_server will populate the regions in shared memory
+ * - The guest kernel will read the region, create minor device nodes, and
+ * allow interested parties to register for FUTEX_WAKE events in the region
+ * - HALs will access via the minor device nodes published by the guest kernel
+ * - Host side processes will access the region via the ivshmem_server:
+ * 1. Pass name to ivshmem_server at a UNIX socket
+ * 2. ivshmemserver will reply with 2 fds:
+ * - host->guest doorbell fd
+ * - guest->host doorbell fd
+ * - fd for the shared memory region
+ * - region offset
+ * 3. Start a futex receiver thread on the doorbell fd pointed at the
+ * signal_nodes
+ */
+struct vsoc_device_region {
+ __u16 current_version;
+ __u16 min_compatible_version;
+ __u32 region_begin_offset;
+ __u32 region_end_offset;
+ __u32 offset_of_region_data;
+ struct vsoc_signal_table_layout guest_to_host_signal_table;
+ struct vsoc_signal_table_layout host_to_guest_signal_table;
+ /* Name of the device. Must always be terminated with a '\0', so
+ * the longest supported device name is 15 characters.
+ */
+ char device_name[VSOC_DEVICE_NAME_SZ];
+ /* There are two ways that permissions to access regions are handled:
+ * - When subdivided_by is VSOC_REGION_WHOLE, any process that can
+ * open the device node for the region gains complete access to it.
+ * - When subdivided is set processes that open the region cannot
+ * access it. Access to a sub-region must be established by invoking
+ * the VSOC_CREATE_FD_SCOPE_PERMISSION ioctl on the region
+ * referenced in subdivided_by, providing a fileinstance
+ * (represented by a fd) opened on this region.
+ */
+ __u32 managed_by;
+};
+
+/*
+ * The vsoc layout descriptor.
+ * The first 4K should be reserved for the shm header and region descriptors.
+ * The regions should be page aligned.
+ */
+
+struct vsoc_shm_layout_descriptor {
+ __u16 major_version;
+ __u16 minor_version;
+
+ /* size of the shm. This may be redundant but nice to have */
+ __u32 size;
+
+ /* number of shared memory regions */
+ __u32 region_count;
+
+ /* The offset to the start of region descriptors */
+ __u32 vsoc_region_desc_offset;
+};
+
+/*
+ * This specifies the current version that should be stored in
+ * vsoc_shm_layout_descriptor.major_version and
+ * vsoc_shm_layout_descriptor.minor_version.
+ * It should be updated only if the vsoc_device_region and
+ * vsoc_shm_layout_descriptor structures have changed.
+ * Versioning within each region is transferred
+ * via the min_compatible_version and current_version fields in
+ * vsoc_device_region. The driver does not consult these fields: they are left
+ * for the HALs and host processes and will change independently of the layout
+ * version.
+ */
+#define CURRENT_VSOC_LAYOUT_MAJOR_VERSION 2
+#define CURRENT_VSOC_LAYOUT_MINOR_VERSION 0
+
+#define VSOC_CREATE_FD_SCOPED_PERMISSION \
+ _IOW(0xF5, 0, struct fd_scoped_permission)
+#define VSOC_GET_FD_SCOPED_PERMISSION _IOR(0xF5, 1, struct fd_scoped_permission)
+
+/*
+ * This is used to signal the host to scan the guest_to_host_signal_table
+ * for new futexes to wake. This sends an interrupt if one is not already
+ * in flight.
+ */
+#define VSOC_MAYBE_SEND_INTERRUPT_TO_HOST _IO(0xF5, 2)
+
+/*
+ * When this returns the guest will scan host_to_guest_signal_table to
+ * check for new futexes to wake.
+ */
+/* TODO(ghartman): Consider moving this to the bottom half */
+#define VSOC_WAIT_FOR_INCOMING_INTERRUPT _IO(0xF5, 3)
+
+/*
+ * Guest HALs will use this to retrieve the region description after
+ * opening their device node.
+ */
+#define VSOC_DESCRIBE_REGION _IOR(0xF5, 4, struct vsoc_device_region)
+
+/*
+ * Wake any threads that may be waiting for a host interrupt on this region.
+ * This is mostly used during shutdown.
+ */
+#define VSOC_SELF_INTERRUPT _IO(0xF5, 5)
+
+/*
+ * This is used to signal the host to scan the guest_to_host_signal_table
+ * for new futexes to wake. This sends an interrupt unconditionally.
+ */
+#define VSOC_SEND_INTERRUPT_TO_HOST _IO(0xF5, 6)
+
+enum wait_types {
+ VSOC_WAIT_UNDEFINED = 0,
+ VSOC_WAIT_IF_EQUAL = 1,
+ VSOC_WAIT_IF_EQUAL_TIMEOUT = 2
+};
+
+/*
+ * Wait for a condition to be true
+ *
+ * Note, this is sized and aligned so the 32 bit and 64 bit layouts are
+ * identical.
+ */
+struct vsoc_cond_wait {
+ /* Input: Offset of the 32 bit word to check */
+ __u32 offset;
+ /* Input: Value that will be compared with the offset */
+ __u32 value;
+ /* Monotonic time to wake at in seconds */
+ __u64 wake_time_sec;
+ /* Input: Monotonic time to wait in nanoseconds */
+ __u32 wake_time_nsec;
+ /* Input: Type of wait */
+ __u32 wait_type;
+ /* Output: Number of times the thread woke before returning. */
+ __u32 wakes;
+ /* Ensure that we're 8-byte aligned and 8 byte length for 32/64 bit
+ * compatibility.
+ */
+ __u32 reserved_1;
+};
+
+#define VSOC_COND_WAIT _IOWR(0xF5, 7, struct vsoc_cond_wait)
+
+/* Wake any local threads waiting at the offset given in arg */
+#define VSOC_COND_WAKE _IO(0xF5, 8)
+
+#endif /* _UAPI_LINUX_VSOC_SHM_H */
diff --git a/original/uapi/linux/watch_queue.h b/original/uapi/linux/watch_queue.h
deleted file mode 100644
index c3d8320..0000000
--- a/original/uapi/linux/watch_queue.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_LINUX_WATCH_QUEUE_H
-#define _UAPI_LINUX_WATCH_QUEUE_H
-
-#include <linux/types.h>
-#include <linux/fcntl.h>
-#include <linux/ioctl.h>
-
-#define O_NOTIFICATION_PIPE O_EXCL /* Parameter to pipe2() selecting notification pipe */
-
-#define IOC_WATCH_QUEUE_SET_SIZE _IO('W', 0x60) /* Set the size in pages */
-#define IOC_WATCH_QUEUE_SET_FILTER _IO('W', 0x61) /* Set the filter */
-
-enum watch_notification_type {
- WATCH_TYPE_META = 0, /* Special record */
- WATCH_TYPE_KEY_NOTIFY = 1, /* Key change event notification */
- WATCH_TYPE__NR = 2
-};
-
-enum watch_meta_notification_subtype {
- WATCH_META_REMOVAL_NOTIFICATION = 0, /* Watched object was removed */
- WATCH_META_LOSS_NOTIFICATION = 1, /* Data loss occurred */
-};
-
-/*
- * Notification record header. This is aligned to 64-bits so that subclasses
- * can contain __u64 fields.
- */
-struct watch_notification {
- __u32 type:24; /* enum watch_notification_type */
- __u32 subtype:8; /* Type-specific subtype (filterable) */
- __u32 info;
-#define WATCH_INFO_LENGTH 0x0000007f /* Length of record */
-#define WATCH_INFO_LENGTH__SHIFT 0
-#define WATCH_INFO_ID 0x0000ff00 /* ID of watchpoint */
-#define WATCH_INFO_ID__SHIFT 8
-#define WATCH_INFO_TYPE_INFO 0xffff0000 /* Type-specific info */
-#define WATCH_INFO_TYPE_INFO__SHIFT 16
-#define WATCH_INFO_FLAG_0 0x00010000 /* Type-specific info, flag bit 0 */
-#define WATCH_INFO_FLAG_1 0x00020000 /* ... */
-#define WATCH_INFO_FLAG_2 0x00040000
-#define WATCH_INFO_FLAG_3 0x00080000
-#define WATCH_INFO_FLAG_4 0x00100000
-#define WATCH_INFO_FLAG_5 0x00200000
-#define WATCH_INFO_FLAG_6 0x00400000
-#define WATCH_INFO_FLAG_7 0x00800000
-};
-
-/*
- * Notification filtering rules (IOC_WATCH_QUEUE_SET_FILTER).
- */
-struct watch_notification_type_filter {
- __u32 type; /* Type to apply filter to */
- __u32 info_filter; /* Filter on watch_notification::info */
- __u32 info_mask; /* Mask of relevant bits in info_filter */
- __u32 subtype_filter[8]; /* Bitmask of subtypes to filter on */
-};
-
-struct watch_notification_filter {
- __u32 nr_filters; /* Number of filters */
- __u32 __reserved; /* Must be 0 */
- struct watch_notification_type_filter filters[];
-};
-
-
-/*
- * Extended watch removal notification. This is used optionally if the type
- * wants to indicate an identifier for the object being watched, if there is
- * such. This can be distinguished by the length.
- *
- * type -> WATCH_TYPE_META
- * subtype -> WATCH_META_REMOVAL_NOTIFICATION
- */
-struct watch_notification_removal {
- struct watch_notification watch;
- __u64 id; /* Type-dependent identifier */
-};
-
-/*
- * Type of key/keyring change notification.
- */
-enum key_notification_subtype {
- NOTIFY_KEY_INSTANTIATED = 0, /* Key was instantiated (aux is error code) */
- NOTIFY_KEY_UPDATED = 1, /* Key was updated */
- NOTIFY_KEY_LINKED = 2, /* Key (aux) was added to watched keyring */
- NOTIFY_KEY_UNLINKED = 3, /* Key (aux) was removed from watched keyring */
- NOTIFY_KEY_CLEARED = 4, /* Keyring was cleared */
- NOTIFY_KEY_REVOKED = 5, /* Key was revoked */
- NOTIFY_KEY_INVALIDATED = 6, /* Key was invalidated */
- NOTIFY_KEY_SETATTR = 7, /* Key's attributes got changed */
-};
-
-/*
- * Key/keyring notification record.
- * - watch.type = WATCH_TYPE_KEY_NOTIFY
- * - watch.subtype = enum key_notification_type
- */
-struct key_notification {
- struct watch_notification watch;
- __u32 key_id; /* The key/keyring affected */
- __u32 aux; /* Per-type auxiliary data */
-};
-
-#endif /* _UAPI_LINUX_WATCH_QUEUE_H */
diff --git a/original/uapi/linux/wimax.h b/original/uapi/linux/wimax.h
new file mode 100644
index 0000000..9f6b77a
--- /dev/null
+++ b/original/uapi/linux/wimax.h
@@ -0,0 +1,239 @@
+/*
+ * Linux WiMax
+ * API for user space
+ *
+ *
+ * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * Intel Corporation <linux-wimax@intel.com>
+ * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+ * - Initial implementation
+ *
+ *
+ * This file declares the user/kernel protocol that is spoken over
+ * Generic Netlink, as well as any type declaration that is to be used
+ * by kernel and user space.
+ *
+ * It is intended for user space to clone it verbatim to use it as a
+ * primary reference for definitions.
+ *
+ * Stuff intended for kernel usage as well as full protocol and stack
+ * documentation is rooted in include/net/wimax.h.
+ */
+
+#ifndef __LINUX__WIMAX_H__
+#define __LINUX__WIMAX_H__
+
+#include <linux/types.h>
+
+enum {
+ /**
+ * Version of the interface (unsigned decimal, MMm, max 25.5)
+ * M - Major: change if removing or modifying an existing call.
+ * m - minor: change when adding a new call
+ */
+ WIMAX_GNL_VERSION = 01,
+ /* Generic NetLink attributes */
+ WIMAX_GNL_ATTR_INVALID = 0x00,
+ WIMAX_GNL_ATTR_MAX = 10,
+};
+
+
+/*
+ * Generic NetLink operations
+ *
+ * Most of these map to an API call; _OP_ stands for operation, _RP_
+ * for reply and _RE_ for report (aka: signal).
+ */
+enum {
+ WIMAX_GNL_OP_MSG_FROM_USER, /* User to kernel message */
+ WIMAX_GNL_OP_MSG_TO_USER, /* Kernel to user message */
+ WIMAX_GNL_OP_RFKILL, /* Run wimax_rfkill() */
+ WIMAX_GNL_OP_RESET, /* Run wimax_rfkill() */
+ WIMAX_GNL_RE_STATE_CHANGE, /* Report: status change */
+ WIMAX_GNL_OP_STATE_GET, /* Request for current state */
+};
+
+
+/* Message from user / to user */
+enum {
+ WIMAX_GNL_MSG_IFIDX = 1,
+ WIMAX_GNL_MSG_PIPE_NAME,
+ WIMAX_GNL_MSG_DATA,
+};
+
+
+/*
+ * wimax_rfkill()
+ *
+ * The state of the radio (ON/OFF) is mapped to the rfkill subsystem's
+ * switch state (DISABLED/ENABLED).
+ */
+enum wimax_rf_state {
+ WIMAX_RF_OFF = 0, /* Radio is off, rfkill on/enabled */
+ WIMAX_RF_ON = 1, /* Radio is on, rfkill off/disabled */
+ WIMAX_RF_QUERY = 2,
+};
+
+/* Attributes */
+enum {
+ WIMAX_GNL_RFKILL_IFIDX = 1,
+ WIMAX_GNL_RFKILL_STATE,
+};
+
+
+/* Attributes for wimax_reset() */
+enum {
+ WIMAX_GNL_RESET_IFIDX = 1,
+};
+
+/* Attributes for wimax_state_get() */
+enum {
+ WIMAX_GNL_STGET_IFIDX = 1,
+};
+
+/*
+ * Attributes for the Report State Change
+ *
+ * For now we just have the old and new states; new attributes might
+ * be added later on.
+ */
+enum {
+ WIMAX_GNL_STCH_IFIDX = 1,
+ WIMAX_GNL_STCH_STATE_OLD,
+ WIMAX_GNL_STCH_STATE_NEW,
+};
+
+
+/**
+ * enum wimax_st - The different states of a WiMAX device
+ * @__WIMAX_ST_NULL: The device structure has been allocated and zeroed,
+ * but still wimax_dev_add() hasn't been called. There is no state.
+ *
+ * @WIMAX_ST_DOWN: The device has been registered with the WiMAX and
+ * networking stacks, but it is not initialized (normally that is
+ * done with 'ifconfig DEV up' [or equivalent], which can upload
+ * firmware and enable communications with the device).
+ * In this state, the device is powered down and using as less
+ * power as possible.
+ * This state is the default after a call to wimax_dev_add(). It
+ * is ok to have drivers move directly to %WIMAX_ST_UNINITIALIZED
+ * or %WIMAX_ST_RADIO_OFF in _probe() after the call to
+ * wimax_dev_add().
+ * It is recommended that the driver leaves this state when
+ * calling 'ifconfig DEV up' and enters it back on 'ifconfig DEV
+ * down'.
+ *
+ * @__WIMAX_ST_QUIESCING: The device is being torn down, so no API
+ * operations are allowed to proceed except the ones needed to
+ * complete the device clean up process.
+ *
+ * @WIMAX_ST_UNINITIALIZED: [optional] Communication with the device
+ * is setup, but the device still requires some configuration
+ * before being operational.
+ * Some WiMAX API calls might work.
+ *
+ * @WIMAX_ST_RADIO_OFF: The device is fully up; radio is off (wether
+ * by hardware or software switches).
+ * It is recommended to always leave the device in this state
+ * after initialization.
+ *
+ * @WIMAX_ST_READY: The device is fully up and radio is on.
+ *
+ * @WIMAX_ST_SCANNING: [optional] The device has been instructed to
+ * scan. In this state, the device cannot be actively connected to
+ * a network.
+ *
+ * @WIMAX_ST_CONNECTING: The device is connecting to a network. This
+ * state exists because in some devices, the connect process can
+ * include a number of negotiations between user space, kernel
+ * space and the device. User space needs to know what the device
+ * is doing. If the connect sequence in a device is atomic and
+ * fast, the device can transition directly to CONNECTED
+ *
+ * @WIMAX_ST_CONNECTED: The device is connected to a network.
+ *
+ * @__WIMAX_ST_INVALID: This is an invalid state used to mark the
+ * maximum numeric value of states.
+ *
+ * Description:
+ *
+ * Transitions from one state to another one are atomic and can only
+ * be caused in kernel space with wimax_state_change(). To read the
+ * state, use wimax_state_get().
+ *
+ * States starting with __ are internal and shall not be used or
+ * referred to by drivers or userspace. They look ugly, but that's the
+ * point -- if any use is made non-internal to the stack, it is easier
+ * to catch on review.
+ *
+ * All API operations [with well defined exceptions] will take the
+ * device mutex before starting and then check the state. If the state
+ * is %__WIMAX_ST_NULL, %WIMAX_ST_DOWN, %WIMAX_ST_UNINITIALIZED or
+ * %__WIMAX_ST_QUIESCING, it will drop the lock and quit with
+ * -%EINVAL, -%ENOMEDIUM, -%ENOTCONN or -%ESHUTDOWN.
+ *
+ * The order of the definitions is important, so we can do numerical
+ * comparisons (eg: < %WIMAX_ST_RADIO_OFF means the device is not ready
+ * to operate).
+ */
+/*
+ * The allowed state transitions are described in the table below
+ * (states in rows can go to states in columns where there is an X):
+ *
+ * UNINI RADIO READY SCAN CONNEC CONNEC
+ * NULL DOWN QUIESCING TIALIZED OFF NING TING TED
+ * NULL - x
+ * DOWN - x x x
+ * QUIESCING x -
+ * UNINITIALIZED x - x
+ * RADIO_OFF x - x
+ * READY x x - x x x
+ * SCANNING x x x - x x
+ * CONNECTING x x x x - x
+ * CONNECTED x x x -
+ *
+ * This table not available in kernel-doc because the formatting messes it up.
+ */
+ enum wimax_st {
+ __WIMAX_ST_NULL = 0,
+ WIMAX_ST_DOWN,
+ __WIMAX_ST_QUIESCING,
+ WIMAX_ST_UNINITIALIZED,
+ WIMAX_ST_RADIO_OFF,
+ WIMAX_ST_READY,
+ WIMAX_ST_SCANNING,
+ WIMAX_ST_CONNECTING,
+ WIMAX_ST_CONNECTED,
+ __WIMAX_ST_INVALID /* Always keep last */
+};
+
+
+#endif /* #ifndef __LINUX__WIMAX_H__ */
diff --git a/original/uapi/linux/wimax/i2400m.h b/original/uapi/linux/wimax/i2400m.h
new file mode 100644
index 0000000..fd198bc
--- /dev/null
+++ b/original/uapi/linux/wimax/i2400m.h
@@ -0,0 +1,572 @@
+/*
+ * Intel Wireless WiMax Connection 2400m
+ * Host-Device protocol interface definitions
+ *
+ *
+ * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * Intel Corporation <linux-wimax@intel.com>
+ * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+ * - Initial implementation
+ *
+ *
+ * This header defines the data structures and constants used to
+ * communicate with the device.
+ *
+ * BOOTMODE/BOOTROM/FIRMWARE UPLOAD PROTOCOL
+ *
+ * The firmware upload protocol is quite simple and only requires a
+ * handful of commands. See drivers/net/wimax/i2400m/fw.c for more
+ * details.
+ *
+ * The BCF data structure is for the firmware file header.
+ *
+ *
+ * THE DATA / CONTROL PROTOCOL
+ *
+ * This is the normal protocol spoken with the device once the
+ * firmware is uploaded. It transports data payloads and control
+ * messages back and forth.
+ *
+ * It consists 'messages' that pack one or more payloads each. The
+ * format is described in detail in drivers/net/wimax/i2400m/rx.c and
+ * tx.c.
+ *
+ *
+ * THE L3L4 PROTOCOL
+ *
+ * The term L3L4 refers to Layer 3 (the device), Layer 4 (the
+ * driver/host software).
+ *
+ * This is the control protocol used by the host to control the i2400m
+ * device (scan, connect, disconnect...). This is sent to / received
+ * as control frames. These frames consist of a header and zero or
+ * more TLVs with information. We call each control frame a "message".
+ *
+ * Each message is composed of:
+ *
+ * HEADER
+ * [TLV0 + PAYLOAD0]
+ * [TLV1 + PAYLOAD1]
+ * [...]
+ * [TLVN + PAYLOADN]
+ *
+ * The HEADER is defined by 'struct i2400m_l3l4_hdr'. The payloads are
+ * defined by a TLV structure (Type Length Value) which is a 'header'
+ * (struct i2400m_tlv_hdr) and then the payload.
+ *
+ * All integers are represented as Little Endian.
+ *
+ * - REQUESTS AND EVENTS
+ *
+ * The requests can be clasified as follows:
+ *
+ * COMMAND: implies a request from the host to the device requesting
+ * an action being performed. The device will reply with a
+ * message (with the same type as the command), status and
+ * no (TLV) payload. Execution of a command might cause
+ * events (of different type) to be sent later on as
+ * device's state changes.
+ *
+ * GET/SET: similar to COMMAND, but will not cause other
+ * EVENTs. The reply, in the case of GET, will contain
+ * TLVs with the requested information.
+ *
+ * EVENT: asynchronous messages sent from the device, maybe as a
+ * consequence of previous COMMANDs but disassociated from
+ * them.
+ *
+ * Only one request might be pending at the same time (ie: don't
+ * parallelize nor post another GET request before the previous
+ * COMMAND has been acknowledged with it's corresponding reply by the
+ * device).
+ *
+ * The different requests and their formats are described below:
+ *
+ * I2400M_MT_* Message types
+ * I2400M_MS_* Message status (for replies, events)
+ * i2400m_tlv_* TLVs
+ *
+ * data types are named 'struct i2400m_msg_OPNAME', OPNAME matching the
+ * operation.
+ */
+
+#ifndef __LINUX__WIMAX__I2400M_H__
+#define __LINUX__WIMAX__I2400M_H__
+
+#include <linux/types.h>
+#include <linux/if_ether.h>
+
+/*
+ * Host Device Interface (HDI) common to all busses
+ */
+
+/* Boot-mode (firmware upload mode) commands */
+
+/* Header for the firmware file */
+struct i2400m_bcf_hdr {
+ __le32 module_type;
+ __le32 header_len;
+ __le32 header_version;
+ __le32 module_id;
+ __le32 module_vendor;
+ __le32 date; /* BCD YYYMMDD */
+ __le32 size; /* in dwords */
+ __le32 key_size; /* in dwords */
+ __le32 modulus_size; /* in dwords */
+ __le32 exponent_size; /* in dwords */
+ __u8 reserved[88];
+} __attribute__ ((packed));
+
+/* Boot mode opcodes */
+enum i2400m_brh_opcode {
+ I2400M_BRH_READ = 1,
+ I2400M_BRH_WRITE = 2,
+ I2400M_BRH_JUMP = 3,
+ I2400M_BRH_SIGNED_JUMP = 8,
+ I2400M_BRH_HASH_PAYLOAD_ONLY = 9,
+};
+
+/* Boot mode command masks and stuff */
+enum i2400m_brh {
+ I2400M_BRH_SIGNATURE = 0xcbbc0000,
+ I2400M_BRH_SIGNATURE_MASK = 0xffff0000,
+ I2400M_BRH_SIGNATURE_SHIFT = 16,
+ I2400M_BRH_OPCODE_MASK = 0x0000000f,
+ I2400M_BRH_RESPONSE_MASK = 0x000000f0,
+ I2400M_BRH_RESPONSE_SHIFT = 4,
+ I2400M_BRH_DIRECT_ACCESS = 0x00000400,
+ I2400M_BRH_RESPONSE_REQUIRED = 0x00000200,
+ I2400M_BRH_USE_CHECKSUM = 0x00000100,
+};
+
+
+/**
+ * i2400m_bootrom_header - Header for a boot-mode command
+ *
+ * @cmd: the above command descriptor
+ * @target_addr: where on the device memory should the action be performed.
+ * @data_size: for read/write, amount of data to be read/written
+ * @block_checksum: checksum value (if applicable)
+ * @payload: the beginning of data attached to this header
+ */
+struct i2400m_bootrom_header {
+ __le32 command; /* Compose with enum i2400_brh */
+ __le32 target_addr;
+ __le32 data_size;
+ __le32 block_checksum;
+ char payload[0];
+} __attribute__ ((packed));
+
+
+/*
+ * Data / control protocol
+ */
+
+/* Packet types for the host-device interface */
+enum i2400m_pt {
+ I2400M_PT_DATA = 0,
+ I2400M_PT_CTRL,
+ I2400M_PT_TRACE, /* For device debug */
+ I2400M_PT_RESET_WARM, /* device reset */
+ I2400M_PT_RESET_COLD, /* USB[transport] reset, like reconnect */
+ I2400M_PT_EDATA, /* Extended RX data */
+ I2400M_PT_ILLEGAL
+};
+
+
+/*
+ * Payload for a data packet
+ *
+ * This is prefixed to each and every outgoing DATA type.
+ */
+struct i2400m_pl_data_hdr {
+ __le32 reserved;
+} __attribute__((packed));
+
+
+/*
+ * Payload for an extended data packet
+ *
+ * New in fw v1.4
+ *
+ * @reorder: if this payload has to be reorder or not (and how)
+ * @cs: the type of data in the packet, as defined per (802.16e
+ * T11.13.19.1). Currently only 2 (IPv4 packet) supported.
+ *
+ * This is prefixed to each and every INCOMING DATA packet.
+ */
+struct i2400m_pl_edata_hdr {
+ __le32 reorder; /* bits defined in i2400m_ro */
+ __u8 cs;
+ __u8 reserved[11];
+} __attribute__((packed));
+
+enum i2400m_cs {
+ I2400M_CS_IPV4_0 = 0,
+ I2400M_CS_IPV4 = 2,
+};
+
+enum i2400m_ro {
+ I2400M_RO_NEEDED = 0x01,
+ I2400M_RO_TYPE = 0x03,
+ I2400M_RO_TYPE_SHIFT = 1,
+ I2400M_RO_CIN = 0x0f,
+ I2400M_RO_CIN_SHIFT = 4,
+ I2400M_RO_FBN = 0x07ff,
+ I2400M_RO_FBN_SHIFT = 8,
+ I2400M_RO_SN = 0x07ff,
+ I2400M_RO_SN_SHIFT = 21,
+};
+
+enum i2400m_ro_type {
+ I2400M_RO_TYPE_RESET = 0,
+ I2400M_RO_TYPE_PACKET,
+ I2400M_RO_TYPE_WS,
+ I2400M_RO_TYPE_PACKET_WS,
+};
+
+
+/* Misc constants */
+enum {
+ I2400M_PL_ALIGN = 16, /* Payload data size alignment */
+ I2400M_PL_SIZE_MAX = 0x3EFF,
+ I2400M_MAX_PLS_IN_MSG = 60,
+ /* protocol barkers: sync sequences; for notifications they
+ * are sent in groups of four. */
+ I2400M_H2D_PREVIEW_BARKER = 0xcafe900d,
+ I2400M_COLD_RESET_BARKER = 0xc01dc01d,
+ I2400M_WARM_RESET_BARKER = 0x50f750f7,
+ I2400M_NBOOT_BARKER = 0xdeadbeef,
+ I2400M_SBOOT_BARKER = 0x0ff1c1a1,
+ I2400M_SBOOT_BARKER_6050 = 0x80000001,
+ I2400M_ACK_BARKER = 0xfeedbabe,
+ I2400M_D2H_MSG_BARKER = 0xbeefbabe,
+};
+
+
+/*
+ * Hardware payload descriptor
+ *
+ * Bitfields encoded in a struct to enforce typing semantics.
+ *
+ * Look in rx.c and tx.c for a full description of the format.
+ */
+struct i2400m_pld {
+ __le32 val;
+} __attribute__ ((packed));
+
+#define I2400M_PLD_SIZE_MASK 0x00003fff
+#define I2400M_PLD_TYPE_SHIFT 16
+#define I2400M_PLD_TYPE_MASK 0x000f0000
+
+/*
+ * Header for a TX message or RX message
+ *
+ * @barker: preamble
+ * @size: used for management of the FIFO queue buffer; before
+ * sending, this is converted to be a real preamble. This
+ * indicates the real size of the TX message that starts at this
+ * point. If the highest bit is set, then this message is to be
+ * skipped.
+ * @sequence: sequence number of this message
+ * @offset: offset where the message itself starts -- see the comments
+ * in the file header about message header and payload descriptor
+ * alignment.
+ * @num_pls: number of payloads in this message
+ * @padding: amount of padding bytes at the end of the message to make
+ * it be of block-size aligned
+ *
+ * Look in rx.c and tx.c for a full description of the format.
+ */
+struct i2400m_msg_hdr {
+ union {
+ __le32 barker;
+ __u32 size; /* same size type as barker!! */
+ };
+ union {
+ __le32 sequence;
+ __u32 offset; /* same size type as barker!! */
+ };
+ __le16 num_pls;
+ __le16 rsv1;
+ __le16 padding;
+ __le16 rsv2;
+ struct i2400m_pld pld[0];
+} __attribute__ ((packed));
+
+
+
+/*
+ * L3/L4 control protocol
+ */
+
+enum {
+ /* Interface version */
+ I2400M_L3L4_VERSION = 0x0100,
+};
+
+/* Message types */
+enum i2400m_mt {
+ I2400M_MT_RESERVED = 0x0000,
+ I2400M_MT_INVALID = 0xffff,
+ I2400M_MT_REPORT_MASK = 0x8000,
+
+ I2400M_MT_GET_SCAN_RESULT = 0x4202,
+ I2400M_MT_SET_SCAN_PARAM = 0x4402,
+ I2400M_MT_CMD_RF_CONTROL = 0x4602,
+ I2400M_MT_CMD_SCAN = 0x4603,
+ I2400M_MT_CMD_CONNECT = 0x4604,
+ I2400M_MT_CMD_DISCONNECT = 0x4605,
+ I2400M_MT_CMD_EXIT_IDLE = 0x4606,
+ I2400M_MT_GET_LM_VERSION = 0x5201,
+ I2400M_MT_GET_DEVICE_INFO = 0x5202,
+ I2400M_MT_GET_LINK_STATUS = 0x5203,
+ I2400M_MT_GET_STATISTICS = 0x5204,
+ I2400M_MT_GET_STATE = 0x5205,
+ I2400M_MT_GET_MEDIA_STATUS = 0x5206,
+ I2400M_MT_SET_INIT_CONFIG = 0x5404,
+ I2400M_MT_CMD_INIT = 0x5601,
+ I2400M_MT_CMD_TERMINATE = 0x5602,
+ I2400M_MT_CMD_MODE_OF_OP = 0x5603,
+ I2400M_MT_CMD_RESET_DEVICE = 0x5604,
+ I2400M_MT_CMD_MONITOR_CONTROL = 0x5605,
+ I2400M_MT_CMD_ENTER_POWERSAVE = 0x5606,
+ I2400M_MT_GET_TLS_OPERATION_RESULT = 0x6201,
+ I2400M_MT_SET_EAP_SUCCESS = 0x6402,
+ I2400M_MT_SET_EAP_FAIL = 0x6403,
+ I2400M_MT_SET_EAP_KEY = 0x6404,
+ I2400M_MT_CMD_SEND_EAP_RESPONSE = 0x6602,
+ I2400M_MT_REPORT_SCAN_RESULT = 0xc002,
+ I2400M_MT_REPORT_STATE = 0xd002,
+ I2400M_MT_REPORT_POWERSAVE_READY = 0xd005,
+ I2400M_MT_REPORT_EAP_REQUEST = 0xe002,
+ I2400M_MT_REPORT_EAP_RESTART = 0xe003,
+ I2400M_MT_REPORT_ALT_ACCEPT = 0xe004,
+ I2400M_MT_REPORT_KEY_REQUEST = 0xe005,
+};
+
+
+/*
+ * Message Ack Status codes
+ *
+ * When a message is replied-to, this status is reported.
+ */
+enum i2400m_ms {
+ I2400M_MS_DONE_OK = 0,
+ I2400M_MS_DONE_IN_PROGRESS = 1,
+ I2400M_MS_INVALID_OP = 2,
+ I2400M_MS_BAD_STATE = 3,
+ I2400M_MS_ILLEGAL_VALUE = 4,
+ I2400M_MS_MISSING_PARAMS = 5,
+ I2400M_MS_VERSION_ERROR = 6,
+ I2400M_MS_ACCESSIBILITY_ERROR = 7,
+ I2400M_MS_BUSY = 8,
+ I2400M_MS_CORRUPTED_TLV = 9,
+ I2400M_MS_UNINITIALIZED = 10,
+ I2400M_MS_UNKNOWN_ERROR = 11,
+ I2400M_MS_PRODUCTION_ERROR = 12,
+ I2400M_MS_NO_RF = 13,
+ I2400M_MS_NOT_READY_FOR_POWERSAVE = 14,
+ I2400M_MS_THERMAL_CRITICAL = 15,
+ I2400M_MS_MAX
+};
+
+
+/**
+ * i2400m_tlv - enumeration of the different types of TLVs
+ *
+ * TLVs stand for type-length-value and are the header for a payload
+ * composed of almost anything. Each payload has a type assigned
+ * and a length.
+ */
+enum i2400m_tlv {
+ I2400M_TLV_L4_MESSAGE_VERSIONS = 129,
+ I2400M_TLV_SYSTEM_STATE = 141,
+ I2400M_TLV_MEDIA_STATUS = 161,
+ I2400M_TLV_RF_OPERATION = 162,
+ I2400M_TLV_RF_STATUS = 163,
+ I2400M_TLV_DEVICE_RESET_TYPE = 132,
+ I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601,
+ I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611,
+ I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614,
+ I2400M_TLV_CONFIG_DL_HOST_REORDER = 615,
+};
+
+
+struct i2400m_tlv_hdr {
+ __le16 type;
+ __le16 length; /* payload's */
+ __u8 pl[0];
+} __attribute__((packed));
+
+
+struct i2400m_l3l4_hdr {
+ __le16 type;
+ __le16 length; /* payload's */
+ __le16 version;
+ __le16 resv1;
+ __le16 status;
+ __le16 resv2;
+ struct i2400m_tlv_hdr pl[0];
+} __attribute__((packed));
+
+
+/**
+ * i2400m_system_state - different states of the device
+ */
+enum i2400m_system_state {
+ I2400M_SS_UNINITIALIZED = 1,
+ I2400M_SS_INIT,
+ I2400M_SS_READY,
+ I2400M_SS_SCAN,
+ I2400M_SS_STANDBY,
+ I2400M_SS_CONNECTING,
+ I2400M_SS_WIMAX_CONNECTED,
+ I2400M_SS_DATA_PATH_CONNECTED,
+ I2400M_SS_IDLE,
+ I2400M_SS_DISCONNECTING,
+ I2400M_SS_OUT_OF_ZONE,
+ I2400M_SS_SLEEPACTIVE,
+ I2400M_SS_PRODUCTION,
+ I2400M_SS_CONFIG,
+ I2400M_SS_RF_OFF,
+ I2400M_SS_RF_SHUTDOWN,
+ I2400M_SS_DEVICE_DISCONNECT,
+ I2400M_SS_MAX,
+};
+
+
+/**
+ * i2400m_tlv_system_state - report on the state of the system
+ *
+ * @state: see enum i2400m_system_state
+ */
+struct i2400m_tlv_system_state {
+ struct i2400m_tlv_hdr hdr;
+ __le32 state;
+} __attribute__((packed));
+
+
+struct i2400m_tlv_l4_message_versions {
+ struct i2400m_tlv_hdr hdr;
+ __le16 major;
+ __le16 minor;
+ __le16 branch;
+ __le16 reserved;
+} __attribute__((packed));
+
+
+struct i2400m_tlv_detailed_device_info {
+ struct i2400m_tlv_hdr hdr;
+ __u8 reserved1[400];
+ __u8 mac_address[ETH_ALEN];
+ __u8 reserved2[2];
+} __attribute__((packed));
+
+
+enum i2400m_rf_switch_status {
+ I2400M_RF_SWITCH_ON = 1,
+ I2400M_RF_SWITCH_OFF = 2,
+};
+
+struct i2400m_tlv_rf_switches_status {
+ struct i2400m_tlv_hdr hdr;
+ __u8 sw_rf_switch; /* 1 ON, 2 OFF */
+ __u8 hw_rf_switch; /* 1 ON, 2 OFF */
+ __u8 reserved[2];
+} __attribute__((packed));
+
+
+enum {
+ i2400m_rf_operation_on = 1,
+ i2400m_rf_operation_off = 2
+};
+
+struct i2400m_tlv_rf_operation {
+ struct i2400m_tlv_hdr hdr;
+ __le32 status; /* 1 ON, 2 OFF */
+} __attribute__((packed));
+
+
+enum i2400m_tlv_reset_type {
+ I2400M_RESET_TYPE_COLD = 1,
+ I2400M_RESET_TYPE_WARM
+};
+
+struct i2400m_tlv_device_reset_type {
+ struct i2400m_tlv_hdr hdr;
+ __le32 reset_type;
+} __attribute__((packed));
+
+
+struct i2400m_tlv_config_idle_parameters {
+ struct i2400m_tlv_hdr hdr;
+ __le32 idle_timeout; /* 100 to 300000 ms [5min], 100 increments
+ * 0 disabled */
+ __le32 idle_paging_interval; /* frames */
+} __attribute__((packed));
+
+
+enum i2400m_media_status {
+ I2400M_MEDIA_STATUS_LINK_UP = 1,
+ I2400M_MEDIA_STATUS_LINK_DOWN,
+ I2400M_MEDIA_STATUS_LINK_RENEW,
+};
+
+struct i2400m_tlv_media_status {
+ struct i2400m_tlv_hdr hdr;
+ __le32 media_status;
+} __attribute__((packed));
+
+
+/* New in v1.4 */
+struct i2400m_tlv_config_idle_timeout {
+ struct i2400m_tlv_hdr hdr;
+ __le32 timeout; /* 100 to 300000 ms [5min], 100 increments
+ * 0 disabled */
+} __attribute__((packed));
+
+/* New in v1.4 -- for backward compat, will be removed */
+struct i2400m_tlv_config_d2h_data_format {
+ struct i2400m_tlv_hdr hdr;
+ __u8 format; /* 0 old format, 1 enhanced */
+ __u8 reserved[3];
+} __attribute__((packed));
+
+/* New in v1.4 */
+struct i2400m_tlv_config_dl_host_reorder {
+ struct i2400m_tlv_hdr hdr;
+ __u8 reorder; /* 0 disabled, 1 enabled */
+ __u8 reserved[3];
+} __attribute__((packed));
+
+
+#endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */
diff --git a/original/uapi/linux/wireguard.h b/original/uapi/linux/wireguard.h
deleted file mode 100644
index ae88be1..0000000
--- a/original/uapi/linux/wireguard.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
-/*
- * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
- *
- * Documentation
- * =============
- *
- * The below enums and macros are for interfacing with WireGuard, using generic
- * netlink, with family WG_GENL_NAME and version WG_GENL_VERSION. It defines two
- * methods: get and set. Note that while they share many common attributes,
- * these two functions actually accept a slightly different set of inputs and
- * outputs.
- *
- * WG_CMD_GET_DEVICE
- * -----------------
- *
- * May only be called via NLM_F_REQUEST | NLM_F_DUMP. The command should contain
- * one but not both of:
- *
- * WGDEVICE_A_IFINDEX: NLA_U32
- * WGDEVICE_A_IFNAME: NLA_NUL_STRING, maxlen IFNAMSIZ - 1
- *
- * The kernel will then return several messages (NLM_F_MULTI) containing the
- * following tree of nested items:
- *
- * WGDEVICE_A_IFINDEX: NLA_U32
- * WGDEVICE_A_IFNAME: NLA_NUL_STRING, maxlen IFNAMSIZ - 1
- * WGDEVICE_A_PRIVATE_KEY: NLA_EXACT_LEN, len WG_KEY_LEN
- * WGDEVICE_A_PUBLIC_KEY: NLA_EXACT_LEN, len WG_KEY_LEN
- * WGDEVICE_A_LISTEN_PORT: NLA_U16
- * WGDEVICE_A_FWMARK: NLA_U32
- * WGDEVICE_A_PEERS: NLA_NESTED
- * 0: NLA_NESTED
- * WGPEER_A_PUBLIC_KEY: NLA_EXACT_LEN, len WG_KEY_LEN
- * WGPEER_A_PRESHARED_KEY: NLA_EXACT_LEN, len WG_KEY_LEN
- * WGPEER_A_ENDPOINT: NLA_MIN_LEN(struct sockaddr), struct sockaddr_in or struct sockaddr_in6
- * WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL: NLA_U16
- * WGPEER_A_LAST_HANDSHAKE_TIME: NLA_EXACT_LEN, struct __kernel_timespec
- * WGPEER_A_RX_BYTES: NLA_U64
- * WGPEER_A_TX_BYTES: NLA_U64
- * WGPEER_A_ALLOWEDIPS: NLA_NESTED
- * 0: NLA_NESTED
- * WGALLOWEDIP_A_FAMILY: NLA_U16
- * WGALLOWEDIP_A_IPADDR: NLA_MIN_LEN(struct in_addr), struct in_addr or struct in6_addr
- * WGALLOWEDIP_A_CIDR_MASK: NLA_U8
- * 0: NLA_NESTED
- * ...
- * 0: NLA_NESTED
- * ...
- * ...
- * WGPEER_A_PROTOCOL_VERSION: NLA_U32
- * 0: NLA_NESTED
- * ...
- * ...
- *
- * It is possible that all of the allowed IPs of a single peer will not
- * fit within a single netlink message. In that case, the same peer will
- * be written in the following message, except it will only contain
- * WGPEER_A_PUBLIC_KEY and WGPEER_A_ALLOWEDIPS. This may occur several
- * times in a row for the same peer. It is then up to the receiver to
- * coalesce adjacent peers. Likewise, it is possible that all peers will
- * not fit within a single message. So, subsequent peers will be sent
- * in following messages, except those will only contain WGDEVICE_A_IFNAME
- * and WGDEVICE_A_PEERS. It is then up to the receiver to coalesce these
- * messages to form the complete list of peers.
- *
- * Since this is an NLA_F_DUMP command, the final message will always be
- * NLMSG_DONE, even if an error occurs. However, this NLMSG_DONE message
- * contains an integer error code. It is either zero or a negative error
- * code corresponding to the errno.
- *
- * WG_CMD_SET_DEVICE
- * -----------------
- *
- * May only be called via NLM_F_REQUEST. The command should contain the
- * following tree of nested items, containing one but not both of
- * WGDEVICE_A_IFINDEX and WGDEVICE_A_IFNAME:
- *
- * WGDEVICE_A_IFINDEX: NLA_U32
- * WGDEVICE_A_IFNAME: NLA_NUL_STRING, maxlen IFNAMSIZ - 1
- * WGDEVICE_A_FLAGS: NLA_U32, 0 or WGDEVICE_F_REPLACE_PEERS if all current
- * peers should be removed prior to adding the list below.
- * WGDEVICE_A_PRIVATE_KEY: len WG_KEY_LEN, all zeros to remove
- * WGDEVICE_A_LISTEN_PORT: NLA_U16, 0 to choose randomly
- * WGDEVICE_A_FWMARK: NLA_U32, 0 to disable
- * WGDEVICE_A_PEERS: NLA_NESTED
- * 0: NLA_NESTED
- * WGPEER_A_PUBLIC_KEY: len WG_KEY_LEN
- * WGPEER_A_FLAGS: NLA_U32, 0 and/or WGPEER_F_REMOVE_ME if the
- * specified peer should not exist at the end of the
- * operation, rather than added/updated and/or
- * WGPEER_F_REPLACE_ALLOWEDIPS if all current allowed
- * IPs of this peer should be removed prior to adding
- * the list below and/or WGPEER_F_UPDATE_ONLY if the
- * peer should only be set if it already exists.
- * WGPEER_A_PRESHARED_KEY: len WG_KEY_LEN, all zeros to remove
- * WGPEER_A_ENDPOINT: struct sockaddr_in or struct sockaddr_in6
- * WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL: NLA_U16, 0 to disable
- * WGPEER_A_ALLOWEDIPS: NLA_NESTED
- * 0: NLA_NESTED
- * WGALLOWEDIP_A_FAMILY: NLA_U16
- * WGALLOWEDIP_A_IPADDR: struct in_addr or struct in6_addr
- * WGALLOWEDIP_A_CIDR_MASK: NLA_U8
- * 0: NLA_NESTED
- * ...
- * 0: NLA_NESTED
- * ...
- * ...
- * WGPEER_A_PROTOCOL_VERSION: NLA_U32, should not be set or used at
- * all by most users of this API, as the
- * most recent protocol will be used when
- * this is unset. Otherwise, must be set
- * to 1.
- * 0: NLA_NESTED
- * ...
- * ...
- *
- * It is possible that the amount of configuration data exceeds that of
- * the maximum message length accepted by the kernel. In that case, several
- * messages should be sent one after another, with each successive one
- * filling in information not contained in the prior. Note that if
- * WGDEVICE_F_REPLACE_PEERS is specified in the first message, it probably
- * should not be specified in fragments that come after, so that the list
- * of peers is only cleared the first time but appended after. Likewise for
- * peers, if WGPEER_F_REPLACE_ALLOWEDIPS is specified in the first message
- * of a peer, it likely should not be specified in subsequent fragments.
- *
- * If an error occurs, NLMSG_ERROR will reply containing an errno.
- */
-
-#ifndef _WG_UAPI_WIREGUARD_H
-#define _WG_UAPI_WIREGUARD_H
-
-#define WG_GENL_NAME "wireguard"
-#define WG_GENL_VERSION 1
-
-#define WG_KEY_LEN 32
-
-enum wg_cmd {
- WG_CMD_GET_DEVICE,
- WG_CMD_SET_DEVICE,
- __WG_CMD_MAX
-};
-#define WG_CMD_MAX (__WG_CMD_MAX - 1)
-
-enum wgdevice_flag {
- WGDEVICE_F_REPLACE_PEERS = 1U << 0,
- __WGDEVICE_F_ALL = WGDEVICE_F_REPLACE_PEERS
-};
-enum wgdevice_attribute {
- WGDEVICE_A_UNSPEC,
- WGDEVICE_A_IFINDEX,
- WGDEVICE_A_IFNAME,
- WGDEVICE_A_PRIVATE_KEY,
- WGDEVICE_A_PUBLIC_KEY,
- WGDEVICE_A_FLAGS,
- WGDEVICE_A_LISTEN_PORT,
- WGDEVICE_A_FWMARK,
- WGDEVICE_A_PEERS,
- __WGDEVICE_A_LAST
-};
-#define WGDEVICE_A_MAX (__WGDEVICE_A_LAST - 1)
-
-enum wgpeer_flag {
- WGPEER_F_REMOVE_ME = 1U << 0,
- WGPEER_F_REPLACE_ALLOWEDIPS = 1U << 1,
- WGPEER_F_UPDATE_ONLY = 1U << 2,
- __WGPEER_F_ALL = WGPEER_F_REMOVE_ME | WGPEER_F_REPLACE_ALLOWEDIPS |
- WGPEER_F_UPDATE_ONLY
-};
-enum wgpeer_attribute {
- WGPEER_A_UNSPEC,
- WGPEER_A_PUBLIC_KEY,
- WGPEER_A_PRESHARED_KEY,
- WGPEER_A_FLAGS,
- WGPEER_A_ENDPOINT,
- WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
- WGPEER_A_LAST_HANDSHAKE_TIME,
- WGPEER_A_RX_BYTES,
- WGPEER_A_TX_BYTES,
- WGPEER_A_ALLOWEDIPS,
- WGPEER_A_PROTOCOL_VERSION,
- __WGPEER_A_LAST
-};
-#define WGPEER_A_MAX (__WGPEER_A_LAST - 1)
-
-enum wgallowedip_attribute {
- WGALLOWEDIP_A_UNSPEC,
- WGALLOWEDIP_A_FAMILY,
- WGALLOWEDIP_A_IPADDR,
- WGALLOWEDIP_A_CIDR_MASK,
- __WGALLOWEDIP_A_LAST
-};
-#define WGALLOWEDIP_A_MAX (__WGALLOWEDIP_A_LAST - 1)
-
-#endif /* _WG_UAPI_WIREGUARD_H */
diff --git a/original/uapi/linux/wireless.h b/original/uapi/linux/wireless.h
index 08967b3..86eca32 100644
--- a/original/uapi/linux/wireless.h
+++ b/original/uapi/linux/wireless.h
@@ -74,12 +74,6 @@
#include <linux/socket.h> /* for "struct sockaddr" et al */
#include <linux/if.h> /* for IFNAMSIZ and co... */
-#ifdef __KERNEL__
-# include <linux/stddef.h> /* for offsetof */
-#else
-# include <stddef.h> /* for offsetof */
-#endif
-
/***************************** VERSION *****************************/
/*
* This constant is used to know the availability of the wireless
@@ -914,7 +908,7 @@ union iwreq_data {
struct iw_param sens; /* signal level threshold */
struct iw_param bitrate; /* default bit rate */
struct iw_param txpower; /* default transmit power */
- struct iw_param rts; /* RTS threshold */
+ struct iw_param rts; /* RTS threshold threshold */
struct iw_param frag; /* Fragmentation threshold */
__u32 mode; /* Operation mode */
struct iw_param retry; /* Retry limits & lifetime */
@@ -1096,7 +1090,8 @@ struct iw_event {
/* iw_point events are special. First, the payload (extra data) come at
* the end of the event, so they are bigger than IW_EV_POINT_LEN. Second,
* we omit the pointer, so start at an offset. */
-#define IW_EV_POINT_OFF offsetof(struct iw_point, length)
+#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \
+ (char *) NULL)
#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \
IW_EV_POINT_OFF)
diff --git a/original/uapi/linux/xattr.h b/original/uapi/linux/xattr.h
index 9463db2..1eba026 100644
--- a/original/uapi/linux/xattr.h
+++ b/original/uapi/linux/xattr.h
@@ -7,7 +7,6 @@
Copyright (C) 2001 by Andreas Gruenbacher <a.gruenbacher@computer.org>
Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved.
Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com>
- Copyright (c) 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
*/
#include <linux/libc-compat.h>
@@ -18,8 +17,11 @@
#if __UAPI_DEF_XATTR
#define __USE_KERNEL_XATTR_DEFS
-#define XATTR_CREATE 0x1 /* set value, fail if attr already exists */
-#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
+#define XATTR_CREATE 0x1 /* set value, fail if attr already exists */
+#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
+#ifdef __KERNEL__ /* following is kernel internal, colocated for maintenance */
+#define XATTR_NOSECURITY 0x4 /* get value, do not involve security check */
+#endif
#endif
/* Namespaces */
@@ -32,9 +34,6 @@
#define XATTR_BTRFS_PREFIX "btrfs."
#define XATTR_BTRFS_PREFIX_LEN (sizeof(XATTR_BTRFS_PREFIX) - 1)
-#define XATTR_HURD_PREFIX "gnu."
-#define XATTR_HURD_PREFIX_LEN (sizeof(XATTR_HURD_PREFIX) - 1)
-
#define XATTR_SECURITY_PREFIX "security."
#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1)
diff --git a/original/uapi/linux/xdp_diag.h b/original/uapi/linux/xdp_diag.h
index 66b9973..78b2591 100644
--- a/original/uapi/linux/xdp_diag.h
+++ b/original/uapi/linux/xdp_diag.h
@@ -30,7 +30,6 @@ struct xdp_diag_msg {
#define XDP_SHOW_RING_CFG (1 << 1)
#define XDP_SHOW_UMEM (1 << 2)
#define XDP_SHOW_MEMINFO (1 << 3)
-#define XDP_SHOW_STATS (1 << 4)
enum {
XDP_DIAG_NONE,
@@ -42,7 +41,6 @@ enum {
XDP_DIAG_UMEM_FILL_RING,
XDP_DIAG_UMEM_COMPLETION_RING,
XDP_DIAG_MEMINFO,
- XDP_DIAG_STATS,
__XDP_DIAG_MAX,
};
@@ -71,13 +69,4 @@ struct xdp_diag_umem {
__u32 refs;
};
-struct xdp_diag_stats {
- __u64 n_rx_dropped;
- __u64 n_rx_invalid;
- __u64 n_rx_full;
- __u64 n_fill_ring_empty;
- __u64 n_tx_invalid;
- __u64 n_tx_ring_empty;
-};
-
#endif /* _LINUX_XDP_DIAG_H */
diff --git a/original/uapi/linux/xfrm.h b/original/uapi/linux/xfrm.h
index ffc6a53..5f3b9fe 100644
--- a/original/uapi/linux/xfrm.h
+++ b/original/uapi/linux/xfrm.h
@@ -304,7 +304,7 @@ enum xfrm_attr_type_t {
XFRMA_PROTO, /* __u8 */
XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
XFRMA_PAD,
- XFRMA_OFFLOAD_DEV, /* struct xfrm_user_offload */
+ XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
XFRMA_SET_MARK, /* __u32 */
XFRMA_SET_MARK_MASK, /* __u32 */
XFRMA_IF_ID, /* __u32 */
@@ -387,7 +387,6 @@ struct xfrm_usersa_info {
};
#define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1
-#define XFRM_SA_XFLAG_OSEQ_MAY_WRAP 2
struct xfrm_usersa_id {
xfrm_address_t daddr;
diff --git a/original/uapi/misc/fastrpc.h b/original/uapi/misc/fastrpc.h
index 0a89f95..07de2b7 100644
--- a/original/uapi/misc/fastrpc.h
+++ b/original/uapi/misc/fastrpc.h
@@ -10,9 +10,8 @@
#define FASTRPC_IOCTL_INVOKE _IOWR('R', 3, struct fastrpc_invoke)
#define FASTRPC_IOCTL_INIT_ATTACH _IO('R', 4)
#define FASTRPC_IOCTL_INIT_CREATE _IOWR('R', 5, struct fastrpc_init_create)
-#define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap)
-#define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap)
-#define FASTRPC_IOCTL_INIT_ATTACH_SNS _IO('R', 8)
+#define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap)
+#define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap)
struct fastrpc_invoke_args {
__u64 ptr;
diff --git a/original/uapi/misc/habanalabs.h b/original/uapi/misc/habanalabs.h
index 5a86b52..4faa2c9 100644
--- a/original/uapi/misc/habanalabs.h
+++ b/original/uapi/misc/habanalabs.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
*
- * Copyright 2016-2020 HabanaLabs, Ltd.
+ * Copyright 2016-2019 HabanaLabs, Ltd.
* All Rights Reserved.
*
*/
@@ -15,23 +15,10 @@
* Defines that are asic-specific but constitutes as ABI between kernel driver
* and userspace
*/
-#define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000 /* 32KB */
-#define GAUDI_DRIVER_SRAM_RESERVED_SIZE_FROM_START 0x80 /* 128 bytes */
+#define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000 /* 32KB */
/*
- * 128 SOBs reserved for collective wait
- * 16 SOBs reserved for sync stream
- */
-#define GAUDI_FIRST_AVAILABLE_W_S_SYNC_OBJECT 144
-
-/*
- * 64 monitors reserved for collective wait
- * 8 monitors reserved for sync stream
- */
-#define GAUDI_FIRST_AVAILABLE_W_S_MONITOR 72
-
-/*
- * Goya queue Numbering
+ * Queue Numbering
*
* The external queues (PCI DMA channels) MUST be before the internal queues
* and each group (PCI DMA channels and internal) must be contiguous inside
@@ -59,129 +46,6 @@ enum goya_queue_id {
};
/*
- * Gaudi queue Numbering
- * External queues (PCI DMA channels) are DMA_0_*, DMA_1_* and DMA_5_*.
- * Except one CPU queue, all the rest are internal queues.
- */
-
-enum gaudi_queue_id {
- GAUDI_QUEUE_ID_DMA_0_0 = 0, /* external */
- GAUDI_QUEUE_ID_DMA_0_1 = 1, /* external */
- GAUDI_QUEUE_ID_DMA_0_2 = 2, /* external */
- GAUDI_QUEUE_ID_DMA_0_3 = 3, /* external */
- GAUDI_QUEUE_ID_DMA_1_0 = 4, /* external */
- GAUDI_QUEUE_ID_DMA_1_1 = 5, /* external */
- GAUDI_QUEUE_ID_DMA_1_2 = 6, /* external */
- GAUDI_QUEUE_ID_DMA_1_3 = 7, /* external */
- GAUDI_QUEUE_ID_CPU_PQ = 8, /* CPU */
- GAUDI_QUEUE_ID_DMA_2_0 = 9, /* internal */
- GAUDI_QUEUE_ID_DMA_2_1 = 10, /* internal */
- GAUDI_QUEUE_ID_DMA_2_2 = 11, /* internal */
- GAUDI_QUEUE_ID_DMA_2_3 = 12, /* internal */
- GAUDI_QUEUE_ID_DMA_3_0 = 13, /* internal */
- GAUDI_QUEUE_ID_DMA_3_1 = 14, /* internal */
- GAUDI_QUEUE_ID_DMA_3_2 = 15, /* internal */
- GAUDI_QUEUE_ID_DMA_3_3 = 16, /* internal */
- GAUDI_QUEUE_ID_DMA_4_0 = 17, /* internal */
- GAUDI_QUEUE_ID_DMA_4_1 = 18, /* internal */
- GAUDI_QUEUE_ID_DMA_4_2 = 19, /* internal */
- GAUDI_QUEUE_ID_DMA_4_3 = 20, /* internal */
- GAUDI_QUEUE_ID_DMA_5_0 = 21, /* internal */
- GAUDI_QUEUE_ID_DMA_5_1 = 22, /* internal */
- GAUDI_QUEUE_ID_DMA_5_2 = 23, /* internal */
- GAUDI_QUEUE_ID_DMA_5_3 = 24, /* internal */
- GAUDI_QUEUE_ID_DMA_6_0 = 25, /* internal */
- GAUDI_QUEUE_ID_DMA_6_1 = 26, /* internal */
- GAUDI_QUEUE_ID_DMA_6_2 = 27, /* internal */
- GAUDI_QUEUE_ID_DMA_6_3 = 28, /* internal */
- GAUDI_QUEUE_ID_DMA_7_0 = 29, /* internal */
- GAUDI_QUEUE_ID_DMA_7_1 = 30, /* internal */
- GAUDI_QUEUE_ID_DMA_7_2 = 31, /* internal */
- GAUDI_QUEUE_ID_DMA_7_3 = 32, /* internal */
- GAUDI_QUEUE_ID_MME_0_0 = 33, /* internal */
- GAUDI_QUEUE_ID_MME_0_1 = 34, /* internal */
- GAUDI_QUEUE_ID_MME_0_2 = 35, /* internal */
- GAUDI_QUEUE_ID_MME_0_3 = 36, /* internal */
- GAUDI_QUEUE_ID_MME_1_0 = 37, /* internal */
- GAUDI_QUEUE_ID_MME_1_1 = 38, /* internal */
- GAUDI_QUEUE_ID_MME_1_2 = 39, /* internal */
- GAUDI_QUEUE_ID_MME_1_3 = 40, /* internal */
- GAUDI_QUEUE_ID_TPC_0_0 = 41, /* internal */
- GAUDI_QUEUE_ID_TPC_0_1 = 42, /* internal */
- GAUDI_QUEUE_ID_TPC_0_2 = 43, /* internal */
- GAUDI_QUEUE_ID_TPC_0_3 = 44, /* internal */
- GAUDI_QUEUE_ID_TPC_1_0 = 45, /* internal */
- GAUDI_QUEUE_ID_TPC_1_1 = 46, /* internal */
- GAUDI_QUEUE_ID_TPC_1_2 = 47, /* internal */
- GAUDI_QUEUE_ID_TPC_1_3 = 48, /* internal */
- GAUDI_QUEUE_ID_TPC_2_0 = 49, /* internal */
- GAUDI_QUEUE_ID_TPC_2_1 = 50, /* internal */
- GAUDI_QUEUE_ID_TPC_2_2 = 51, /* internal */
- GAUDI_QUEUE_ID_TPC_2_3 = 52, /* internal */
- GAUDI_QUEUE_ID_TPC_3_0 = 53, /* internal */
- GAUDI_QUEUE_ID_TPC_3_1 = 54, /* internal */
- GAUDI_QUEUE_ID_TPC_3_2 = 55, /* internal */
- GAUDI_QUEUE_ID_TPC_3_3 = 56, /* internal */
- GAUDI_QUEUE_ID_TPC_4_0 = 57, /* internal */
- GAUDI_QUEUE_ID_TPC_4_1 = 58, /* internal */
- GAUDI_QUEUE_ID_TPC_4_2 = 59, /* internal */
- GAUDI_QUEUE_ID_TPC_4_3 = 60, /* internal */
- GAUDI_QUEUE_ID_TPC_5_0 = 61, /* internal */
- GAUDI_QUEUE_ID_TPC_5_1 = 62, /* internal */
- GAUDI_QUEUE_ID_TPC_5_2 = 63, /* internal */
- GAUDI_QUEUE_ID_TPC_5_3 = 64, /* internal */
- GAUDI_QUEUE_ID_TPC_6_0 = 65, /* internal */
- GAUDI_QUEUE_ID_TPC_6_1 = 66, /* internal */
- GAUDI_QUEUE_ID_TPC_6_2 = 67, /* internal */
- GAUDI_QUEUE_ID_TPC_6_3 = 68, /* internal */
- GAUDI_QUEUE_ID_TPC_7_0 = 69, /* internal */
- GAUDI_QUEUE_ID_TPC_7_1 = 70, /* internal */
- GAUDI_QUEUE_ID_TPC_7_2 = 71, /* internal */
- GAUDI_QUEUE_ID_TPC_7_3 = 72, /* internal */
- GAUDI_QUEUE_ID_NIC_0_0 = 73, /* internal */
- GAUDI_QUEUE_ID_NIC_0_1 = 74, /* internal */
- GAUDI_QUEUE_ID_NIC_0_2 = 75, /* internal */
- GAUDI_QUEUE_ID_NIC_0_3 = 76, /* internal */
- GAUDI_QUEUE_ID_NIC_1_0 = 77, /* internal */
- GAUDI_QUEUE_ID_NIC_1_1 = 78, /* internal */
- GAUDI_QUEUE_ID_NIC_1_2 = 79, /* internal */
- GAUDI_QUEUE_ID_NIC_1_3 = 80, /* internal */
- GAUDI_QUEUE_ID_NIC_2_0 = 81, /* internal */
- GAUDI_QUEUE_ID_NIC_2_1 = 82, /* internal */
- GAUDI_QUEUE_ID_NIC_2_2 = 83, /* internal */
- GAUDI_QUEUE_ID_NIC_2_3 = 84, /* internal */
- GAUDI_QUEUE_ID_NIC_3_0 = 85, /* internal */
- GAUDI_QUEUE_ID_NIC_3_1 = 86, /* internal */
- GAUDI_QUEUE_ID_NIC_3_2 = 87, /* internal */
- GAUDI_QUEUE_ID_NIC_3_3 = 88, /* internal */
- GAUDI_QUEUE_ID_NIC_4_0 = 89, /* internal */
- GAUDI_QUEUE_ID_NIC_4_1 = 90, /* internal */
- GAUDI_QUEUE_ID_NIC_4_2 = 91, /* internal */
- GAUDI_QUEUE_ID_NIC_4_3 = 92, /* internal */
- GAUDI_QUEUE_ID_NIC_5_0 = 93, /* internal */
- GAUDI_QUEUE_ID_NIC_5_1 = 94, /* internal */
- GAUDI_QUEUE_ID_NIC_5_2 = 95, /* internal */
- GAUDI_QUEUE_ID_NIC_5_3 = 96, /* internal */
- GAUDI_QUEUE_ID_NIC_6_0 = 97, /* internal */
- GAUDI_QUEUE_ID_NIC_6_1 = 98, /* internal */
- GAUDI_QUEUE_ID_NIC_6_2 = 99, /* internal */
- GAUDI_QUEUE_ID_NIC_6_3 = 100, /* internal */
- GAUDI_QUEUE_ID_NIC_7_0 = 101, /* internal */
- GAUDI_QUEUE_ID_NIC_7_1 = 102, /* internal */
- GAUDI_QUEUE_ID_NIC_7_2 = 103, /* internal */
- GAUDI_QUEUE_ID_NIC_7_3 = 104, /* internal */
- GAUDI_QUEUE_ID_NIC_8_0 = 105, /* internal */
- GAUDI_QUEUE_ID_NIC_8_1 = 106, /* internal */
- GAUDI_QUEUE_ID_NIC_8_2 = 107, /* internal */
- GAUDI_QUEUE_ID_NIC_8_3 = 108, /* internal */
- GAUDI_QUEUE_ID_NIC_9_0 = 109, /* internal */
- GAUDI_QUEUE_ID_NIC_9_1 = 110, /* internal */
- GAUDI_QUEUE_ID_NIC_9_2 = 111, /* internal */
- GAUDI_QUEUE_ID_NIC_9_3 = 112, /* internal */
- GAUDI_QUEUE_ID_SIZE
-};
-
-/*
* Engine Numbering
*
* Used in the "busy_engines_mask" field in `struct hl_info_hw_idle'
@@ -205,45 +69,10 @@ enum goya_engine_id {
GOYA_ENGINE_ID_SIZE
};
-enum gaudi_engine_id {
- GAUDI_ENGINE_ID_DMA_0 = 0,
- GAUDI_ENGINE_ID_DMA_1,
- GAUDI_ENGINE_ID_DMA_2,
- GAUDI_ENGINE_ID_DMA_3,
- GAUDI_ENGINE_ID_DMA_4,
- GAUDI_ENGINE_ID_DMA_5,
- GAUDI_ENGINE_ID_DMA_6,
- GAUDI_ENGINE_ID_DMA_7,
- GAUDI_ENGINE_ID_MME_0,
- GAUDI_ENGINE_ID_MME_1,
- GAUDI_ENGINE_ID_MME_2,
- GAUDI_ENGINE_ID_MME_3,
- GAUDI_ENGINE_ID_TPC_0,
- GAUDI_ENGINE_ID_TPC_1,
- GAUDI_ENGINE_ID_TPC_2,
- GAUDI_ENGINE_ID_TPC_3,
- GAUDI_ENGINE_ID_TPC_4,
- GAUDI_ENGINE_ID_TPC_5,
- GAUDI_ENGINE_ID_TPC_6,
- GAUDI_ENGINE_ID_TPC_7,
- GAUDI_ENGINE_ID_NIC_0,
- GAUDI_ENGINE_ID_NIC_1,
- GAUDI_ENGINE_ID_NIC_2,
- GAUDI_ENGINE_ID_NIC_3,
- GAUDI_ENGINE_ID_NIC_4,
- GAUDI_ENGINE_ID_NIC_5,
- GAUDI_ENGINE_ID_NIC_6,
- GAUDI_ENGINE_ID_NIC_7,
- GAUDI_ENGINE_ID_NIC_8,
- GAUDI_ENGINE_ID_NIC_9,
- GAUDI_ENGINE_ID_SIZE
-};
-
enum hl_device_status {
HL_DEVICE_STATUS_OPERATIONAL,
HL_DEVICE_STATUS_IN_RESET,
- HL_DEVICE_STATUS_MALFUNCTION,
- HL_DEVICE_STATUS_NEEDS_RESET
+ HL_DEVICE_STATUS_MALFUNCTION
};
/* Opcode for management ioctl
@@ -272,14 +101,6 @@ enum hl_device_status {
* HL_INFO_RESET_COUNT - Retrieve the counts of the soft and hard reset
* operations performed on the device since the last
* time the driver was loaded.
- * HL_INFO_TIME_SYNC - Retrieve the device's time alongside the host's time
- * for synchronization.
- * HL_INFO_CS_COUNTERS - Retrieve command submission counters
- * HL_INFO_PCI_COUNTERS - Retrieve PCI counters
- * HL_INFO_CLK_THROTTLE_REASON - Retrieve clock throttling reason
- * HL_INFO_SYNC_MANAGER - Retrieve sync manager info per dcore
- * HL_INFO_TOTAL_ENERGY - Retrieve total energy consumption
- * HL_INFO_PLL_FREQUENCY - Retrieve PLL frequency
*/
#define HL_INFO_HW_IP_INFO 0
#define HL_INFO_HW_EVENTS 1
@@ -290,13 +111,6 @@ enum hl_device_status {
#define HL_INFO_HW_EVENTS_AGGREGATE 7
#define HL_INFO_CLK_RATE 8
#define HL_INFO_RESET_COUNT 9
-#define HL_INFO_TIME_SYNC 10
-#define HL_INFO_CS_COUNTERS 11
-#define HL_INFO_PCI_COUNTERS 12
-#define HL_INFO_CLK_THROTTLE_REASON 13
-#define HL_INFO_SYNC_MANAGER 14
-#define HL_INFO_TOTAL_ENERGY 15
-#define HL_INFO_PLL_FREQUENCY 16
#define HL_INFO_VERSION_MAX_LEN 128
#define HL_INFO_CARD_NAME_MAX_LEN 16
@@ -308,11 +122,8 @@ struct hl_info_hw_ip_info {
__u32 sram_size;
__u32 num_of_events;
__u32 device_id; /* PCI Device ID */
- __u32 module_id; /* For mezzanine cards in servers (From OCP spec.) */
- __u32 reserved;
- __u16 first_available_interrupt_id;
- __u16 reserved2;
- __u32 cpld_version;
+ __u32 reserved[3];
+ __u32 armcp_cpld_version;
__u32 psoc_pci_pll_nr;
__u32 psoc_pci_pll_nf;
__u32 psoc_pci_pll_od;
@@ -320,10 +131,8 @@ struct hl_info_hw_ip_info {
__u8 tpc_enabled_mask;
__u8 dram_enabled;
__u8 pad[2];
- __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
+ __u8 armcp_version[HL_INFO_VERSION_MAX_LEN];
__u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
- __u64 reserved3;
- __u64 dram_page_size;
};
struct hl_info_dram_usage {
@@ -331,8 +140,6 @@ struct hl_info_dram_usage {
__u64 ctx_dram_mem;
};
-#define HL_BUSY_ENGINES_MASK_EXT_SIZE 2
-
struct hl_info_hw_idle {
__u32 is_idle;
/*
@@ -340,12 +147,6 @@ struct hl_info_hw_idle {
* Bits definition is according to `enum <chip>_enging_id'.
*/
__u32 busy_engines_mask;
-
- /*
- * Extended Bitmask of busy engines.
- * Bits definition is according to `enum <chip>_enging_id'.
- */
- __u64 busy_engines_mask_ext[HL_BUSY_ENGINES_MASK_EXT_SIZE];
};
struct hl_info_device_status {
@@ -368,98 +169,6 @@ struct hl_info_reset_count {
__u32 soft_reset_cnt;
};
-struct hl_info_time_sync {
- __u64 device_time;
- __u64 host_time;
-};
-
-/**
- * struct hl_info_pci_counters - pci counters
- * @rx_throughput: PCI rx throughput KBps
- * @tx_throughput: PCI tx throughput KBps
- * @replay_cnt: PCI replay counter
- */
-struct hl_info_pci_counters {
- __u64 rx_throughput;
- __u64 tx_throughput;
- __u64 replay_cnt;
-};
-
-#define HL_CLK_THROTTLE_POWER 0x1
-#define HL_CLK_THROTTLE_THERMAL 0x2
-
-/**
- * struct hl_info_clk_throttle - clock throttling reason
- * @clk_throttling_reason: each bit represents a clk throttling reason
- */
-struct hl_info_clk_throttle {
- __u32 clk_throttling_reason;
-};
-
-/**
- * struct hl_info_energy - device energy information
- * @total_energy_consumption: total device energy consumption
- */
-struct hl_info_energy {
- __u64 total_energy_consumption;
-};
-
-#define HL_PLL_NUM_OUTPUTS 4
-
-struct hl_pll_frequency_info {
- __u16 output[HL_PLL_NUM_OUTPUTS];
-};
-
-/**
- * struct hl_info_sync_manager - sync manager information
- * @first_available_sync_object: first available sob
- * @first_available_monitor: first available monitor
- * @first_available_cq: first available cq
- */
-struct hl_info_sync_manager {
- __u32 first_available_sync_object;
- __u32 first_available_monitor;
- __u32 first_available_cq;
- __u32 reserved;
-};
-
-/**
- * struct hl_info_cs_counters - command submission counters
- * @total_out_of_mem_drop_cnt: total dropped due to memory allocation issue
- * @ctx_out_of_mem_drop_cnt: context dropped due to memory allocation issue
- * @total_parsing_drop_cnt: total dropped due to error in packet parsing
- * @ctx_parsing_drop_cnt: context dropped due to error in packet parsing
- * @total_queue_full_drop_cnt: total dropped due to queue full
- * @ctx_queue_full_drop_cnt: context dropped due to queue full
- * @total_device_in_reset_drop_cnt: total dropped due to device in reset
- * @ctx_device_in_reset_drop_cnt: context dropped due to device in reset
- * @total_max_cs_in_flight_drop_cnt: total dropped due to maximum CS in-flight
- * @ctx_max_cs_in_flight_drop_cnt: context dropped due to maximum CS in-flight
- * @total_validation_drop_cnt: total dropped due to validation error
- * @ctx_validation_drop_cnt: context dropped due to validation error
- */
-struct hl_info_cs_counters {
- __u64 total_out_of_mem_drop_cnt;
- __u64 ctx_out_of_mem_drop_cnt;
- __u64 total_parsing_drop_cnt;
- __u64 ctx_parsing_drop_cnt;
- __u64 total_queue_full_drop_cnt;
- __u64 ctx_queue_full_drop_cnt;
- __u64 total_device_in_reset_drop_cnt;
- __u64 ctx_device_in_reset_drop_cnt;
- __u64 total_max_cs_in_flight_drop_cnt;
- __u64 ctx_max_cs_in_flight_drop_cnt;
- __u64 total_validation_drop_cnt;
- __u64 ctx_validation_drop_cnt;
-};
-
-enum gaudi_dcores {
- HL_GAUDI_WS_DCORE,
- HL_GAUDI_WN_DCORE,
- HL_GAUDI_EN_DCORE,
- HL_GAUDI_ES_DCORE
-};
-
struct hl_info_args {
/* Location of relevant struct in userspace */
__u64 return_pointer;
@@ -476,18 +185,12 @@ struct hl_info_args {
__u32 op;
union {
- /* Dcore id for which the information is relevant.
- * For Gaudi refer to 'enum gaudi_dcores'
- */
- __u32 dcore_id;
/* Context ID - Currently not in use */
__u32 ctx_id;
/* Period value for utilization rate (100ms - 1000ms, in 100ms
* resolution.
*/
__u32 period_ms;
- /* PLL frequency retrieval */
- __u32 pll_index;
};
__u32 pad;
@@ -497,14 +200,8 @@ struct hl_info_args {
#define HL_CB_OP_CREATE 0
/* Opcode to destroy previously created command buffer */
#define HL_CB_OP_DESTROY 1
-/* Opcode to retrieve information about a command buffer */
-#define HL_CB_OP_INFO 2
-
-/* 2MB minus 32 bytes for 2xMSG_PROT */
-#define HL_MAX_CB_SIZE (0x200000 - 32)
-/* Indicates whether the command buffer should be mapped to the device's MMU */
-#define HL_CB_FLAGS_MAP 0x1
+#define HL_MAX_CB_SIZE 0x200000 /* 2MB */
struct hl_cb_in {
/* Handle of CB or 0 if we want to create one */
@@ -517,22 +214,12 @@ struct hl_cb_in {
__u32 cb_size;
/* Context ID - Currently not in use */
__u32 ctx_id;
- /* HL_CB_FLAGS_* */
- __u32 flags;
+ __u32 pad;
};
struct hl_cb_out {
- union {
- /* Handle of CB */
- __u64 cb_handle;
-
- /* Information about CB */
- struct {
- /* Usage count of CB */
- __u32 usage_cnt;
- __u32 pad;
- };
- };
+ /* Handle of CB */
+ __u64 cb_handle;
};
union hl_cb_args {
@@ -540,128 +227,57 @@ union hl_cb_args {
struct hl_cb_out out;
};
-/* HL_CS_CHUNK_FLAGS_ values
- *
- * HL_CS_CHUNK_FLAGS_USER_ALLOC_CB:
- * Indicates if the CB was allocated and mapped by userspace.
- * User allocated CB is a command buffer allocated by the user, via malloc
- * (or similar). After allocating the CB, the user invokes “memory ioctl”
- * to map the user memory into a device virtual address. The user provides
- * this address via the cb_handle field. The interface provides the
- * ability to create a large CBs, Which aren’t limited to
- * “HL_MAX_CB_SIZE”. Therefore, it increases the PCI-DMA queues
- * throughput. This CB allocation method also reduces the use of Linux
- * DMA-able memory pool. Which are limited and used by other Linux
- * sub-systems.
- */
-#define HL_CS_CHUNK_FLAGS_USER_ALLOC_CB 0x1
-
/*
* This structure size must always be fixed to 64-bytes for backward
* compatibility
*/
struct hl_cs_chunk {
- union {
- /* For external queue, this represents a Handle of CB on the
- * Host.
- * For internal queue in Goya, this represents an SRAM or
- * a DRAM address of the internal CB. In Gaudi, this might also
- * represent a mapped host address of the CB.
- *
- * A mapped host address is in the device address space, after
- * a host address was mapped by the device MMU.
- */
- __u64 cb_handle;
-
- /* Relevant only when HL_CS_FLAGS_WAIT or
- * HL_CS_FLAGS_COLLECTIVE_WAIT is set.
- * This holds address of array of u64 values that contain
- * signal CS sequence numbers. The wait described by this job
- * will listen on all those signals (wait event per signal)
- */
- __u64 signal_seq_arr;
- };
-
+ /*
+ * For external queue, this represents a Handle of CB on the Host
+ * For internal queue, this represents an SRAM or DRAM address of the
+ * internal CB
+ */
+ __u64 cb_handle;
/* Index of queue to put the CB on */
__u32 queue_index;
-
- union {
- /*
- * Size of command buffer with valid packets
- * Can be smaller then actual CB size
- */
- __u32 cb_size;
-
- /* Relevant only when HL_CS_FLAGS_WAIT or
- * HL_CS_FLAGS_COLLECTIVE_WAIT is set.
- * Number of entries in signal_seq_arr
- */
- __u32 num_signal_seq_arr;
- };
-
+ /*
+ * Size of command buffer with valid packets
+ * Can be smaller then actual CB size
+ */
+ __u32 cb_size;
/* HL_CS_CHUNK_FLAGS_* */
__u32 cs_chunk_flags;
-
- /* Relevant only when HL_CS_FLAGS_COLLECTIVE_WAIT is set.
- * This holds the collective engine ID. The wait described by this job
- * will sync with this engine and with all NICs before completion.
- */
- __u32 collective_engine_id;
-
/* Align structure to 64 bytes */
- __u32 pad[10];
+ __u32 pad[11];
};
-/* SIGNAL and WAIT/COLLECTIVE_WAIT flags are mutually exclusive */
-#define HL_CS_FLAGS_FORCE_RESTORE 0x1
-#define HL_CS_FLAGS_SIGNAL 0x2
-#define HL_CS_FLAGS_WAIT 0x4
-#define HL_CS_FLAGS_COLLECTIVE_WAIT 0x8
-#define HL_CS_FLAGS_TIMESTAMP 0x20
-#define HL_CS_FLAGS_STAGED_SUBMISSION 0x40
-#define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80
-#define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100
+#define HL_CS_FLAGS_FORCE_RESTORE 0x1
#define HL_CS_STATUS_SUCCESS 0
#define HL_MAX_JOBS_PER_CS 512
struct hl_cs_in {
-
/* this holds address of array of hl_cs_chunk for restore phase */
__u64 chunks_restore;
-
- /* holds address of array of hl_cs_chunk for execution phase */
+ /* this holds address of array of hl_cs_chunk for execution phase */
__u64 chunks_execute;
-
- union {
- /* this holds address of array of hl_cs_chunk for store phase -
- * Currently not in use
- */
- __u64 chunks_store;
-
- /* Sequence number of a staged submission CS
- * valid only if HL_CS_FLAGS_STAGED_SUBMISSION is set
- */
- __u64 seq;
- };
-
+ /* this holds address of array of hl_cs_chunk for store phase -
+ * Currently not in use
+ */
+ __u64 chunks_store;
/* Number of chunks in restore phase array. Maximum number is
* HL_MAX_JOBS_PER_CS
*/
__u32 num_chunks_restore;
-
/* Number of chunks in execution array. Maximum number is
* HL_MAX_JOBS_PER_CS
*/
__u32 num_chunks_execute;
-
/* Number of chunks in restore phase array - Currently not in use */
__u32 num_chunks_store;
-
/* HL_CS_FLAGS_* */
__u32 cs_flags;
-
/* Context ID - Currently not in use */
__u32 ctx_id;
};
@@ -698,16 +314,10 @@ struct hl_wait_cs_in {
#define HL_WAIT_CS_STATUS_ABORTED 3
#define HL_WAIT_CS_STATUS_INTERRUPTED 4
-#define HL_WAIT_CS_STATUS_FLAG_GONE 0x1
-#define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2
-
struct hl_wait_cs_out {
/* HL_WAIT_CS_STATUS_* */
__u32 status;
- /* HL_WAIT_CS_STATUS_FLAG* */
- __u32 flags;
- /* valid only if HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD is set */
- __s64 timestamp_nsec;
+ __u32 pad;
};
union hl_wait_cs_args {
@@ -715,16 +325,14 @@ union hl_wait_cs_args {
struct hl_wait_cs_out out;
};
-/* Opcode to allocate device memory */
+/* Opcode to alloc device memory */
#define HL_MEM_OP_ALLOC 0
/* Opcode to free previously allocated device memory */
#define HL_MEM_OP_FREE 1
-/* Opcode to map host and device memory */
+/* Opcode to map host memory */
#define HL_MEM_OP_MAP 2
-/* Opcode to unmap previously mapped host and device memory */
+/* Opcode to unmap previously mapped host memory */
#define HL_MEM_OP_UNMAP 3
-/* Opcode to map a hw block */
-#define HL_MEM_OP_MAP_BLOCK 4
/* Memory flags */
#define HL_MEM_CONTIGUOUS 0x1
@@ -779,17 +387,6 @@ struct hl_mem_in {
__u64 mem_size;
} map_host;
- /* HL_MEM_OP_MAP_BLOCK - map a hw block */
- struct {
- /*
- * HW block address to map, a handle and size will be
- * returned to the user and will be used to mmap the
- * relevant block. Only addresses from configuration
- * space are allowed.
- */
- __u64 block_addr;
- } map_block;
-
/* HL_MEM_OP_UNMAP - unmap host memory */
struct {
/* Virtual address returned from HL_MEM_OP_MAP */
@@ -816,26 +413,10 @@ struct hl_mem_out {
__u64 device_virt_addr;
/*
- * Used in HL_MEM_OP_ALLOC
- * This is the assigned handle for the allocated memory
+ * Used for HL_MEM_OP_ALLOC. This is the assigned
+ * handle for the allocated memory
*/
__u64 handle;
-
- struct {
- /*
- * Used in HL_MEM_OP_MAP_BLOCK.
- * This is the assigned handle for the mapped block
- */
- __u64 block_handle;
-
- /*
- * Used in HL_MEM_OP_MAP_BLOCK
- * This is the size of the mapped block
- */
- __u32 block_size;
-
- __u32 pad;
- };
};
};
@@ -981,12 +562,6 @@ struct hl_debug_args {
* When creating a new CB, the IOCTL returns a handle of it, and the user-space
* process needs to use that handle to mmap the buffer so it can access them.
*
- * In some instances, the device must access the command buffer through the
- * device's MMU, and thus its memory should be mapped. In these cases, user can
- * indicate the driver that such a mapping is required.
- * The resulting device virtual address will be used internally by the driver,
- * and won't be returned to user.
- *
*/
#define HL_IOCTL_CB \
_IOWR('H', 0x02, union hl_cb_args)
@@ -1013,8 +588,8 @@ struct hl_debug_args {
* For jobs on external queues, the user needs to create command buffers
* through the CB ioctl and give the CB's handle to the CS ioctl. For jobs on
* internal queues, the user needs to prepare a "command buffer" with packets
- * on either the device SRAM/DRAM or the host, and give the device address of
- * that buffer to the CS ioctl.
+ * on either the SRAM or DRAM, and give the device address of that buffer to
+ * the CS ioctl.
*
* This IOCTL is asynchronous in regard to the actual execution of the CS. This
* means it returns immediately after ALL the JOBS were enqueued on their
@@ -1026,7 +601,7 @@ struct hl_debug_args {
* external JOBS have been completed. Note that if the CS has internal JOBS
* which can execute AFTER the external JOBS have finished, the driver might
* report that the CS has finished executing BEFORE the internal JOBS have
- * actually finished executing.
+ * actually finish executing.
*
* Even though the sequence number increments per CS, the user can NOT
* automatically assume that if CS with sequence number N finished, then CS
@@ -1045,9 +620,6 @@ struct hl_debug_args {
* inside the kernel until the CS has finished or until the user-requested
* timeout has expired.
*
- * If the timeout value is 0, the driver won't sleep at all. It will check
- * the status of the CS and return immediately
- *
* The return value of the IOCTL is a standard Linux error code. The possible
* values are:
*
diff --git a/original/uapi/misc/pvpanic.h b/original/uapi/misc/pvpanic.h
deleted file mode 100644
index 54b7485..0000000
--- a/original/uapi/misc/pvpanic.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-
-#ifndef __PVPANIC_H__
-#define __PVPANIC_H__
-
-#define PVPANIC_PANICKED (1 << 0)
-#define PVPANIC_CRASH_LOADED (1 << 1)
-
-#endif /* __PVPANIC_H__ */
diff --git a/original/uapi/misc/uacce/hisi_qm.h b/original/uapi/misc/uacce/hisi_qm.h
deleted file mode 100644
index 6435f0b..0000000
--- a/original/uapi/misc/uacce/hisi_qm.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-#ifndef _UAPI_HISI_QM_H
-#define _UAPI_HISI_QM_H
-
-#include <linux/types.h>
-
-/**
- * struct hisi_qp_ctx - User data for hisi qp.
- * @id: qp_index return to user space
- * @qc_type: Accelerator algorithm type
- */
-struct hisi_qp_ctx {
- __u16 id;
- __u16 qc_type;
-};
-
-#define HISI_QM_API_VER_BASE "hisi_qm_v1"
-#define HISI_QM_API_VER2_BASE "hisi_qm_v2"
-
-/* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */
-#define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
-
-#endif
diff --git a/original/uapi/misc/uacce/uacce.h b/original/uapi/misc/uacce/uacce.h
deleted file mode 100644
index cc71856..0000000
--- a/original/uapi/misc/uacce/uacce.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-#ifndef _UAPIUUACCE_H
-#define _UAPIUUACCE_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-/*
- * UACCE_CMD_START_Q: Start queue
- */
-#define UACCE_CMD_START_Q _IO('W', 0)
-
-/*
- * UACCE_CMD_PUT_Q:
- * User actively stop queue and free queue resource immediately
- * Optimization method since close fd may delay
- */
-#define UACCE_CMD_PUT_Q _IO('W', 1)
-
-/*
- * UACCE Device flags:
- * UACCE_DEV_SVA: Shared Virtual Addresses
- * Support PASID
- * Support device page faults (PCI PRI or SMMU Stall)
- */
-#define UACCE_DEV_SVA BIT(0)
-
-/**
- * enum uacce_qfrt: queue file region type
- * @UACCE_QFRT_MMIO: device mmio region
- * @UACCE_QFRT_DUS: device user share region
- */
-enum uacce_qfrt {
- UACCE_QFRT_MMIO = 0,
- UACCE_QFRT_DUS = 1,
-};
-
-#endif
diff --git a/original/uapi/mtd/mtd-abi.h b/original/uapi/mtd/mtd-abi.h
index 65b9db9..47ffe32 100644
--- a/original/uapi/mtd/mtd-abi.h
+++ b/original/uapi/mtd/mtd-abi.h
@@ -104,7 +104,6 @@ struct mtd_write_req {
#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */
#define MTD_NO_ERASE 0x1000 /* No erase necessary */
#define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */
-#define MTD_SLC_ON_MLC_EMULATION 0x4000 /* Emulate SLC behavior on MLC NANDs */
/* Some common devices / combinations of capabilities */
#define MTD_CAP_ROM 0
@@ -262,7 +261,7 @@ struct mtd_ecc_stats {
* @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode
* @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled
*
- * These modes can be set via ioctl(MTDFILEMODE). The mode will be retained
+ * These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained
* separately for each open file descriptor.
*
* Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW -
diff --git a/original/uapi/rdma/efa-abi.h b/original/uapi/rdma/efa-abi.h
index f89fbb5..53b6e20 100644
--- a/original/uapi/rdma/efa-abi.h
+++ b/original/uapi/rdma/efa-abi.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
/*
- * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef EFA_ABI_USER_H
@@ -20,16 +20,6 @@
* hex bit offset of the field.
*/
-enum {
- EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH = 1 << 0,
- EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR = 1 << 1,
-};
-
-struct efa_ibv_alloc_ucontext_cmd {
- __u32 comp_mask;
- __u8 reserved_20[4];
-};
-
enum efa_ibv_user_cmds_supp_udata {
EFA_USER_CMDS_SUPP_UDATA_QUERY_DEVICE = 1 << 0,
EFA_USER_CMDS_SUPP_UDATA_CREATE_AH = 1 << 1,
@@ -41,9 +31,6 @@ struct efa_ibv_alloc_ucontext_resp {
__u16 sub_cqs_per_cq;
__u16 inline_buf_size;
__u32 max_llq_size; /* bytes */
- __u16 max_tx_batch; /* units of 64 bytes */
- __u16 min_sq_wr;
- __u8 reserved_a0[4];
};
struct efa_ibv_alloc_pd_resp {
@@ -105,7 +92,6 @@ struct efa_ibv_create_ah_resp {
enum {
EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
- EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
};
struct efa_ibv_ex_query_device_resp {
diff --git a/original/uapi/rdma/hfi/hfi1_user.h b/original/uapi/rdma/hfi/hfi1_user.h
index d95ef9a..01ac585 100644
--- a/original/uapi/rdma/hfi/hfi1_user.h
+++ b/original/uapi/rdma/hfi/hfi1_user.h
@@ -6,7 +6,7 @@
*
* GPL LICENSE SUMMARY
*
- * Copyright(c) 2015 - 2020 Intel Corporation.
+ * Copyright(c) 2015 - 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
@@ -109,7 +109,6 @@
#define HFI1_CAP_OPFN (1UL << 16) /* Enable the OPFN protocol */
#define HFI1_CAP_SDMA_HEAD_CHECK (1UL << 17) /* SDMA head checking */
#define HFI1_CAP_EARLY_CREDIT_RETURN (1UL << 18) /* early credit return */
-#define HFI1_CAP_AIP (1UL << 19) /* Enable accelerated IP */
#define HFI1_RCVHDR_ENTSIZE_2 (1UL << 0)
#define HFI1_RCVHDR_ENTSIZE_16 (1UL << 1)
diff --git a/original/uapi/rdma/hns-abi.h b/original/uapi/rdma/hns-abi.h
index 90b739d..eb76b38 100644
--- a/original/uapi/rdma/hns-abi.h
+++ b/original/uapi/rdma/hns-abi.h
@@ -39,12 +39,6 @@
struct hns_roce_ib_create_cq {
__aligned_u64 buf_addr;
__aligned_u64 db_addr;
- __u32 cqe_size;
- __u32 reserved;
-};
-
-enum hns_roce_cq_cap_flags {
- HNS_ROCE_CQ_FLAG_RECORD_DB = 1 << 0,
};
struct hns_roce_ib_create_cq_resp {
@@ -73,19 +67,13 @@ struct hns_roce_ib_create_qp {
__aligned_u64 sdb_addr;
};
-enum hns_roce_qp_cap_flags {
- HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
- HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
- HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
-};
-
struct hns_roce_ib_create_qp_resp {
__aligned_u64 cap_flags;
};
struct hns_roce_ib_alloc_ucontext_resp {
__u32 qp_tab_size;
- __u32 cqe_size;
+ __u32 reserved;
};
struct hns_roce_ib_alloc_pd_resp {
diff --git a/original/uapi/rdma/ib_user_ioctl_cmds.h b/original/uapi/rdma/ib_user_ioctl_cmds.h
index dafc7eb..64f0e3a 100644
--- a/original/uapi/rdma/ib_user_ioctl_cmds.h
+++ b/original/uapi/rdma/ib_user_ioctl_cmds.h
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2018, Mellanox Technologies inc. All rights reserved.
- * Copyright (c) 2020, Intel Corporation. All rights reserved.
*
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
@@ -57,7 +56,6 @@ enum uverbs_default_objects {
UVERBS_OBJECT_FLOW_ACTION,
UVERBS_OBJECT_DM,
UVERBS_OBJECT_COUNTERS,
- UVERBS_OBJECT_ASYNC_EVENT,
};
enum {
@@ -69,10 +67,6 @@ enum uverbs_methods_device {
UVERBS_METHOD_INVOKE_WRITE,
UVERBS_METHOD_INFO_HANDLES,
UVERBS_METHOD_QUERY_PORT,
- UVERBS_METHOD_GET_CONTEXT,
- UVERBS_METHOD_QUERY_CONTEXT,
- UVERBS_METHOD_QUERY_GID_TABLE,
- UVERBS_METHOD_QUERY_GID_ENTRY,
};
enum uverbs_attrs_invoke_write_cmd_attr_ids {
@@ -86,16 +80,6 @@ enum uverbs_attrs_query_port_cmd_attr_ids {
UVERBS_ATTR_QUERY_PORT_RESP,
};
-enum uverbs_attrs_get_context_attr_ids {
- UVERBS_ATTR_GET_CONTEXT_NUM_COMP_VECTORS,
- UVERBS_ATTR_GET_CONTEXT_CORE_SUPPORT,
-};
-
-enum uverbs_attrs_query_context_attr_ids {
- UVERBS_ATTR_QUERY_CONTEXT_NUM_COMP_VECTORS,
- UVERBS_ATTR_QUERY_CONTEXT_CORE_SUPPORT,
-};
-
enum uverbs_attrs_create_cq_cmd_attr_ids {
UVERBS_ATTR_CREATE_CQ_HANDLE,
UVERBS_ATTR_CREATE_CQ_CQE,
@@ -104,7 +88,6 @@ enum uverbs_attrs_create_cq_cmd_attr_ids {
UVERBS_ATTR_CREATE_CQ_COMP_VECTOR,
UVERBS_ATTR_CREATE_CQ_FLAGS,
UVERBS_ATTR_CREATE_CQ_RESP_CQE,
- UVERBS_ATTR_CREATE_CQ_EVENT_FD,
};
enum uverbs_attrs_destroy_cq_cmd_attr_ids {
@@ -130,91 +113,11 @@ enum uverbs_attrs_destroy_flow_action_esp {
UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
};
-enum uverbs_attrs_create_qp_cmd_attr_ids {
- UVERBS_ATTR_CREATE_QP_HANDLE,
- UVERBS_ATTR_CREATE_QP_XRCD_HANDLE,
- UVERBS_ATTR_CREATE_QP_PD_HANDLE,
- UVERBS_ATTR_CREATE_QP_SRQ_HANDLE,
- UVERBS_ATTR_CREATE_QP_SEND_CQ_HANDLE,
- UVERBS_ATTR_CREATE_QP_RECV_CQ_HANDLE,
- UVERBS_ATTR_CREATE_QP_IND_TABLE_HANDLE,
- UVERBS_ATTR_CREATE_QP_USER_HANDLE,
- UVERBS_ATTR_CREATE_QP_CAP,
- UVERBS_ATTR_CREATE_QP_TYPE,
- UVERBS_ATTR_CREATE_QP_FLAGS,
- UVERBS_ATTR_CREATE_QP_SOURCE_QPN,
- UVERBS_ATTR_CREATE_QP_EVENT_FD,
- UVERBS_ATTR_CREATE_QP_RESP_CAP,
- UVERBS_ATTR_CREATE_QP_RESP_QP_NUM,
-};
-
-enum uverbs_attrs_destroy_qp_cmd_attr_ids {
- UVERBS_ATTR_DESTROY_QP_HANDLE,
- UVERBS_ATTR_DESTROY_QP_RESP,
-};
-
-enum uverbs_methods_qp {
- UVERBS_METHOD_QP_CREATE,
- UVERBS_METHOD_QP_DESTROY,
-};
-
-enum uverbs_attrs_create_srq_cmd_attr_ids {
- UVERBS_ATTR_CREATE_SRQ_HANDLE,
- UVERBS_ATTR_CREATE_SRQ_PD_HANDLE,
- UVERBS_ATTR_CREATE_SRQ_XRCD_HANDLE,
- UVERBS_ATTR_CREATE_SRQ_CQ_HANDLE,
- UVERBS_ATTR_CREATE_SRQ_USER_HANDLE,
- UVERBS_ATTR_CREATE_SRQ_MAX_WR,
- UVERBS_ATTR_CREATE_SRQ_MAX_SGE,
- UVERBS_ATTR_CREATE_SRQ_LIMIT,
- UVERBS_ATTR_CREATE_SRQ_MAX_NUM_TAGS,
- UVERBS_ATTR_CREATE_SRQ_TYPE,
- UVERBS_ATTR_CREATE_SRQ_EVENT_FD,
- UVERBS_ATTR_CREATE_SRQ_RESP_MAX_WR,
- UVERBS_ATTR_CREATE_SRQ_RESP_MAX_SGE,
- UVERBS_ATTR_CREATE_SRQ_RESP_SRQ_NUM,
-};
-
-enum uverbs_attrs_destroy_srq_cmd_attr_ids {
- UVERBS_ATTR_DESTROY_SRQ_HANDLE,
- UVERBS_ATTR_DESTROY_SRQ_RESP,
-};
-
-enum uverbs_methods_srq {
- UVERBS_METHOD_SRQ_CREATE,
- UVERBS_METHOD_SRQ_DESTROY,
-};
-
enum uverbs_methods_cq {
UVERBS_METHOD_CQ_CREATE,
UVERBS_METHOD_CQ_DESTROY,
};
-enum uverbs_attrs_create_wq_cmd_attr_ids {
- UVERBS_ATTR_CREATE_WQ_HANDLE,
- UVERBS_ATTR_CREATE_WQ_PD_HANDLE,
- UVERBS_ATTR_CREATE_WQ_CQ_HANDLE,
- UVERBS_ATTR_CREATE_WQ_USER_HANDLE,
- UVERBS_ATTR_CREATE_WQ_TYPE,
- UVERBS_ATTR_CREATE_WQ_EVENT_FD,
- UVERBS_ATTR_CREATE_WQ_MAX_WR,
- UVERBS_ATTR_CREATE_WQ_MAX_SGE,
- UVERBS_ATTR_CREATE_WQ_FLAGS,
- UVERBS_ATTR_CREATE_WQ_RESP_MAX_WR,
- UVERBS_ATTR_CREATE_WQ_RESP_MAX_SGE,
- UVERBS_ATTR_CREATE_WQ_RESP_WQ_NUM,
-};
-
-enum uverbs_attrs_destroy_wq_cmd_attr_ids {
- UVERBS_ATTR_DESTROY_WQ_HANDLE,
- UVERBS_ATTR_DESTROY_WQ_RESP,
-};
-
-enum uverbs_methods_wq {
- UVERBS_METHOD_WQ_CREATE,
- UVERBS_METHOD_WQ_DESTROY,
-};
-
enum uverbs_methods_actions_flow_action_ops {
UVERBS_METHOD_FLOW_ACTION_ESP_CREATE,
UVERBS_METHOD_FLOW_ACTION_DESTROY,
@@ -251,8 +154,6 @@ enum uverbs_methods_mr {
UVERBS_METHOD_DM_MR_REG,
UVERBS_METHOD_MR_DESTROY,
UVERBS_METHOD_ADVISE_MR,
- UVERBS_METHOD_QUERY_MR,
- UVERBS_METHOD_REG_DMABUF_MR,
};
enum uverbs_attrs_mr_destroy_ids {
@@ -266,26 +167,6 @@ enum uverbs_attrs_advise_mr_cmd_attr_ids {
UVERBS_ATTR_ADVISE_MR_SGE_LIST,
};
-enum uverbs_attrs_query_mr_cmd_attr_ids {
- UVERBS_ATTR_QUERY_MR_HANDLE,
- UVERBS_ATTR_QUERY_MR_RESP_LKEY,
- UVERBS_ATTR_QUERY_MR_RESP_RKEY,
- UVERBS_ATTR_QUERY_MR_RESP_LENGTH,
- UVERBS_ATTR_QUERY_MR_RESP_IOVA,
-};
-
-enum uverbs_attrs_reg_dmabuf_mr_cmd_attr_ids {
- UVERBS_ATTR_REG_DMABUF_MR_HANDLE,
- UVERBS_ATTR_REG_DMABUF_MR_PD_HANDLE,
- UVERBS_ATTR_REG_DMABUF_MR_OFFSET,
- UVERBS_ATTR_REG_DMABUF_MR_LENGTH,
- UVERBS_ATTR_REG_DMABUF_MR_IOVA,
- UVERBS_ATTR_REG_DMABUF_MR_FD,
- UVERBS_ATTR_REG_DMABUF_MR_ACCESS_FLAGS,
- UVERBS_ATTR_REG_DMABUF_MR_RESP_LKEY,
- UVERBS_ATTR_REG_DMABUF_MR_RESP_RKEY,
-};
-
enum uverbs_attrs_create_counters_cmd_attr_ids {
UVERBS_ATTR_CREATE_COUNTERS_HANDLE,
};
@@ -360,26 +241,4 @@ enum uverbs_attrs_flow_destroy_ids {
UVERBS_ATTR_DESTROY_FLOW_HANDLE,
};
-enum uverbs_method_async_event {
- UVERBS_METHOD_ASYNC_EVENT_ALLOC,
-};
-
-enum uverbs_attrs_async_event_create {
- UVERBS_ATTR_ASYNC_EVENT_ALLOC_FD_HANDLE,
-};
-
-enum uverbs_attrs_query_gid_table_cmd_attr_ids {
- UVERBS_ATTR_QUERY_GID_TABLE_ENTRY_SIZE,
- UVERBS_ATTR_QUERY_GID_TABLE_FLAGS,
- UVERBS_ATTR_QUERY_GID_TABLE_RESP_ENTRIES,
- UVERBS_ATTR_QUERY_GID_TABLE_RESP_NUM_ENTRIES,
-};
-
-enum uverbs_attrs_query_gid_entry_cmd_attr_ids {
- UVERBS_ATTR_QUERY_GID_ENTRY_PORT,
- UVERBS_ATTR_QUERY_GID_ENTRY_GID_INDEX,
- UVERBS_ATTR_QUERY_GID_ENTRY_FLAGS,
- UVERBS_ATTR_QUERY_GID_ENTRY_RESP_ENTRY,
-};
-
#endif
diff --git a/original/uapi/rdma/ib_user_ioctl_verbs.h b/original/uapi/rdma/ib_user_ioctl_verbs.h
index 2248379..9019b2d 100644
--- a/original/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/original/uapi/rdma/ib_user_ioctl_verbs.h
@@ -41,13 +41,6 @@
#define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name
#endif
-#define IB_UVERBS_ACCESS_OPTIONAL_FIRST (1 << 20)
-#define IB_UVERBS_ACCESS_OPTIONAL_LAST (1 << 29)
-
-enum ib_uverbs_core_support {
- IB_UVERBS_CORE_SUPPORT_OPTIONAL_MR_ACCESS = 1 << 0,
-};
-
enum ib_uverbs_access_flags {
IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0,
IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1,
@@ -57,46 +50,6 @@ enum ib_uverbs_access_flags {
IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5,
IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6,
IB_UVERBS_ACCESS_HUGETLB = 1 << 7,
-
- IB_UVERBS_ACCESS_RELAXED_ORDERING = IB_UVERBS_ACCESS_OPTIONAL_FIRST,
- IB_UVERBS_ACCESS_OPTIONAL_RANGE =
- ((IB_UVERBS_ACCESS_OPTIONAL_LAST << 1) - 1) &
- ~(IB_UVERBS_ACCESS_OPTIONAL_FIRST - 1)
-};
-
-enum ib_uverbs_srq_type {
- IB_UVERBS_SRQT_BASIC,
- IB_UVERBS_SRQT_XRC,
- IB_UVERBS_SRQT_TM,
-};
-
-enum ib_uverbs_wq_type {
- IB_UVERBS_WQT_RQ,
-};
-
-enum ib_uverbs_wq_flags {
- IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1 << 0,
- IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 1 << 1,
- IB_UVERBS_WQ_FLAGS_DELAY_DROP = 1 << 2,
- IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 1 << 3,
-};
-
-enum ib_uverbs_qp_type {
- IB_UVERBS_QPT_RC = 2,
- IB_UVERBS_QPT_UC,
- IB_UVERBS_QPT_UD,
- IB_UVERBS_QPT_RAW_PACKET = 8,
- IB_UVERBS_QPT_XRC_INI,
- IB_UVERBS_QPT_XRC_TGT,
- IB_UVERBS_QPT_DRIVER = 0xFF,
-};
-
-enum ib_uverbs_qp_create_flags {
- IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1,
- IB_UVERBS_QP_CREATE_SCATTER_FCS = 1 << 8,
- IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 1 << 9,
- IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 1 << 11,
- IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 1 << 12,
};
enum ib_uverbs_query_port_cap_flags {
@@ -208,7 +161,6 @@ enum ib_uverbs_read_counters_flags {
enum ib_uverbs_advise_mr_advice {
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH,
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE,
- IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT,
};
enum ib_uverbs_advise_mr_flag {
@@ -221,14 +173,6 @@ struct ib_uverbs_query_port_resp_ex {
__u8 reserved[6];
};
-struct ib_uverbs_qp_cap {
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
- __u32 max_inline_data;
-};
-
enum rdma_driver_id {
RDMA_DRIVER_UNKNOWN,
RDMA_DRIVER_MLX5,
@@ -251,18 +195,4 @@ enum rdma_driver_id {
RDMA_DRIVER_SIW,
};
-enum ib_uverbs_gid_type {
- IB_UVERBS_GID_TYPE_IB,
- IB_UVERBS_GID_TYPE_ROCE_V1,
- IB_UVERBS_GID_TYPE_ROCE_V2,
-};
-
-struct ib_uverbs_gid_entry {
- __aligned_u64 gid[2];
- __u32 gid_index;
- __u32 port_num;
- __u32 gid_type;
- __u32 netdev_ifindex; /* It is 0 if there is no netdev associated with it */
-};
-
#endif
diff --git a/original/uapi/rdma/ib_user_verbs.h b/original/uapi/rdma/ib_user_verbs.h
index 7ee73a0..0474c74 100644
--- a/original/uapi/rdma/ib_user_verbs.h
+++ b/original/uapi/rdma/ib_user_verbs.h
@@ -457,17 +457,6 @@ struct ib_uverbs_poll_cq {
__u32 ne;
};
-enum ib_uverbs_wc_opcode {
- IB_UVERBS_WC_SEND = 0,
- IB_UVERBS_WC_RDMA_WRITE = 1,
- IB_UVERBS_WC_RDMA_READ = 2,
- IB_UVERBS_WC_COMP_SWAP = 3,
- IB_UVERBS_WC_FETCH_ADD = 4,
- IB_UVERBS_WC_BIND_MW = 5,
- IB_UVERBS_WC_LOCAL_INV = 6,
- IB_UVERBS_WC_TSO = 7,
-};
-
struct ib_uverbs_wc {
__aligned_u64 wr_id;
__u32 status;
@@ -596,6 +585,20 @@ enum {
IB_UVERBS_CREATE_QP_SUP_COMP_MASK = IB_UVERBS_CREATE_QP_MASK_IND_TABLE,
};
+enum {
+ /*
+ * This value is equal to IB_QP_DEST_QPN.
+ */
+ IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
+};
+
+enum {
+ /*
+ * This value is equal to IB_QP_RATE_LIMIT.
+ */
+ IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
+};
+
struct ib_uverbs_ex_create_qp {
__aligned_u64 user_handle;
__u32 pd_handle;
diff --git a/original/uapi/rdma/mlx5-abi.h b/original/uapi/rdma/mlx5-abi.h
index 27905a0..624f5b5 100644
--- a/original/uapi/rdma/mlx5-abi.h
+++ b/original/uapi/rdma/mlx5-abi.h
@@ -49,7 +49,6 @@ enum {
MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7,
MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
- MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
};
enum {
@@ -79,7 +78,6 @@ struct mlx5_ib_alloc_ucontext_req {
enum mlx5_lib_caps {
MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0,
- MLX5_LIB_CAP_DYN_UAR = (__u64)1 << 1,
};
enum mlx5_ib_alloc_uctx_v2_flags {
@@ -100,7 +98,6 @@ struct mlx5_ib_alloc_ucontext_req_v2 {
enum mlx5_ib_alloc_ucontext_resp_mask {
MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
- MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
};
enum mlx5_user_cmds_supp_uhw {
@@ -269,7 +266,6 @@ struct mlx5_ib_query_device_resp {
enum mlx5_ib_create_cq_flags {
MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
- MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
};
struct mlx5_ib_create_cq {
@@ -279,9 +275,6 @@ struct mlx5_ib_create_cq {
__u8 cqe_comp_en;
__u8 cqe_comp_res_format;
__u16 flags;
- __u16 uar_page_index;
- __u16 reserved0;
- __u32 reserved1;
};
struct mlx5_ib_create_cq_resp {
@@ -323,8 +316,6 @@ struct mlx5_ib_create_qp {
__aligned_u64 sq_buf_addr;
__aligned_u64 access_key;
};
- __u32 ece_options;
- __u32 reserved;
};
/* RX Hash function flags */
@@ -374,7 +365,7 @@ enum mlx5_ib_create_qp_resp_mask {
struct mlx5_ib_create_qp_resp {
__u32 bfreg_index;
- __u32 ece_options;
+ __u32 reserved;
__u32 comp_mask;
__u32 tirn;
__u32 tisn;
@@ -423,14 +414,12 @@ struct mlx5_ib_burst_info {
struct mlx5_ib_modify_qp {
__u32 comp_mask;
struct mlx5_ib_burst_info burst_info;
- __u32 ece_options;
+ __u32 reserved;
};
struct mlx5_ib_modify_qp_resp {
__u32 response_length;
__u32 dctn;
- __u32 ece_options;
- __u32 reserved;
};
struct mlx5_ib_create_wq_resp {
diff --git a/original/uapi/rdma/mlx5_user_ioctl_cmds.h b/original/uapi/rdma/mlx5_user_ioctl_cmds.h
index 3fd9b38..20d8830 100644
--- a/original/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/original/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -115,39 +115,6 @@ enum mlx5_ib_devx_obj_methods {
MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
};
-enum mlx5_ib_var_alloc_attrs {
- MLX5_IB_ATTR_VAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET,
- MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH,
- MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID,
-};
-
-enum mlx5_ib_var_obj_destroy_attrs {
- MLX5_IB_ATTR_VAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
-};
-
-enum mlx5_ib_var_obj_methods {
- MLX5_IB_METHOD_VAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_METHOD_VAR_OBJ_DESTROY,
-};
-
-enum mlx5_ib_uar_alloc_attrs {
- MLX5_IB_ATTR_UAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_ATTR_UAR_OBJ_ALLOC_TYPE,
- MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_OFFSET,
- MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_LENGTH,
- MLX5_IB_ATTR_UAR_OBJ_ALLOC_PAGE_ID,
-};
-
-enum mlx5_ib_uar_obj_destroy_attrs {
- MLX5_IB_ATTR_UAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
-};
-
-enum mlx5_ib_uar_obj_methods {
- MLX5_IB_METHOD_UAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_METHOD_UAR_OBJ_DESTROY,
-};
-
enum mlx5_ib_devx_umem_reg_attrs {
MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
@@ -160,22 +127,6 @@ enum mlx5_ib_devx_umem_dereg_attrs {
MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
};
-enum mlx5_ib_pp_obj_methods {
- MLX5_IB_METHOD_PP_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_METHOD_PP_OBJ_DESTROY,
-};
-
-enum mlx5_ib_pp_alloc_attrs {
- MLX5_IB_ATTR_PP_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_ATTR_PP_OBJ_ALLOC_CTX,
- MLX5_IB_ATTR_PP_OBJ_ALLOC_FLAGS,
- MLX5_IB_ATTR_PP_OBJ_ALLOC_INDEX,
-};
-
-enum mlx5_ib_pp_obj_destroy_attrs {
- MLX5_IB_ATTR_PP_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
-};
-
enum mlx5_ib_devx_umem_methods {
MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
MLX5_IB_METHOD_DEVX_UMEM_DEREG,
@@ -205,9 +156,6 @@ enum mlx5_ib_objects {
MLX5_IB_OBJECT_FLOW_MATCHER,
MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD,
- MLX5_IB_OBJECT_VAR,
- MLX5_IB_OBJECT_PP,
- MLX5_IB_OBJECT_UAR,
};
enum mlx5_ib_flow_matcher_create_attrs {
@@ -228,11 +176,7 @@ enum mlx5_ib_flow_matcher_methods {
MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
};
-enum mlx5_ib_device_query_context_attrs {
- MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
-};
-
-#define MLX5_IB_DW_MATCH_PARAM 0x90
+#define MLX5_IB_DW_MATCH_PARAM 0x80
struct mlx5_ib_match_params {
__u32 match_params[MLX5_IB_DW_MATCH_PARAM];
@@ -245,11 +189,6 @@ enum mlx5_ib_flow_type {
MLX5_IB_FLOW_TYPE_MC_DEFAULT,
};
-enum mlx5_ib_create_flow_flags {
- MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DEFAULT_MISS = 1 << 0,
- MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP = 1 << 1,
-};
-
enum mlx5_ib_create_flow_attrs {
MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE,
@@ -260,10 +199,9 @@ enum mlx5_ib_create_flow_attrs {
MLX5_IB_ATTR_CREATE_FLOW_TAG,
MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET,
- MLX5_IB_ATTR_CREATE_FLOW_FLAGS,
};
-enum mlx5_ib_destroy_flow_attrs {
+enum mlx5_ib_destoy_flow_attrs {
MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
};
@@ -290,14 +228,4 @@ enum mlx5_ib_create_flow_action_create_packet_reformat_attrs {
MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF,
};
-enum mlx5_ib_query_pd_attrs {
- MLX5_IB_ATTR_QUERY_PD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
- MLX5_IB_ATTR_QUERY_PD_RESP_PDN,
-};
-
-enum mlx5_ib_pd_methods {
- MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
-
-};
-
#endif
diff --git a/original/uapi/rdma/mlx5_user_ioctl_verbs.h b/original/uapi/rdma/mlx5_user_ioctl_verbs.h
index 56b26ea..88b6ca7 100644
--- a/original/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/original/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -44,7 +44,6 @@ enum mlx5_ib_uapi_flow_table_type {
MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1,
MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2,
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_RX = 0x3,
- MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TX = 0x4,
};
enum mlx5_ib_uapi_flow_action_packet_reformat_type {
@@ -74,14 +73,5 @@ struct mlx5_ib_uapi_devx_async_event_hdr {
__u8 out_data[];
};
-enum mlx5_ib_uapi_pp_alloc_flags {
- MLX5_IB_UAPI_PP_ALLOC_FLAGS_DEDICATED_INDEX = 1 << 0,
-};
-
-enum mlx5_ib_uapi_uar_alloc_type {
- MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
- MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
-};
-
#endif
diff --git a/original/uapi/rdma/qedr-abi.h b/original/uapi/rdma/qedr-abi.h
index bf7333b..c022ee2 100644
--- a/original/uapi/rdma/qedr-abi.h
+++ b/original/uapi/rdma/qedr-abi.h
@@ -39,9 +39,8 @@
/* user kernel communication data structures. */
enum qedr_alloc_ucontext_flags {
- QEDR_ALLOC_UCTX_EDPM_MODE = 1 << 0,
- QEDR_ALLOC_UCTX_DB_REC = 1 << 1,
- QEDR_SUPPORT_DPM_SIZES = 1 << 2,
+ QEDR_ALLOC_UCTX_RESERVED = 1 << 0,
+ QEDR_ALLOC_UCTX_DB_REC = 1 << 1
};
struct qedr_alloc_ucontext_req {
@@ -49,19 +48,6 @@ struct qedr_alloc_ucontext_req {
__u32 reserved;
};
-#define QEDR_LDPM_MAX_SIZE (8192)
-#define QEDR_EDPM_TRANS_SIZE (64)
-#define QEDR_EDPM_MAX_SIZE (ROCE_REQ_MAX_INLINE_DATA_SIZE)
-
-enum qedr_rdma_dpm_type {
- QEDR_DPM_TYPE_NONE = 0,
- QEDR_DPM_TYPE_ROCE_ENHANCED = 1 << 0,
- QEDR_DPM_TYPE_ROCE_LEGACY = 1 << 1,
- QEDR_DPM_TYPE_IWARP_LEGACY = 1 << 2,
- QEDR_DPM_TYPE_ROCE_EDPM_MODE = 1 << 3,
- QEDR_DPM_SIZES_SET = 1 << 4,
-};
-
struct qedr_alloc_ucontext_resp {
__aligned_u64 db_pa;
__u32 db_size;
@@ -73,14 +59,10 @@ struct qedr_alloc_ucontext_resp {
__u32 sges_per_recv_wr;
__u32 sges_per_srq_wr;
__u32 max_cqes;
- __u8 dpm_flags;
+ __u8 dpm_enabled;
__u8 wids_enabled;
__u16 wid_count;
- __u16 ldpm_limit_size;
- __u8 edpm_trans_size;
- __u8 reserved;
- __u16 edpm_limit_size;
- __u8 padding[6];
+ __u32 reserved;
};
struct qedr_alloc_pd_ureq {
diff --git a/original/uapi/rdma/rdma_netlink.h b/original/uapi/rdma/rdma_netlink.h
index d2f5b83..8e27778 100644
--- a/original/uapi/rdma/rdma_netlink.h
+++ b/original/uapi/rdma/rdma_netlink.h
@@ -287,12 +287,6 @@ enum rdma_nldev_command {
RDMA_NLDEV_CMD_STAT_DEL,
- RDMA_NLDEV_CMD_RES_QP_GET_RAW,
-
- RDMA_NLDEV_CMD_RES_CQ_GET_RAW,
-
- RDMA_NLDEV_CMD_RES_MR_GET_RAW,
-
RDMA_NLDEV_NUM_OPS
};
@@ -531,8 +525,6 @@ enum rdma_nldev_attr {
*/
RDMA_NLDEV_ATTR_DEV_DIM, /* u8 */
- RDMA_NLDEV_ATTR_RES_RAW, /* binary */
-
/*
* Always the end
*/
@@ -569,6 +561,5 @@ enum rdma_nl_counter_mode {
*/
enum rdma_nl_counter_mask {
RDMA_COUNTER_MASK_QP_TYPE = 1,
- RDMA_COUNTER_MASK_PID = 1 << 1,
};
#endif /* _UAPI_RDMA_NETLINK_H */
diff --git a/original/uapi/rdma/rdma_user_cm.h b/original/uapi/rdma/rdma_user_cm.h
index ed5a514..e42940a 100644
--- a/original/uapi/rdma/rdma_user_cm.h
+++ b/original/uapi/rdma/rdma_user_cm.h
@@ -164,8 +164,6 @@ struct rdma_ucm_query_route_resp {
__u32 num_paths;
__u8 port_num;
__u8 reserved[3];
- __u32 ibdev_index;
- __u32 reserved1;
};
struct rdma_ucm_query_addr_resp {
@@ -177,8 +175,6 @@ struct rdma_ucm_query_addr_resp {
__u16 dst_size;
struct __kernel_sockaddr_storage src_addr;
struct __kernel_sockaddr_storage dst_addr;
- __u32 ibdev_index;
- __u32 reserved1;
};
struct rdma_ucm_query_path_resp {
@@ -210,16 +206,10 @@ struct rdma_ucm_ud_param {
__u8 reserved[7];
};
-struct rdma_ucm_ece {
- __u32 vendor_id;
- __u32 attr_mod;
-};
-
struct rdma_ucm_connect {
struct rdma_ucm_conn_param conn_param;
__u32 id;
__u32 reserved;
- struct rdma_ucm_ece ece;
};
struct rdma_ucm_listen {
@@ -232,14 +222,12 @@ struct rdma_ucm_accept {
struct rdma_ucm_conn_param conn_param;
__u32 id;
__u32 reserved;
- struct rdma_ucm_ece ece;
};
struct rdma_ucm_reject {
__u32 id;
__u8 private_data_len;
- __u8 reason;
- __u8 reserved[2];
+ __u8 reserved[3];
__u8 private_data[RDMA_MAX_PRIVATE_DATA];
};
@@ -299,7 +287,6 @@ struct rdma_ucm_event_resp {
struct rdma_ucm_ud_param ud;
} param;
__u32 reserved;
- struct rdma_ucm_ece ece;
};
/* Option levels */
diff --git a/original/uapi/rdma/rdma_user_ioctl.h b/original/uapi/rdma/rdma_user_ioctl.h
index 53c5518..d92d272 100644
--- a/original/uapi/rdma/rdma_user_ioctl.h
+++ b/original/uapi/rdma/rdma_user_ioctl.h
@@ -43,7 +43,7 @@
/*
* General blocks assignments
- * It is closed on purpose - do not expose it to user space
+ * It is closed on purpose do not expose it it user space
* #define MAD_CMD_BASE 0x00
* #define HFI1_CMD_BAS 0xE0
*/
diff --git a/original/uapi/rdma/rdma_user_ioctl_cmds.h b/original/uapi/rdma/rdma_user_ioctl_cmds.h
index 38ab7ac..7b1ec80 100644
--- a/original/uapi/rdma/rdma_user_ioctl_cmds.h
+++ b/original/uapi/rdma/rdma_user_ioctl_cmds.h
@@ -36,7 +36,7 @@
#include <linux/types.h>
#include <linux/ioctl.h>
-/* Documentation/userspace-api/ioctl/ioctl-number.rst */
+/* Documentation/ioctl/ioctl-number.rst */
#define RDMA_IOCTL_MAGIC 0x1b
#define RDMA_VERBS_IOCTL \
_IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
diff --git a/original/uapi/rdma/rdma_user_rxe.h b/original/uapi/rdma/rdma_user_rxe.h
index 068433e..aae2e69 100644
--- a/original/uapi/rdma/rdma_user_rxe.h
+++ b/original/uapi/rdma/rdma_user_rxe.h
@@ -39,11 +39,6 @@
#include <linux/in.h>
#include <linux/in6.h>
-enum {
- RXE_NETWORK_TYPE_IPV4 = 1,
- RXE_NETWORK_TYPE_IPV6 = 2,
-};
-
union rxe_gid {
__u8 raw[16];
struct {
@@ -62,7 +57,6 @@ struct rxe_global_route {
struct rxe_av {
__u8 port_num;
- /* From RXE_NETWORK_TYPE_* */
__u8 network_type;
__u8 dmac[6];
struct rxe_global_route grh;
@@ -105,8 +99,8 @@ struct rxe_send_wr {
struct ib_mr *mr;
__aligned_u64 reserved;
};
- __u32 key;
- __u32 access;
+ __u32 key;
+ __u32 access;
} reg;
} wr;
};
@@ -118,7 +112,7 @@ struct rxe_sge {
};
struct mminfo {
- __aligned_u64 offset;
+ __aligned_u64 offset;
__u32 size;
__u32 pad;
};
@@ -181,25 +175,4 @@ struct rxe_modify_srq_cmd {
__aligned_u64 mmap_info_addr;
};
-/* This data structure is stored at the base of work and
- * completion queues shared between user space and kernel space.
- * It contains the producer and consumer indices. Is also
- * contains a copy of the queue size parameters for user space
- * to use but the kernel must use the parameters in the
- * rxe_queue struct. For performance reasons arrange to have
- * producer and consumer indices in separate cache lines
- * the kernel should always mask the indices to avoid accessing
- * memory outside of the data area
- */
-struct rxe_queue_buf {
- __u32 log2_elem_size;
- __u32 index_mask;
- __u32 pad_1[30];
- __u32 producer_index;
- __u32 pad_2[31];
- __u32 consumer_index;
- __u32 pad_3[31];
- __u8 data[];
-};
-
#endif /* RDMA_USER_RXE_H */
diff --git a/original/uapi/rdma/vmw_pvrdma-abi.h b/original/uapi/rdma/vmw_pvrdma-abi.h
index 901a4fd..f8b638c 100644
--- a/original/uapi/rdma/vmw_pvrdma-abi.h
+++ b/original/uapi/rdma/vmw_pvrdma-abi.h
@@ -133,13 +133,6 @@ enum pvrdma_wc_flags {
PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE,
};
-enum pvrdma_network_type {
- PVRDMA_NETWORK_IB,
- PVRDMA_NETWORK_ROCE_V1 = PVRDMA_NETWORK_IB,
- PVRDMA_NETWORK_IPV4,
- PVRDMA_NETWORK_IPV6
-};
-
struct pvrdma_alloc_ucontext_resp {
__u32 qp_tab_size;
__u32 reserved;
diff --git a/original/uapi/scsi/fc/fc_els.h b/original/uapi/scsi/fc/fc_els.h
index 91d4be9..76f627f 100644
--- a/original/uapi/scsi/fc/fc_els.h
+++ b/original/uapi/scsi/fc/fc_els.h
@@ -9,7 +9,6 @@
#define _FC_ELS_H_
#include <linux/types.h>
-#include <asm/byteorder.h>
/*
* Fibre Channel Switch - Enhanced Link Services definitions.
@@ -41,8 +40,6 @@ enum fc_els_cmd {
ELS_REC = 0x13, /* read exchange concise */
ELS_SRR = 0x14, /* sequence retransmission request */
ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */
- ELS_RDP = 0x18, /* Read Diagnostic Parameters */
- ELS_RDF = 0x19, /* Register Diagnostic Functions */
ELS_PRLI = 0x20, /* process login */
ELS_PRLO = 0x21, /* process logout */
ELS_SCN = 0x22, /* state change notification */
@@ -111,8 +108,6 @@ enum fc_els_cmd {
[ELS_REC] = "REC", \
[ELS_SRR] = "SRR", \
[ELS_FPIN] = "FPIN", \
- [ELS_RDP] = "RDP", \
- [ELS_RDF] = "RDF", \
[ELS_PRLI] = "PRLI", \
[ELS_PRLO] = "PRLO", \
[ELS_SCN] = "SCN", \
@@ -213,99 +208,6 @@ enum fc_els_rjt_explan {
};
/*
- * Link Service TLV Descriptor Tag Values
- */
-enum fc_ls_tlv_dtag {
- ELS_DTAG_LS_REQ_INFO = 0x00000001,
- /* Link Service Request Information Descriptor */
- ELS_DTAG_LNK_INTEGRITY = 0x00020001,
- /* Link Integrity Notification Descriptor */
- ELS_DTAG_DELIVERY = 0x00020002,
- /* Delivery Notification Descriptor */
- ELS_DTAG_PEER_CONGEST = 0x00020003,
- /* Peer Congestion Notification Descriptor */
- ELS_DTAG_CONGESTION = 0x00020004,
- /* Congestion Notification Descriptor */
- ELS_DTAG_FPIN_REGISTER = 0x00030001,
- /* FPIN Registration Descriptor */
-};
-
-/*
- * Initializer useful for decoding table.
- * Please keep this in sync with the above definitions.
- */
-#define FC_LS_TLV_DTAG_INIT { \
- { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, \
- { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, \
- { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, \
- { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, \
- { ELS_DTAG_CONGESTION, "Congestion Notification" }, \
- { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
-}
-
-
-/*
- * Generic Link Service TLV Descriptor format
- *
- * This structure, as it defines no payload, will also be referred to
- * as the "tlv header" - which contains the tag and len fields.
- */
-struct fc_tlv_desc {
- __be32 desc_tag; /* Notification Descriptor Tag */
- __be32 desc_len; /* Length of Descriptor (in bytes).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- __u8 desc_value[0]; /* Descriptor Value */
-};
-
-/* Descriptor tag and len fields are considered the mandatory header
- * for a descriptor
- */
-#define FC_TLV_DESC_HDR_SZ sizeof(struct fc_tlv_desc)
-
-/*
- * Macro, used when initializing payloads, to return the descriptor length.
- * Length is size of descriptor minus the tag and len fields.
- */
-#define FC_TLV_DESC_LENGTH_FROM_SZ(desc) \
- (sizeof(desc) - FC_TLV_DESC_HDR_SZ)
-
-/* Macro, used on received payloads, to return the descriptor length */
-#define FC_TLV_DESC_SZ_FROM_LENGTH(tlv) \
- (__be32_to_cpu((tlv)->desc_len) + FC_TLV_DESC_HDR_SZ)
-
-/*
- * This helper is used to walk descriptors in a descriptor list.
- * Given the address of the current descriptor, which minimally contains a
- * tag and len field, calculate the address of the next descriptor based
- * on the len field.
- */
-static inline void *fc_tlv_next_desc(void *desc)
-{
- struct fc_tlv_desc *tlv = desc;
-
- return (desc + FC_TLV_DESC_SZ_FROM_LENGTH(tlv));
-}
-
-
-/*
- * Link Service Request Information Descriptor
- */
-struct fc_els_lsri_desc {
- __be32 desc_tag; /* descriptor tag (0x0000 0001) */
- __be32 desc_len; /* Length of Descriptor (in bytes) (4).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- struct {
- __u8 cmd; /* ELS cmd byte */
- __u8 bytes[3]; /* bytes 1..3 */
- } rqst_w0; /* Request word 0 */
-};
-
-
-/*
* Common service parameters (N ports).
*/
struct fc_els_csp {
@@ -916,174 +818,25 @@ enum fc_els_clid_ic {
ELS_CLID_IC_LIP = 8, /* receiving LIP */
};
-/*
- * Link Integrity event types
- */
-enum fc_fpin_li_event_types {
- FPIN_LI_UNKNOWN = 0x0,
- FPIN_LI_LINK_FAILURE = 0x1,
- FPIN_LI_LOSS_OF_SYNC = 0x2,
- FPIN_LI_LOSS_OF_SIG = 0x3,
- FPIN_LI_PRIM_SEQ_ERR = 0x4,
- FPIN_LI_INVALID_TX_WD = 0x5,
- FPIN_LI_INVALID_CRC = 0x6,
- FPIN_LI_DEVICE_SPEC = 0xF,
-};
-
-/*
- * Initializer useful for decoding table.
- * Please keep this in sync with the above definitions.
- */
-#define FC_FPIN_LI_EVT_TYPES_INIT { \
- { FPIN_LI_UNKNOWN, "Unknown" }, \
- { FPIN_LI_LINK_FAILURE, "Link Failure" }, \
- { FPIN_LI_LOSS_OF_SYNC, "Loss of Synchronization" }, \
- { FPIN_LI_LOSS_OF_SIG, "Loss of Signal" }, \
- { FPIN_LI_PRIM_SEQ_ERR, "Primitive Sequence Protocol Error" }, \
- { FPIN_LI_INVALID_TX_WD, "Invalid Transmission Word" }, \
- { FPIN_LI_INVALID_CRC, "Invalid CRC" }, \
- { FPIN_LI_DEVICE_SPEC, "Device Specific" }, \
-}
-
-/*
- * Delivery event types
- */
-enum fc_fpin_deli_event_types {
- FPIN_DELI_UNKNOWN = 0x0,
- FPIN_DELI_TIMEOUT = 0x1,
- FPIN_DELI_UNABLE_TO_ROUTE = 0x2,
- FPIN_DELI_DEVICE_SPEC = 0xF,
-};
-
-/*
- * Initializer useful for decoding table.
- * Please keep this in sync with the above definitions.
- */
-#define FC_FPIN_DELI_EVT_TYPES_INIT { \
- { FPIN_DELI_UNKNOWN, "Unknown" }, \
- { FPIN_DELI_TIMEOUT, "Timeout" }, \
- { FPIN_DELI_UNABLE_TO_ROUTE, "Unable to Route" }, \
- { FPIN_DELI_DEVICE_SPEC, "Device Specific" }, \
-}
-
-/*
- * Congestion event types
- */
-enum fc_fpin_congn_event_types {
- FPIN_CONGN_CLEAR = 0x0,
- FPIN_CONGN_LOST_CREDIT = 0x1,
- FPIN_CONGN_CREDIT_STALL = 0x2,
- FPIN_CONGN_OVERSUBSCRIPTION = 0x3,
- FPIN_CONGN_DEVICE_SPEC = 0xF,
-};
-
-/*
- * Initializer useful for decoding table.
- * Please keep this in sync with the above definitions.
- */
-#define FC_FPIN_CONGN_EVT_TYPES_INIT { \
- { FPIN_CONGN_CLEAR, "Clear" }, \
- { FPIN_CONGN_LOST_CREDIT, "Lost Credit" }, \
- { FPIN_CONGN_CREDIT_STALL, "Credit Stall" }, \
- { FPIN_CONGN_OVERSUBSCRIPTION, "Oversubscription" }, \
- { FPIN_CONGN_DEVICE_SPEC, "Device Specific" }, \
-}
-
-enum fc_fpin_congn_severity_types {
- FPIN_CONGN_SEVERITY_WARNING = 0xF1,
- FPIN_CONGN_SEVERITY_ERROR = 0xF7,
-};
-
-/*
- * Link Integrity Notification Descriptor
- */
-struct fc_fn_li_desc {
- __be32 desc_tag; /* Descriptor Tag (0x00020001) */
- __be32 desc_len; /* Length of Descriptor (in bytes).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- __be64 detecting_wwpn; /* Port Name that detected event */
- __be64 attached_wwpn; /* Port Name of device attached to
- * detecting Port Name
- */
- __be16 event_type; /* see enum fc_fpin_li_event_types */
- __be16 event_modifier; /* Implementation specific value
- * describing the event type
- */
- __be32 event_threshold;/* duration in ms of the link
- * integrity detection cycle
- */
- __be32 event_count; /* minimum number of event
- * occurrences during the event
- * threshold to caause the LI event
- */
- __be32 pname_count; /* number of portname_list elements */
- __be64 pname_list[0]; /* list of N_Port_Names accessible
- * through the attached port
- */
-};
/*
- * Delivery Notification Descriptor
+ * Fabric Notification Descriptor Tag values
*/
-struct fc_fn_deli_desc {
- __be32 desc_tag; /* Descriptor Tag (0x00020002) */
- __be32 desc_len; /* Length of Descriptor (in bytes).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- __be64 detecting_wwpn; /* Port Name that detected event */
- __be64 attached_wwpn; /* Port Name of device attached to
- * detecting Port Name
- */
- __be32 deli_reason_code;/* see enum fc_fpin_deli_event_types */
+enum fc_fn_dtag {
+ ELS_FN_DTAG_LNK_INTEGRITY = 0x00020001, /* Link Integrity */
+ ELS_FN_DTAG_PEER_CONGEST = 0x00020003, /* Peer Congestion */
+ ELS_FN_DTAG_CONGESTION = 0x00020004, /* Congestion */
};
/*
- * Peer Congestion Notification Descriptor
+ * Fabric Notification Descriptor
*/
-struct fc_fn_peer_congn_desc {
- __be32 desc_tag; /* Descriptor Tag (0x00020003) */
- __be32 desc_len; /* Length of Descriptor (in bytes).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- __be64 detecting_wwpn; /* Port Name that detected event */
- __be64 attached_wwpn; /* Port Name of device attached to
- * detecting Port Name
- */
- __be16 event_type; /* see enum fc_fpin_congn_event_types */
- __be16 event_modifier; /* Implementation specific value
- * describing the event type
- */
- __be32 event_period; /* duration (ms) of the detected
- * congestion event
- */
- __be32 pname_count; /* number of portname_list elements */
- __be64 pname_list[0]; /* list of N_Port_Names accessible
- * through the attached port
- */
-};
-
-/*
- * Congestion Notification Descriptor
- */
-struct fc_fn_congn_desc {
- __be32 desc_tag; /* Descriptor Tag (0x00020004) */
- __be32 desc_len; /* Length of Descriptor (in bytes).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- __be16 event_type; /* see enum fc_fpin_congn_event_types */
- __be16 event_modifier; /* Implementation specific value
- * describing the event type
- */
- __be32 event_period; /* duration (ms) of the detected
- * congestion event
- */
- __u8 severity; /* command */
- __u8 resv[3]; /* reserved - must be zero */
+struct fc_fn_desc {
+ __be32 fn_desc_tag; /* Notification Descriptor Tag */
+ __be32 fn_desc_value_len; /* Length of Descriptor Value field
+ * (in bytes)
+ */
+ __u8 fn_desc_value[0]; /* Descriptor Value */
};
/*
@@ -1092,56 +845,8 @@ struct fc_fn_congn_desc {
struct fc_els_fpin {
__u8 fpin_cmd; /* command (0x16) */
__u8 fpin_zero[3]; /* specified as zero - part of cmd */
- __be32 desc_len; /* Length of Descriptor List (in bytes).
- * Size of ELS excluding fpin_cmd,
- * fpin_zero and desc_len fields.
- */
- struct fc_tlv_desc fpin_desc[0]; /* Descriptor list */
-};
-
-/* Diagnostic Function Descriptor - FPIN Registration */
-struct fc_df_desc_fpin_reg {
- __be32 desc_tag; /* FPIN Registration (0x00030001) */
- __be32 desc_len; /* Length of Descriptor (in bytes).
- * Size of descriptor excluding
- * desc_tag and desc_len fields.
- */
- __be32 count; /* Number of desc_tags elements */
- __be32 desc_tags[0]; /* Array of Descriptor Tags.
- * Each tag indicates a function
- * supported by the N_Port (request)
- * or by the N_Port and Fabric
- * Controller (reply; may be a subset
- * of the request).
- * See ELS_FN_DTAG_xxx for tag values.
- */
+ __be32 fpin_desc_cnt; /* count of descriptors */
+ struct fc_fn_desc fpin_desc[0]; /* Descriptor list */
};
-/*
- * ELS_RDF - Register Diagnostic Functions
- */
-struct fc_els_rdf {
- __u8 fpin_cmd; /* command (0x19) */
- __u8 fpin_zero[3]; /* specified as zero - part of cmd */
- __be32 desc_len; /* Length of Descriptor List (in bytes).
- * Size of ELS excluding fpin_cmd,
- * fpin_zero and desc_len fields.
- */
- struct fc_tlv_desc desc[0]; /* Descriptor list */
-};
-
-/*
- * ELS RDF LS_ACC Response.
- */
-struct fc_els_rdf_resp {
- struct fc_els_ls_acc acc_hdr;
- __be32 desc_list_len; /* Length of response (in
- * bytes). Excludes acc_hdr
- * and desc_list_len fields.
- */
- struct fc_els_lsri_desc lsri;
- struct fc_tlv_desc desc[0]; /* Supported Descriptor list */
-};
-
-
#endif /* _FC_ELS_H_ */
diff --git a/original/uapi/scsi/scsi_bsg_ufs.h b/original/uapi/scsi/scsi_bsg_ufs.h
index d55f217..9988db6 100644
--- a/original/uapi/scsi/scsi_bsg_ufs.h
+++ b/original/uapi/scsi/scsi_bsg_ufs.h
@@ -68,13 +68,14 @@ struct utp_upiu_cmd {
* @header:UPIU header structure DW-0 to DW-2
* @sc: fields structure for scsi command DW-3 to DW-7
* @qr: fields structure for query request DW-3 to DW-7
- * @uc: use utp_upiu_query to host the 4 dwords of uic command
*/
struct utp_upiu_req {
struct utp_upiu_header header;
union {
struct utp_upiu_cmd sc;
struct utp_upiu_query qr;
+ struct utp_upiu_query tr;
+ /* use utp_upiu_query to host the 4 dwords of uic command */
struct utp_upiu_query uc;
};
};
diff --git a/original/uapi/sound/asoc.h b/original/uapi/sound/asoc.h
index da61398..a74ca23 100644
--- a/original/uapi/sound/asoc.h
+++ b/original/uapi/sound/asoc.h
@@ -170,22 +170,16 @@
#define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3)
/* DAI topology BCLK parameter
- * For the backwards capability, by default codec is bclk provider
+ * For the backwards capability, by default codec is bclk master
*/
-#define SND_SOC_TPLG_BCLK_CP 0 /* codec is bclk provider */
-#define SND_SOC_TPLG_BCLK_CC 1 /* codec is bclk consumer */
-/* keep previous definitions for compatibility */
-#define SND_SOC_TPLG_BCLK_CM SND_SOC_TPLG_BCLK_CP
-#define SND_SOC_TPLG_BCLK_CS SND_SOC_TPLG_BCLK_CC
+#define SND_SOC_TPLG_BCLK_CM 0 /* codec is bclk master */
+#define SND_SOC_TPLG_BCLK_CS 1 /* codec is bclk slave */
/* DAI topology FSYNC parameter
- * For the backwards capability, by default codec is fsync provider
+ * For the backwards capability, by default codec is fsync master
*/
-#define SND_SOC_TPLG_FSYNC_CP 0 /* codec is fsync provider */
-#define SND_SOC_TPLG_FSYNC_CC 1 /* codec is fsync consumer */
-/* keep previous definitions for compatibility */
-#define SND_SOC_TPLG_FSYNC_CM SND_SOC_TPLG_FSYNC_CP
-#define SND_SOC_TPLG_FSYNC_CS SND_SOC_TPLG_FSYNC_CC
+#define SND_SOC_TPLG_FSYNC_CM 0 /* codec is fsync master */
+#define SND_SOC_TPLG_FSYNC_CS 1 /* codec is fsync slave */
/*
* Block Header.
@@ -342,8 +336,8 @@ struct snd_soc_tplg_hw_config {
__u8 clock_gated; /* SND_SOC_TPLG_DAI_CLK_GATE_ value */
__u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */
__u8 invert_fsync; /* 1 for inverted frame clock, 0 for normal */
- __u8 bclk_provider; /* SND_SOC_TPLG_BCLK_ value */
- __u8 fsync_provider; /* SND_SOC_TPLG_FSYNC_ value */
+ __u8 bclk_master; /* SND_SOC_TPLG_BCLK_ value */
+ __u8 fsync_master; /* SND_SOC_TPLG_FSYNC_ value */
__u8 mclk_direction; /* SND_SOC_TPLG_MCLK_ value */
__le16 reserved; /* for 32bit alignment */
__le32 mclk_rate; /* MCLK or SYSCLK freqency in Hz */
diff --git a/original/uapi/sound/asound.h b/original/uapi/sound/asound.h
index 535a722..df1153c 100644
--- a/original/uapi/sound/asound.h
+++ b/original/uapi/sound/asound.h
@@ -26,9 +26,7 @@
#if defined(__KERNEL__) || defined(__linux__)
#include <linux/types.h>
-#include <asm/byteorder.h>
#else
-#include <endian.h>
#include <sys/ioctl.h>
#endif
@@ -156,7 +154,7 @@ struct snd_hwdep_dsp_image {
* *
*****************************************************************************/
-#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 15)
+#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 14)
typedef unsigned long snd_pcm_uframes_t;
typedef signed long snd_pcm_sframes_t;
@@ -303,9 +301,7 @@ typedef int __bitwise snd_pcm_subformat_t;
#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
-#if (__BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)) || defined __KERNEL__
-#define __SND_STRUCT_TIME64
-#endif
+
typedef int __bitwise snd_pcm_state_t;
#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
@@ -321,17 +317,8 @@ typedef int __bitwise snd_pcm_state_t;
enum {
SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000,
- SNDRV_PCM_MMAP_OFFSET_STATUS_OLD = 0x80000000,
- SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD = 0x81000000,
- SNDRV_PCM_MMAP_OFFSET_STATUS_NEW = 0x82000000,
- SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW = 0x83000000,
-#ifdef __SND_STRUCT_TIME64
- SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_NEW,
- SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW,
-#else
- SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_OLD,
- SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD,
-#endif
+ SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000,
+ SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000,
};
union snd_pcm_sync_id {
@@ -469,13 +456,8 @@ enum {
SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED
};
-#ifndef __KERNEL__
-/* explicit padding avoids incompatibility between i386 and x86-64 */
-typedef struct { unsigned char pad[sizeof(time_t) - sizeof(int)]; } __time_pad;
-
struct snd_pcm_status {
snd_pcm_state_t state; /* stream state */
- __time_pad pad1; /* align to timespec */
struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
struct timespec tstamp; /* reference timestamp */
snd_pcm_uframes_t appl_ptr; /* appl ptr */
@@ -491,48 +473,17 @@ struct snd_pcm_status {
__u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */
unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
};
-#endif
-
-/*
- * For mmap operations, we need the 64-bit layout, both for compat mode,
- * and for y2038 compatibility. For 64-bit applications, the two definitions
- * are identical, so we keep the traditional version.
- */
-#ifdef __SND_STRUCT_TIME64
-#define __snd_pcm_mmap_status64 snd_pcm_mmap_status
-#define __snd_pcm_mmap_control64 snd_pcm_mmap_control
-#define __snd_pcm_sync_ptr64 snd_pcm_sync_ptr
-#ifdef __KERNEL__
-#define __snd_timespec64 __kernel_timespec
-#else
-#define __snd_timespec64 timespec
-#endif
-struct __snd_timespec {
- __s32 tv_sec;
- __s32 tv_nsec;
-};
-#else
-#define __snd_pcm_mmap_status snd_pcm_mmap_status
-#define __snd_pcm_mmap_control snd_pcm_mmap_control
-#define __snd_pcm_sync_ptr snd_pcm_sync_ptr
-#define __snd_timespec timespec
-struct __snd_timespec64 {
- __s64 tv_sec;
- __s64 tv_nsec;
-};
-#endif
-
-struct __snd_pcm_mmap_status {
+struct snd_pcm_mmap_status {
snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
int pad1; /* Needed for 64 bit alignment */
snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
- struct __snd_timespec tstamp; /* Timestamp */
+ struct timespec tstamp; /* Timestamp */
snd_pcm_state_t suspended_state; /* RO: suspended stream state */
- struct __snd_timespec audio_tstamp; /* from sample counter or wall clock */
+ struct timespec audio_tstamp; /* from sample counter or wall clock */
};
-struct __snd_pcm_mmap_control {
+struct snd_pcm_mmap_control {
snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
};
@@ -541,59 +492,14 @@ struct __snd_pcm_mmap_control {
#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */
#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */
-struct __snd_pcm_sync_ptr {
+struct snd_pcm_sync_ptr {
unsigned int flags;
union {
- struct __snd_pcm_mmap_status status;
- unsigned char reserved[64];
- } s;
- union {
- struct __snd_pcm_mmap_control control;
- unsigned char reserved[64];
- } c;
-};
-
-#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
-typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
-typedef char __pad_after_uframe[0];
-#endif
-
-#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
-typedef char __pad_before_uframe[0];
-typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
-#endif
-
-struct __snd_pcm_mmap_status64 {
- snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
- __u32 pad1; /* Needed for 64 bit alignment */
- __pad_before_uframe __pad1;
- snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
- __pad_after_uframe __pad2;
- struct __snd_timespec64 tstamp; /* Timestamp */
- snd_pcm_state_t suspended_state;/* RO: suspended stream state */
- __u32 pad3; /* Needed for 64 bit alignment */
- struct __snd_timespec64 audio_tstamp; /* sample counter or wall clock */
-};
-
-struct __snd_pcm_mmap_control64 {
- __pad_before_uframe __pad1;
- snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
- __pad_before_uframe __pad2;
-
- __pad_before_uframe __pad3;
- snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
- __pad_after_uframe __pad4;
-};
-
-struct __snd_pcm_sync_ptr64 {
- __u32 flags;
- __u32 pad1;
- union {
- struct __snd_pcm_mmap_status64 status;
+ struct snd_pcm_mmap_status status;
unsigned char reserved[64];
} s;
union {
- struct __snd_pcm_mmap_control64 control;
+ struct snd_pcm_mmap_control control;
unsigned char reserved[64];
} c;
};
@@ -678,8 +584,6 @@ enum {
#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status)
#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)
#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)
-#define __SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct __snd_pcm_sync_ptr)
-#define __SNDRV_PCM_IOCTL_SYNC_PTR64 _IOWR('A', 0x23, struct __snd_pcm_sync_ptr64)
#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)
#define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status)
#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)
@@ -710,7 +614,7 @@ enum {
* Raw MIDI section - /dev/snd/midi??
*/
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0)
enum {
SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
@@ -744,16 +648,13 @@ struct snd_rawmidi_params {
unsigned char reserved[16]; /* reserved for future use */
};
-#ifndef __KERNEL__
struct snd_rawmidi_status {
int stream;
- __time_pad pad1;
struct timespec tstamp; /* Timestamp */
size_t avail; /* available bytes */
size_t xruns; /* count of overruns since last status (in bytes) */
unsigned char reserved[16]; /* reserved for future use */
};
-#endif
#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
@@ -766,7 +667,7 @@ struct snd_rawmidi_status {
* Timer section - /dev/snd/timer
*/
-#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
+#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6)
enum {
SNDRV_TIMER_CLASS_NONE = -1,
@@ -860,7 +761,6 @@ struct snd_timer_params {
unsigned char reserved[60]; /* reserved */
};
-#ifndef __KERNEL__
struct snd_timer_status {
struct timespec tstamp; /* Timestamp - last update */
unsigned int resolution; /* current period resolution in ns */
@@ -869,11 +769,10 @@ struct snd_timer_status {
unsigned int queue; /* used queue size */
unsigned char reserved[64]; /* reserved */
};
-#endif
#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int)
#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id)
-#define SNDRV_TIMER_IOCTL_TREAD_OLD _IOW('T', 0x02, int)
+#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int)
#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo)
#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams)
#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus)
@@ -886,15 +785,6 @@ struct snd_timer_status {
#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)
#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2)
#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3)
-#define SNDRV_TIMER_IOCTL_TREAD64 _IOW('T', 0xa4, int)
-
-#if __BITS_PER_LONG == 64
-#define SNDRV_TIMER_IOCTL_TREAD SNDRV_TIMER_IOCTL_TREAD_OLD
-#else
-#define SNDRV_TIMER_IOCTL_TREAD ((sizeof(__kernel_long_t) >= sizeof(time_t)) ? \
- SNDRV_TIMER_IOCTL_TREAD_OLD : \
- SNDRV_TIMER_IOCTL_TREAD64)
-#endif
struct snd_timer_read {
unsigned int resolution;
@@ -920,15 +810,11 @@ enum {
SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,
};
-#ifndef __KERNEL__
struct snd_timer_tread {
int event;
- __time_pad pad1;
struct timespec tstamp;
unsigned int val;
- __time_pad pad2;
};
-#endif
/****************************************************************************
* *
@@ -936,7 +822,7 @@ struct snd_timer_tread {
* *
****************************************************************************/
-#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 8)
+#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
struct snd_ctl_card_info {
int card; /* card number */
@@ -974,7 +860,7 @@ typedef int __bitwise snd_ctl_elem_iface_t;
#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
-// (1 << 3) is unused.
+#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */
#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */
#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */
#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
@@ -1040,7 +926,11 @@ struct snd_ctl_elem_info {
} enumerated;
unsigned char reserved[128];
} value;
- unsigned char reserved[64];
+ union {
+ unsigned short d[4]; /* dimensions */
+ unsigned short *d_ptr; /* indirect - obsoleted */
+ } dimen;
+ unsigned char reserved[64-4*sizeof(unsigned short)];
};
struct snd_ctl_elem_value {
@@ -1065,7 +955,8 @@ struct snd_ctl_elem_value {
} bytes;
struct snd_aes_iec958 iec958;
} value; /* RO */
- unsigned char reserved[128];
+ struct timespec tstamp;
+ unsigned char reserved[128-sizeof(struct timespec)];
};
struct snd_ctl_tlv {
diff --git a/original/uapi/sound/compress_offload.h b/original/uapi/sound/compress_offload.h
index 9555f31..56d9567 100644
--- a/original/uapi/sound/compress_offload.h
+++ b/original/uapi/sound/compress_offload.h
@@ -31,7 +31,7 @@
#include <sound/compress_params.h>
-#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 2, 0)
+#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 2)
/**
* struct snd_compressed_buffer - compressed buffer
* @fragment_size: size of buffer fragment in bytes
@@ -144,7 +144,7 @@ struct snd_compr_metadata {
__u32 value[8];
} __attribute__((packed, aligned(4)));
-/*
+/**
* compress path ioctl definitions
* SNDRV_COMPRESS_GET_CAPS: Query capability of DSP
* SNDRV_COMPRESS_GET_CODEC_CAPS: Query capability of a codec
diff --git a/original/uapi/sound/compress_params.h b/original/uapi/sound/compress_params.h
index 79b1438..9c96fb0 100644
--- a/original/uapi/sound/compress_params.h
+++ b/original/uapi/sound/compress_params.h
@@ -75,9 +75,7 @@
#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C)
#define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D)
#define SND_AUDIOCODEC_BESPOKE ((__u32) 0x0000000E)
-#define SND_AUDIOCODEC_ALAC ((__u32) 0x0000000F)
-#define SND_AUDIOCODEC_APE ((__u32) 0x00000010)
-#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_APE
+#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_BESPOKE
/*
* Profile and modes are listed with bit masks. This allows for a
@@ -144,9 +142,6 @@
#define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002)
#define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004)
#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008)
-#define SND_AUDIOPROFILE_WMA9_PRO ((__u32) 0x00000010)
-#define SND_AUDIOPROFILE_WMA9_LOSSLESS ((__u32) 0x00000020)
-#define SND_AUDIOPROFILE_WMA10_LOSSLESS ((__u32) 0x00000040)
#define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001)
#define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002)
@@ -331,33 +326,6 @@ struct snd_dec_flac {
__u16 reserved;
} __attribute__((packed, aligned(4)));
-struct snd_dec_wma {
- __u32 encoder_option;
- __u32 adv_encoder_option;
- __u32 adv_encoder_option2;
- __u32 reserved;
-} __attribute__((packed, aligned(4)));
-
-struct snd_dec_alac {
- __u32 frame_length;
- __u8 compatible_version;
- __u8 pb;
- __u8 mb;
- __u8 kb;
- __u32 max_run;
- __u32 max_frame_bytes;
-} __attribute__((packed, aligned(4)));
-
-struct snd_dec_ape {
- __u16 compatible_version;
- __u16 compression_level;
- __u32 format_flags;
- __u32 blocks_per_frame;
- __u32 final_frame_blocks;
- __u32 total_frames;
- __u32 seek_table_present;
-} __attribute__((packed, aligned(4)));
-
union snd_codec_options {
struct snd_enc_wma wma;
struct snd_enc_vorbis vorbis;
@@ -365,9 +333,6 @@ union snd_codec_options {
struct snd_enc_flac flac;
struct snd_enc_generic generic;
struct snd_dec_flac flac_d;
- struct snd_dec_wma wma_d;
- struct snd_dec_alac alac_d;
- struct snd_dec_ape ape_d;
} __attribute__((packed, aligned(4)));
/** struct snd_codec_desc - description of codec capabilities
diff --git a/original/uapi/sound/emu10k1.h b/original/uapi/sound/emu10k1.h
index 88609cc..042c5a6 100644
--- a/original/uapi/sound/emu10k1.h
+++ b/original/uapi/sound/emu10k1.h
@@ -23,9 +23,8 @@
#ifndef _UAPI__SOUND_EMU10K1_H
#define _UAPI__SOUND_EMU10K1_H
-#ifdef __linux__
#include <linux/types.h>
-#endif
+#include <sound/asound.h>
/*
* ---- FX8010 ----
@@ -283,22 +282,8 @@ struct snd_emu10k1_fx8010_info {
#define EMU10K1_GPR_TRANSLATION_TREBLE 3
#define EMU10K1_GPR_TRANSLATION_ONOFF 4
-enum emu10k1_ctl_elem_iface {
- EMU10K1_CTL_ELEM_IFACE_MIXER = 2, /* virtual mixer device */
- EMU10K1_CTL_ELEM_IFACE_PCM = 3, /* PCM device */
-};
-
-struct emu10k1_ctl_elem_id {
- unsigned int pad; /* don't use */
- int iface; /* interface identifier */
- unsigned int device; /* device/client number */
- unsigned int subdevice; /* subdevice (substream) number */
- unsigned char name[44]; /* ASCII name of item */
- unsigned int index; /* index of item */
-};
-
struct snd_emu10k1_fx8010_control_gpr {
- struct emu10k1_ctl_elem_id id; /* full control ID definition */
+ struct snd_ctl_elem_id id; /* full control ID definition */
unsigned int vcount; /* visible count */
unsigned int count; /* count of GPR (1..16) */
unsigned short gpr[32]; /* GPR number(s) */
@@ -311,7 +296,7 @@ struct snd_emu10k1_fx8010_control_gpr {
/* old ABI without TLV support */
struct snd_emu10k1_fx8010_control_old_gpr {
- struct emu10k1_ctl_elem_id id;
+ struct snd_ctl_elem_id id;
unsigned int vcount;
unsigned int count;
unsigned short gpr[32];
@@ -325,24 +310,24 @@ struct snd_emu10k1_fx8010_code {
char name[128];
__EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
- __u32 *gpr_map; /* initializers */
+ __u32 __user *gpr_map; /* initializers */
unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
- struct snd_emu10k1_fx8010_control_gpr *gpr_add_controls; /* GPR controls to add/replace */
+ struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */
unsigned int gpr_del_control_count; /* count of GPR controls to remove */
- struct emu10k1_ctl_elem_id *gpr_del_controls; /* IDs of GPR controls to remove */
+ struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */
unsigned int gpr_list_control_count; /* count of GPR controls to list */
unsigned int gpr_list_control_total; /* total count of GPR controls */
- struct snd_emu10k1_fx8010_control_gpr *gpr_list_controls; /* listed GPR controls */
+ struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
__EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
- __u32 *tram_data_map; /* data initializers */
- __u32 *tram_addr_map; /* map initializers */
+ __u32 __user *tram_data_map; /* data initializers */
+ __u32 __user *tram_addr_map; /* map initializers */
__EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
- __u32 *code; /* one instruction - 64 bits */
+ __u32 __user *code; /* one instruction - 64 bits */
};
struct snd_emu10k1_fx8010_tram {
@@ -386,4 +371,11 @@ struct snd_emu10k1_fx8010_pcm_rec {
#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
+/* typedefs for compatibility to user-space */
+typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
+typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
+typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
+typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
+typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
+
#endif /* _UAPI__SOUND_EMU10K1_H */
diff --git a/original/uapi/sound/hdsp.h b/original/uapi/sound/hdsp.h
index b8df62b..5dc0c3d 100644
--- a/original/uapi/sound/hdsp.h
+++ b/original/uapi/sound/hdsp.h
@@ -20,9 +20,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#ifdef __linux__
#include <linux/types.h>
-#endif
#define HDSP_MATRIX_MIXER_SIZE 2048
@@ -76,7 +74,7 @@ struct hdsp_config_info {
#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info)
struct hdsp_firmware {
- void *firmware_data; /* 24413 x 4 bytes */
+ void __user *firmware_data; /* 24413 x 4 bytes */
};
#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware)
@@ -101,4 +99,13 @@ struct hdsp_9632_aeb {
#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
+/* typedefs for compatibility to user-space */
+typedef enum HDSP_IO_Type HDSP_IO_Type;
+typedef struct hdsp_peak_rms hdsp_peak_rms_t;
+typedef struct hdsp_config_info hdsp_config_info_t;
+typedef struct hdsp_firmware hdsp_firmware_t;
+typedef struct hdsp_version hdsp_version_t;
+typedef struct hdsp_mixer hdsp_mixer_t;
+typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
+
#endif /* __SOUND_HDSP_H */
diff --git a/original/uapi/sound/hdspm.h b/original/uapi/sound/hdspm.h
index 14af3d0..a38f3f7 100644
--- a/original/uapi/sound/hdspm.h
+++ b/original/uapi/sound/hdspm.h
@@ -21,9 +21,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#ifdef __linux__
#include <linux/types.h>
-#endif
/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
#define HDSPM_MAX_CHANNELS 64
@@ -223,4 +221,12 @@ struct hdspm_mixer_ioctl {
/* use indirect access due to the limit of ioctl bit size */
#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
+/* typedefs for compatibility to user-space */
+typedef struct hdspm_peak_rms hdspm_peak_rms_t;
+typedef struct hdspm_config_info hdspm_config_info_t;
+typedef struct hdspm_version hdspm_version_t;
+typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
+typedef struct hdspm_mixer hdspm_mixer_t;
+
+
#endif
diff --git a/original/uapi/sound/skl-tplg-interface.h b/original/uapi/sound/skl-tplg-interface.h
index a93c0de..9eee32f 100644
--- a/original/uapi/sound/skl-tplg-interface.h
+++ b/original/uapi/sound/skl-tplg-interface.h
@@ -18,8 +18,6 @@
*/
#define SKL_CONTROL_TYPE_BYTE_TLV 0x100
#define SKL_CONTROL_TYPE_MIC_SELECT 0x102
-#define SKL_CONTROL_TYPE_MULTI_IO_SELECT 0x103
-#define SKL_CONTROL_TYPE_MULTI_IO_SELECT_DMIC 0x104
#define HDA_SST_CFG_MAX 900 /* size of copier cfg*/
#define MAX_IN_QUEUE 8
diff --git a/original/uapi/sound/sof/abi.h b/original/uapi/sound/sof/abi.h
index fe2cfae..ebfdc20 100644
--- a/original/uapi/sound/sof/abi.h
+++ b/original/uapi/sound/sof/abi.h
@@ -26,7 +26,7 @@
/* SOF ABI version major, minor and patch numbers */
#define SOF_ABI_MAJOR 3
-#define SOF_ABI_MINOR 18
+#define SOF_ABI_MINOR 11
#define SOF_ABI_PATCH 0
/* SOF ABI version number. Format within 32bit word is MMmmmppp */
diff --git a/original/uapi/sound/sof/tokens.h b/original/uapi/sound/sof/tokens.h
index a642bf3..76883e6 100644
--- a/original/uapi/sound/sof/tokens.h
+++ b/original/uapi/sound/sof/tokens.h
@@ -24,9 +24,6 @@
#define SOF_TPLG_KCTL_ENUM_ID 257
#define SOF_TPLG_KCTL_BYTES_ID 258
#define SOF_TPLG_KCTL_SWITCH_ID 259
-#define SOF_TPLG_KCTL_BYTES_VOLATILE_RO 260
-#define SOF_TPLG_KCTL_BYTES_VOLATILE_RW 261
-#define SOF_TPLG_KCTL_BYTES_WO_ID 262
/*
* Tokens - must match values in topology configurations
@@ -60,12 +57,6 @@
#define SOF_TKN_SRC_RATE_IN 300
#define SOF_TKN_SRC_RATE_OUT 301
-/* ASRC */
-#define SOF_TKN_ASRC_RATE_IN 320
-#define SOF_TKN_ASRC_RATE_OUT 321
-#define SOF_TKN_ASRC_ASYNCHRONOUS_MODE 322
-#define SOF_TKN_ASRC_OPERATION_MODE 323
-
/* PCM */
#define SOF_TKN_PCM_DMAC_CONFIG 353
@@ -76,8 +67,6 @@
/* Token retired with ABI 3.2, do not use for new capabilities
* #define SOF_TKN_COMP_PRELOAD_COUNT 403
*/
-#define SOF_TKN_COMP_CORE_ID 404
-#define SOF_TKN_COMP_UUID 405
/* SSP */
#define SOF_TKN_INTEL_SSP_CLKS_CONTROL 500
@@ -118,7 +107,8 @@
#define SOF_TKN_EFFECT_TYPE SOF_TKN_PROCESS_TYPE
/* SAI */
-#define SOF_TKN_IMX_SAI_MCLK_ID 1000
+#define SOF_TKN_IMX_SAI_FIRST_TOKEN 1000
+/* TODO: Add SAI tokens */
/* ESAI */
#define SOF_TKN_IMX_ESAI_MCLK_ID 1100
@@ -131,12 +121,4 @@
#define SOF_TKN_MUTE_LED_USE 1300
#define SOF_TKN_MUTE_LED_DIRECTION 1301
-/* ALH */
-#define SOF_TKN_INTEL_ALH_RATE 1400
-#define SOF_TKN_INTEL_ALH_CH 1401
-
-/* HDA */
-#define SOF_TKN_INTEL_HDA_RATE 1500
-#define SOF_TKN_INTEL_HDA_CH 1501
-
#endif
diff --git a/original/uapi/xen/gntdev.h b/original/uapi/xen/gntdev.h
index 9ac5515..fe4423e 100644
--- a/original/uapi/xen/gntdev.h
+++ b/original/uapi/xen/gntdev.h
@@ -66,7 +66,7 @@ struct ioctl_gntdev_map_grant_ref {
/*
* Removes the grant references from the mapping table of an instance of
- * gntdev. N.B. munmap() must be called on the relevant virtual address(es)
+ * of gntdev. N.B. munmap() must be called on the relevant virtual address(es)
* before this ioctl is called, or an error will result.
*/
#define IOCTL_GNTDEV_UNMAP_GRANT_REF \