PATH: //proc/thread-self/root/proc/self/root/proc/thread-self/root/usr/include/linux
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 a.out.h
↓
X
📄 acct.h
↓
X
📄 acrn.h
↓
X
📄 adb.h
↓
X
📄 adfs_fs.h
↓
X
📄 affs_hardblocks.h
↓
X
📄 agpgart.h
↓
X
📄 aio_abi.h
↓
X
📄 am437x-vpfe.h
↓
X
📁 android/
X
📄 apm_bios.h
↓
X
📄 arcfb.h
↓
X
📄 arm_sdei.h
↓
X
📄 aspeed-lpc-ctrl.h
↓
X
📄 aspeed-p2a-ctrl.h
↓
X
📄 atalk.h
↓
X
📄 atm.h
↓
X
📄 atm_eni.h
↓
X
📄 atm_he.h
↓
X
📄 atm_idt77105.h
↓
X
📄 atm_nicstar.h
↓
X
📄 atm_tcp.h
↓
X
📄 atm_zatm.h
↓
X
📄 atmapi.h
↓
X
📄 atmarp.h
↓
X
📄 atmbr2684.h
↓
X
📄 atmclip.h
↓
X
📄 atmdev.h
↓
X
📄 atmioc.h
↓
X
📄 atmlec.h
↓
X
📄 atmmpc.h
↓
X
📄 atmppp.h
↓
X
📄 atmsap.h
↓
X
📄 atmsvc.h
↓
X
📄 audit.h
↓
X
📄 auto_dev-ioctl.h
↓
X
📄 auto_fs.h
↓
X
📄 auto_fs4.h
↓
X
📄 auxvec.h
↓
X
📄 ax25.h
↓
X
📄 batadv_packet.h
↓
X
📄 batman_adv.h
↓
X
📄 baycom.h
↓
X
📄 bcm933xx_hcs.h
↓
X
📄 bfs_fs.h
↓
X
📄 binfmts.h
↓
X
📄 bits.h
↓
X
📄 blkpg.h
↓
X
📄 blktrace_api.h
↓
X
📄 blkzoned.h
↓
X
📄 bpf.h
↓
X
📄 bpf_common.h
↓
X
📄 bpf_perf_event.h
↓
X
📄 bpfilter.h
↓
X
📄 bpqether.h
↓
X
📄 bsg.h
↓
X
📄 bt-bmc.h
↓
X
📄 btf.h
↓
X
📄 btrfs.h
↓
X
📄 btrfs_tree.h
↓
X
📁 byteorder/
X
📄 cachefiles.h
↓
X
📁 caif/
X
📁 can/
X
📄 can.h
↓
X
📄 capability.h
↓
X
📄 capi.h
↓
X
📄 cciss_defs.h
↓
X
📄 cciss_ioctl.h
↓
X
📄 ccs.h
↓
X
📄 cdrom.h
↓
X
📄 cec-funcs.h
↓
X
📄 cec.h
↓
X
📄 cfm_bridge.h
↓
X
📄 cgroupstats.h
↓
X
📄 chio.h
↓
X
📁 cifs/
X
📄 close_range.h
↓
X
📄 cm4000_cs.h
↓
X
📄 cn_proc.h
↓
X
📄 coda.h
↓
X
📄 coff.h
↓
X
📄 connector.h
↓
X
📄 const.h
↓
X
📄 coresight-stm.h
↓
X
📄 cramfs_fs.h
↓
X
📄 cryptouser.h
↓
X
📄 cuda.h
↓
X
📄 cxl_mem.h
↓
X
📄 cycx_cfm.h
↓
X
📄 dcbnl.h
↓
X
📄 dccp.h
↓
X
📄 devlink.h
↓
X
📄 dlm.h
↓
X
📄 dlm_device.h
↓
X
📄 dlm_netlink.h
↓
X
📄 dlm_plock.h
↓
X
📄 dlmconstants.h
↓
X
📄 dm-ioctl.h
↓
X
📄 dm-log-userspace.h
↓
X
📄 dma-buf.h
↓
X
📄 dma-heap.h
↓
X
📄 dn.h
↓
X
📄 dns_resolver.h
↓
X
📄 dpll.h
↓
X
📄 dqblk_xfs.h
↓
X
📁 dvb/
X
📄 edd.h
↓
X
📄 efs_fs_sb.h
↓
X
📄 elf-em.h
↓
X
📄 elf-fdpic.h
↓
X
📄 elf.h
↓
X
📄 errno.h
↓
X
📄 errqueue.h
↓
X
📄 erspan.h
↓
X
📄 ethtool.h
↓
X
📄 ethtool_netlink.h
↓
X
📄 ethtool_netlink_generated.h
↓
X
📄 eventfd.h
↓
X
📄 eventpoll.h
↓
X
📄 f2fs.h
↓
X
📄 fadvise.h
↓
X
📄 falloc.h
↓
X
📄 fanotify.h
↓
X
📄 fb.h
↓
X
📄 fcntl.h
↓
X
📄 fd.h
↓
X
📄 fdreg.h
↓
X
📄 fib_rules.h
↓
X
📄 fiemap.h
↓
X
📄 filter.h
↓
X
📄 firewire-cdev.h
↓
X
📄 firewire-constants.h
↓
X
📄 fou.h
↓
X
📄 fpga-dfl.h
↓
X
📄 fs.h
↓
X
📄 fscrypt.h
↓
X
📄 fsi.h
↓
X
📄 fsl_hypervisor.h
↓
X
📄 fsl_mc.h
↓
X
📄 fsmap.h
↓
X
📄 fsverity.h
↓
X
📄 fuse.h
↓
X
📄 futex.h
↓
X
📄 gameport.h
↓
X
📄 gen_stats.h
↓
X
📄 genetlink.h
↓
X
📁 genwqe/
X
📄 gfs2_ondisk.h
↓
X
📄 gpio.h
↓
X
📄 gsmmux.h
↓
X
📄 gtp.h
↓
X
📄 handshake.h
↓
X
📄 hash_info.h
↓
X
📁 hdlc/
X
📄 hdlc.h
↓
X
📄 hdlcdrv.h
↓
X
📄 hdreg.h
↓
X
📄 hid.h
↓
X
📄 hiddev.h
↓
X
📄 hidraw.h
↓
X
📄 hpet.h
↓
X
📁 hsi/
X
📄 hsr_netlink.h
↓
X
📄 hw_breakpoint.h
↓
X
📄 hyperv.h
↓
X
📄 i2c-dev.h
↓
X
📄 i2c.h
↓
X
📄 i2o-dev.h
↓
X
📄 i8k.h
↓
X
📄 icmp.h
↓
X
📄 icmpv6.h
↓
X
📄 idxd.h
↓
X
📄 if.h
↓
X
📄 if_addr.h
↓
X
📄 if_addrlabel.h
↓
X
📄 if_alg.h
↓
X
📄 if_arcnet.h
↓
X
📄 if_arp.h
↓
X
📄 if_bonding.h
↓
X
📄 if_bridge.h
↓
X
📄 if_cablemodem.h
↓
X
📄 if_eql.h
↓
X
📄 if_ether.h
↓
X
📄 if_fc.h
↓
X
📄 if_fddi.h
↓
X
📄 if_hippi.h
↓
X
📄 if_infiniband.h
↓
X
📄 if_link.h
↓
X
📄 if_ltalk.h
↓
X
📄 if_macsec.h
↓
X
📄 if_packet.h
↓
X
📄 if_phonet.h
↓
X
📄 if_plip.h
↓
X
📄 if_ppp.h
↓
X
📄 if_pppol2tp.h
↓
X
📄 if_pppox.h
↓
X
📄 if_slip.h
↓
X
📄 if_team.h
↓
X
📄 if_tun.h
↓
X
📄 if_tunnel.h
↓
X
📄 if_vlan.h
↓
X
📄 if_x25.h
↓
X
📄 if_xdp.h
↓
X
📄 ife.h
↓
X
📄 igmp.h
↓
X
📁 iio/
X
📄 ila.h
↓
X
📄 in.h
↓
X
📄 in6.h
↓
X
📄 in_route.h
↓
X
📄 inet_diag.h
↓
X
📄 inotify.h
↓
X
📄 input-event-codes.h
↓
X
📄 input.h
↓
X
📄 io_uring.h
↓
X
📄 ioctl.h
↓
X
📄 iommufd.h
↓
X
📄 ioprio.h
↓
X
📄 ip.h
↓
X
📄 ip6_tunnel.h
↓
X
📄 ip_vs.h
↓
X
📄 ipc.h
↓
X
📄 ipmi.h
↓
X
📄 ipmi_bmc.h
↓
X
📄 ipmi_msgdefs.h
↓
X
📄 ipmi_ssif_bmc.h
↓
X
📄 ipsec.h
↓
X
📄 ipv6.h
↓
X
📄 ipv6_route.h
↓
X
📄 ipx.h
↓
X
📄 irqnr.h
↓
X
📁 isdn/
X
📄 iso_fs.h
↓
X
📄 isst_if.h
↓
X
📄 ivtv.h
↓
X
📄 ivtvfb.h
↓
X
📄 jffs2.h
↓
X
📄 joystick.h
↓
X
📄 kcm.h
↓
X
📄 kcmp.h
↓
X
📄 kcov.h
↓
X
📄 kd.h
↓
X
📄 kdev_t.h
↓
X
📄 kernel-page-flags.h
↓
X
📄 kernel.h
↓
X
📄 kernelcapi.h
↓
X
📄 kexec.h
↓
X
📄 keyboard.h
↓
X
📄 keyctl.h
↓
X
📄 kfd_ioctl.h
↓
X
📄 kfd_sysfs.h
↓
X
📄 kvm.h
↓
X
📄 kvm_para.h
↓
X
📄 l2tp.h
↓
X
📄 landlock.h
↓
X
📄 libc-compat.h
↓
X
📄 limits.h
↓
X
📄 lirc.h
↓
X
📄 llc.h
↓
X
📄 loadpin.h
↓
X
📄 loop.h
↓
X
📄 lp.h
↓
X
📄 lsm.h
↓
X
📄 lwtunnel.h
↓
X
📄 magic.h
↓
X
📄 major.h
↓
X
📄 map_to_7segment.h
↓
X
📄 matroxfb.h
↓
X
📄 max2175.h
↓
X
📄 mdio.h
↓
X
📄 media-bus-format.h
↓
X
📄 media.h
↓
X
📄 mei.h
↓
X
📄 mei_uuid.h
↓
X
📄 membarrier.h
↓
X
📄 memfd.h
↓
X
📄 mempolicy.h
↓
X
📄 meye.h
↓
X
📄 mii.h
↓
X
📄 minix_fs.h
↓
X
📁 misc/
X
📄 mman.h
↓
X
📁 mmc/
X
📄 mmtimer.h
↓
X
📄 module.h
↓
X
📄 mount.h
↓
X
📄 mpls.h
↓
X
📄 mpls_iptunnel.h
↓
X
📄 mptcp.h
↓
X
📄 mptcp_pm.h
↓
X
📄 mqueue.h
↓
X
📄 mroute.h
↓
X
📄 mroute6.h
↓
X
📄 mrp_bridge.h
↓
X
📄 msdos_fs.h
↓
X
📄 msg.h
↓
X
📄 mshv.h
↓
X
📄 mtio.h
↓
X
📄 nbd-netlink.h
↓
X
📄 nbd.h
↓
X
📄 ncsi.h
↓
X
📄 ndctl.h
↓
X
📄 neighbour.h
↓
X
📄 net.h
↓
X
📄 net_dropmon.h
↓
X
📄 net_namespace.h
↓
X
📄 net_shaper.h
↓
X
📄 net_tstamp.h
↓
X
📄 netconf.h
↓
X
📄 netdev.h
↓
X
📄 netdevice.h
↓
X
📁 netfilter/
X
📄 netfilter.h
↓
X
📁 netfilter_arp/
X
📄 netfilter_arp.h
↓
X
📁 netfilter_bridge/
X
📄 netfilter_bridge.h
↓
X
📄 netfilter_decnet.h
↓
X
📁 netfilter_ipv4/
X
📄 netfilter_ipv4.h
↓
X
📁 netfilter_ipv6/
X
📄 netfilter_ipv6.h
↓
X
📄 netlink.h
↓
X
📄 netlink_diag.h
↓
X
📄 netrom.h
↓
X
📄 nexthop.h
↓
X
📄 nfc.h
↓
X
📄 nfs.h
↓
X
📄 nfs2.h
↓
X
📄 nfs3.h
↓
X
📄 nfs4.h
↓
X
📄 nfs4_mount.h
↓
X
📄 nfs_fs.h
↓
X
📄 nfs_idmap.h
↓
X
📄 nfs_mount.h
↓
X
📄 nfsacl.h
↓
X
📁 nfsd/
X
📄 nfsd_netlink.h
↓
X
📄 nilfs2_api.h
↓
X
📄 nilfs2_ondisk.h
↓
X
📄 nitro_enclaves.h
↓
X
📄 nl80211.h
↓
X
📄 nsfs.h
↓
X
📄 nubus.h
↓
X
📄 nvme_ioctl.h
↓
X
📄 nvram.h
↓
X
📄 omap3isp.h
↓
X
📄 omapfb.h
↓
X
📄 oom.h
↓
X
📄 openat2.h
↓
X
📄 openvswitch.h
↓
X
📄 packet_diag.h
↓
X
📄 param.h
↓
X
📄 parport.h
↓
X
📄 patchkey.h
↓
X
📄 pci.h
↓
X
📄 pci_regs.h
↓
X
📄 pcitest.h
↓
X
📄 perf_event.h
↓
X
📄 personality.h
↓
X
📄 pfkeyv2.h
↓
X
📄 pfrut.h
↓
X
📄 pg.h
↓
X
📄 phantom.h
↓
X
📄 phonet.h
↓
X
📄 pidfd.h
↓
X
📄 pkt_cls.h
↓
X
📄 pkt_sched.h
↓
X
📄 pktcdvd.h
↓
X
📄 pmu.h
↓
X
📄 poll.h
↓
X
📄 posix_acl.h
↓
X
📄 posix_acl_xattr.h
↓
X
📄 posix_types.h
↓
X
📄 ppdev.h
↓
X
📄 ppp-comp.h
↓
X
📄 ppp-ioctl.h
↓
X
📄 ppp_defs.h
↓
X
📄 pps.h
↓
X
📄 pr.h
↓
X
📄 prctl.h
↓
X
📄 psample.h
↓
X
📄 psci.h
↓
X
📄 psp-dbc.h
↓
X
📄 psp-sev.h
↓
X
📄 ptp_clock.h
↓
X
📄 ptrace.h
↓
X
📄 qemu_fw_cfg.h
↓
X
📄 qnx4_fs.h
↓
X
📄 qnxtypes.h
↓
X
📄 qrtr.h
↓
X
📄 quota.h
↓
X
📄 radeonfb.h
↓
X
📁 raid/
X
📄 random.h
↓
X
📄 rds.h
↓
X
📄 reboot.h
↓
X
📄 reiserfs_fs.h
↓
X
📄 reiserfs_xattr.h
↓
X
📄 remoteproc_cdev.h
↓
X
📄 resource.h
↓
X
📄 rfkill.h
↓
X
📄 rio_cm_cdev.h
↓
X
📄 rio_mport_cdev.h
↓
X
📄 rkisp1-config.h
↓
X
📄 romfs_fs.h
↓
X
📄 rose.h
↓
X
📄 route.h
↓
X
📄 rpl.h
↓
X
📄 rpl_iptunnel.h
↓
X
📄 rpmsg.h
↓
X
📄 rpmsg_types.h
↓
X
📄 rseq.h
↓
X
📄 rtc.h
↓
X
📄 rtnetlink.h
↓
X
📄 rxrpc.h
↓
X
📄 scc.h
↓
X
📁 sched/
X
📄 sched.h
↓
X
📄 scif_ioctl.h
↓
X
📄 screen_info.h
↓
X
📄 sctp.h
↓
X
📄 seccomp.h
↓
X
📄 securebits.h
↓
X
📄 sed-opal.h
↓
X
📄 seg6.h
↓
X
📄 seg6_genl.h
↓
X
📄 seg6_hmac.h
↓
X
📄 seg6_iptunnel.h
↓
X
📄 seg6_local.h
↓
X
📄 selinux_netlink.h
↓
X
📄 sem.h
↓
X
📄 serial.h
↓
X
📄 serial_core.h
↓
X
📄 serial_reg.h
↓
X
📄 serio.h
↓
X
📄 sev-guest.h
↓
X
📄 shm.h
↓
X
📄 signal.h
↓
X
📄 signalfd.h
↓
X
📄 smc.h
↓
X
📄 smc_diag.h
↓
X
📄 smiapp.h
↓
X
📄 snmp.h
↓
X
📄 sock_diag.h
↓
X
📄 socket.h
↓
X
📄 sockios.h
↓
X
📄 sonet.h
↓
X
📄 sonypi.h
↓
X
📄 sound.h
↓
X
📄 soundcard.h
↓
X
📁 spi/
X
📄 stat.h
↓
X
📄 stddef.h
↓
X
📄 stm.h
↓
X
📄 string.h
↓
X
📁 sunrpc/
X
📁 surface_aggregator/
X
📄 suspend_ioctls.h
↓
X
📄 swab.h
↓
X
📄 switchtec_ioctl.h
↓
X
📄 sync_file.h
↓
X
📄 synclink.h
↓
X
📄 sysctl.h
↓
X
📄 sysinfo.h
↓
X
📄 target_core_user.h
↓
X
📄 taskstats.h
↓
X
📁 tc_act/
X
📁 tc_ematch/
X
📄 tcp.h
↓
X
📄 tcp_metrics.h
↓
X
📄 tdx-guest.h
↓
X
📄 tee.h
↓
X
📄 termios.h
↓
X
📄 thermal.h
↓
X
📄 time.h
↓
X
📄 time_types.h
↓
X
📄 timerfd.h
↓
X
📄 times.h
↓
X
📄 timex.h
↓
X
📄 tiocl.h
↓
X
📄 tipc.h
↓
X
📄 tipc_config.h
↓
X
📄 tipc_netlink.h
↓
X
📄 tipc_sockets_diag.h
↓
X
📄 tls.h
↓
X
📄 toshiba.h
↓
X
📄 tps6594_pfsm.h
↓
X
📄 tty.h
↓
X
📄 tty_flags.h
↓
X
📄 types.h
↓
X
📄 udf_fs_i.h
↓
X
📄 udmabuf.h
↓
X
📄 udp.h
↓
X
📄 uhid.h
↓
X
📄 uinput.h
↓
X
📄 uio.h
↓
X
📄 uleds.h
↓
X
📄 ultrasound.h
↓
X
📄 um_timetravel.h
↓
X
📄 un.h
↓
X
📄 unistd.h
↓
X
📄 unix_diag.h
↓
X
📁 usb/
X
📄 usbdevice_fs.h
↓
X
📄 usbip.h
↓
X
📄 userfaultfd.h
↓
X
📄 userio.h
↓
X
📄 utime.h
↓
X
📄 utsname.h
↓
X
📄 uuid.h
↓
X
📄 uvcvideo.h
↓
X
📄 v4l2-common.h
↓
X
📄 v4l2-controls.h
↓
X
📄 v4l2-dv-timings.h
↓
X
📄 v4l2-mediabus.h
↓
X
📄 v4l2-subdev.h
↓
X
📄 vbox_err.h
↓
X
📄 vbox_vmmdev_types.h
↓
X
📄 vboxguest.h
↓
X
📄 vdpa.h
↓
X
📄 vduse.h
↓
X
📄 version.h
↓
X
📄 veth.h
↓
X
📄 vfio.h
↓
X
📄 vfio_ccw.h
↓
X
📄 vfio_zdev.h
↓
X
📄 vhost.h
↓
X
📄 vhost_types.h
↓
X
📄 videodev2.h
↓
X
📄 virtio_9p.h
↓
X
📄 virtio_balloon.h
↓
X
📄 virtio_blk.h
↓
X
📄 virtio_bt.h
↓
X
📄 virtio_config.h
↓
X
📄 virtio_console.h
↓
X
📄 virtio_crypto.h
↓
X
📄 virtio_fs.h
↓
X
📄 virtio_gpio.h
↓
X
📄 virtio_gpu.h
↓
X
📄 virtio_i2c.h
↓
X
📄 virtio_ids.h
↓
X
📄 virtio_input.h
↓
X
📄 virtio_iommu.h
↓
X
📄 virtio_mem.h
↓
X
📄 virtio_mmio.h
↓
X
📄 virtio_net.h
↓
X
📄 virtio_pci.h
↓
X
📄 virtio_pcidev.h
↓
X
📄 virtio_pmem.h
↓
X
📄 virtio_ring.h
↓
X
📄 virtio_rng.h
↓
X
📄 virtio_scmi.h
↓
X
📄 virtio_scsi.h
↓
X
📄 virtio_snd.h
↓
X
📄 virtio_types.h
↓
X
📄 virtio_vsock.h
↓
X
📄 vm_sockets.h
↓
X
📄 vm_sockets_diag.h
↓
X
📄 vmcore.h
↓
X
📄 vsockmon.h
↓
X
📄 vt.h
↓
X
📄 vtpm_proxy.h
↓
X
📄 wait.h
↓
X
📄 watch_queue.h
↓
X
📄 watchdog.h
↓
X
📄 wireguard.h
↓
X
📄 wireless.h
↓
X
📄 wmi.h
↓
X
📄 wwan.h
↓
X
📄 x25.h
↓
X
📄 xattr.h
↓
X
📄 xdp_diag.h
↓
X
📄 xfrm.h
↓
X
📄 xilinx-v4l2-controls.h
↓
X
📄 zorro.h
↓
X
📄 zorro_ids.h
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: rds.h
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */ /* * Copyright (c) 2008, 2018 Oracle and/or its affiliates. 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 * General Public License (GPL) Version 2, available from the file * COPYING in the main directory of this source tree, or the * OpenIB.org BSD license below: * * 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. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #ifndef _LINUX_RDS_H #define _LINUX_RDS_H #include <linux/types.h> #include <linux/socket.h> /* For __kernel_sockaddr_storage. */ #include <linux/in6.h> /* For struct in6_addr. */ #define RDS_IB_ABI_VERSION 0x301 #define SOL_RDS 276 /* * setsockopt/getsockopt for SOL_RDS */ #define RDS_CANCEL_SENT_TO 1 #define RDS_GET_MR 2 #define RDS_FREE_MR 3 /* deprecated: RDS_BARRIER 4 */ #define RDS_RECVERR 5 #define RDS_CONG_MONITOR 6 #define RDS_GET_MR_FOR_DEST 7 #define SO_RDS_TRANSPORT 8 /* Socket option to tap receive path latency * SO_RDS: SO_RDS_MSG_RXPATH_LATENCY * Format used struct rds_rx_trace_so */ #define SO_RDS_MSG_RXPATH_LATENCY 10 /* supported values for SO_RDS_TRANSPORT */ #define RDS_TRANS_IB 0 #define RDS_TRANS_GAP 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) #define SIOCRDSGETTOS (SIOCPROTOPRIVATE + 1) typedef __u8 rds_tos_t; /* * Control message types for SOL_RDS. * * CMSG_RDMA_ARGS (sendmsg) * Request a RDMA transfer to/from the specified * memory ranges. * The cmsg_data is a struct rds_rdma_args. * RDS_CMSG_RDMA_DEST (recvmsg, sendmsg) * Kernel informs application about intended * source/destination of a RDMA transfer * RDS_CMSG_RDMA_MAP (sendmsg) * Application asks kernel to map the given * memory range into a IB MR, and send the * R_Key along in an RDS extension header. * The cmsg_data is a struct rds_get_mr_args, * the same as for the GET_MR setsockopt. * RDS_CMSG_RDMA_STATUS (recvmsg) * Returns the status of a completed RDMA operation. * RDS_CMSG_RXPATH_LATENCY(recvmsg) * Returns rds message latencies in various stages of receive * path in nS. Its set per socket using SO_RDS_MSG_RXPATH_LATENCY * socket option. Legitimate points are defined in * enum rds_message_rxpath_latency. More points can be added in * future. CSMG format is struct rds_cmsg_rx_trace. */ #define RDS_CMSG_RDMA_ARGS 1 #define RDS_CMSG_RDMA_DEST 2 #define RDS_CMSG_RDMA_MAP 3 #define RDS_CMSG_RDMA_STATUS 4 #define RDS_CMSG_CONG_UPDATE 5 #define RDS_CMSG_ATOMIC_FADD 6 #define RDS_CMSG_ATOMIC_CSWP 7 #define RDS_CMSG_MASKED_ATOMIC_FADD 8 #define RDS_CMSG_MASKED_ATOMIC_CSWP 9 #define RDS_CMSG_RXPATH_LATENCY 11 #define RDS_CMSG_ZCOPY_COOKIE 12 #define RDS_CMSG_ZCOPY_COMPLETION 13 #define RDS_INFO_FIRST 10000 #define RDS_INFO_COUNTERS 10000 #define RDS_INFO_CONNECTIONS 10001 /* 10002 aka RDS_INFO_FLOWS is deprecated */ #define RDS_INFO_SEND_MESSAGES 10003 #define RDS_INFO_RETRANS_MESSAGES 10004 #define RDS_INFO_RECV_MESSAGES 10005 #define RDS_INFO_SOCKETS 10006 #define RDS_INFO_TCP_SOCKETS 10007 #define RDS_INFO_IB_CONNECTIONS 10008 #define RDS_INFO_CONNECTION_STATS 10009 #define RDS_INFO_IWARP_CONNECTIONS 10010 /* PF_RDS6 options */ #define RDS6_INFO_CONNECTIONS 10011 #define RDS6_INFO_SEND_MESSAGES 10012 #define RDS6_INFO_RETRANS_MESSAGES 10013 #define RDS6_INFO_RECV_MESSAGES 10014 #define RDS6_INFO_SOCKETS 10015 #define RDS6_INFO_TCP_SOCKETS 10016 #define RDS6_INFO_IB_CONNECTIONS 10017 #define RDS_INFO_LAST 10017 struct rds_info_counter { __u8 name[32]; __u64 value; } __attribute__((packed)); #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 #define RDS_INFO_CONNECTION_FLAG_CONNECTING 0x02 #define RDS_INFO_CONNECTION_FLAG_CONNECTED 0x04 #define TRANSNAMSIZ 16 struct rds_info_connection { __u64 next_tx_seq; __u64 next_rx_seq; __be32 laddr; __be32 faddr; __u8 transport[TRANSNAMSIZ]; /* null term ascii */ __u8 flags; __u8 tos; } __attribute__((packed)); struct rds6_info_connection { __u64 next_tx_seq; __u64 next_rx_seq; struct in6_addr laddr; struct in6_addr faddr; __u8 transport[TRANSNAMSIZ]; /* null term ascii */ __u8 flags; } __attribute__((packed)); #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 struct rds_info_message { __u64 seq; __u32 len; __be32 laddr; __be32 faddr; __be16 lport; __be16 fport; __u8 flags; __u8 tos; } __attribute__((packed)); struct rds6_info_message { __u64 seq; __u32 len; struct in6_addr laddr; struct in6_addr faddr; __be16 lport; __be16 fport; __u8 flags; __u8 tos; } __attribute__((packed)); struct rds_info_socket { __u32 sndbuf; __be32 bound_addr; __be32 connected_addr; __be16 bound_port; __be16 connected_port; __u32 rcvbuf; __u64 inum; } __attribute__((packed)); struct rds6_info_socket { __u32 sndbuf; struct in6_addr bound_addr; struct in6_addr connected_addr; __be16 bound_port; __be16 connected_port; __u32 rcvbuf; __u64 inum; } __attribute__((packed)); struct rds_info_tcp_socket { __be32 local_addr; __be16 local_port; __be32 peer_addr; __be16 peer_port; __u64 hdr_rem; __u64 data_rem; __u32 last_sent_nxt; __u32 last_expected_una; __u32 last_seen_una; __u8 tos; } __attribute__((packed)); struct rds6_info_tcp_socket { struct in6_addr local_addr; __be16 local_port; struct in6_addr peer_addr; __be16 peer_port; __u64 hdr_rem; __u64 data_rem; __u32 last_sent_nxt; __u32 last_expected_una; __u32 last_seen_una; } __attribute__((packed)); #define RDS_IB_GID_LEN 16 struct rds_info_rdma_connection { __be32 src_addr; __be32 dst_addr; __u8 src_gid[RDS_IB_GID_LEN]; __u8 dst_gid[RDS_IB_GID_LEN]; __u32 max_send_wr; __u32 max_recv_wr; __u32 max_send_sge; __u32 rdma_mr_max; __u32 rdma_mr_size; __u8 tos; __u8 sl; __u32 cache_allocs; }; struct rds6_info_rdma_connection { struct in6_addr src_addr; struct in6_addr dst_addr; __u8 src_gid[RDS_IB_GID_LEN]; __u8 dst_gid[RDS_IB_GID_LEN]; __u32 max_send_wr; __u32 max_recv_wr; __u32 max_send_sge; __u32 rdma_mr_max; __u32 rdma_mr_size; __u8 tos; __u8 sl; __u32 cache_allocs; }; /* RDS message Receive Path Latency points */ enum rds_message_rxpath_latency { RDS_MSG_RX_HDR_TO_DGRAM_START = 0, RDS_MSG_RX_DGRAM_REASSEMBLE, RDS_MSG_RX_DGRAM_DELIVERED, RDS_MSG_RX_DGRAM_TRACE_MAX }; struct rds_rx_trace_so { __u8 rx_traces; __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX]; }; struct rds_cmsg_rx_trace { __u8 rx_traces; __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX]; __u64 rx_trace[RDS_MSG_RX_DGRAM_TRACE_MAX]; }; /* * Congestion monitoring. * Congestion control in RDS happens at the host connection * level by exchanging a bitmap marking congested ports. * By default, a process sleeping in poll() is always woken * up when the congestion map is updated. * With explicit monitoring, an application can have more * fine-grained control. * The application installs a 64bit mask value in the socket, * where each bit corresponds to a group of ports. * When a congestion update arrives, RDS checks the set of * ports that are now uncongested against the list bit mask * installed in the socket, and if they overlap, we queue a * cong_notification on the socket. * * To install the congestion monitor bitmask, use RDS_CONG_MONITOR * with the 64bit mask. * Congestion updates are received via RDS_CMSG_CONG_UPDATE * control messages. * * The correspondence between bits and ports is * 1 << (portnum % 64) */ #define RDS_CONG_MONITOR_SIZE 64 #define RDS_CONG_MONITOR_BIT(port) (((unsigned int) port) % RDS_CONG_MONITOR_SIZE) #define RDS_CONG_MONITOR_MASK(port) (1ULL << RDS_CONG_MONITOR_BIT(port)) /* * RDMA related types */ /* * This encapsulates a remote memory location. * In the current implementation, it contains the R_Key * of the remote memory region, and the offset into it * (so that the application does not have to worry about * alignment). */ typedef __u64 rds_rdma_cookie_t; struct rds_iovec { __u64 addr; __u64 bytes; }; struct rds_get_mr_args { struct rds_iovec vec; __u64 cookie_addr; __u64 flags; }; struct rds_get_mr_for_dest_args { struct __kernel_sockaddr_storage dest_addr; struct rds_iovec vec; __u64 cookie_addr; __u64 flags; }; struct rds_free_mr_args { rds_rdma_cookie_t cookie; __u64 flags; }; struct rds_rdma_args { rds_rdma_cookie_t cookie; struct rds_iovec remote_vec; __u64 local_vec_addr; __u64 nr_local; __u64 flags; __u64 user_token; }; struct rds_atomic_args { rds_rdma_cookie_t cookie; __u64 local_addr; __u64 remote_addr; union { struct { __u64 compare; __u64 swap; } cswp; struct { __u64 add; } fadd; struct { __u64 compare; __u64 swap; __u64 compare_mask; __u64 swap_mask; } m_cswp; struct { __u64 add; __u64 nocarry_mask; } m_fadd; }; __u64 flags; __u64 user_token; }; struct rds_rdma_notify { __u64 user_token; __s32 status; }; #define RDS_RDMA_SUCCESS 0 #define RDS_RDMA_REMOTE_ERROR 1 #define RDS_RDMA_CANCELED 2 #define RDS_RDMA_DROPPED 3 #define RDS_RDMA_OTHER_ERROR 4 #define RDS_MAX_ZCOOKIES 8 struct rds_zcopy_cookies { __u32 num; __u32 cookies[RDS_MAX_ZCOOKIES]; }; /* * Common set of flags for all RDMA related structs */ #define RDS_RDMA_READWRITE 0x0001 #define RDS_RDMA_FENCE 0x0002 /* use FENCE for immediate send */ #define RDS_RDMA_INVALIDATE 0x0004 /* invalidate R_Key after freeing MR */ #define RDS_RDMA_USE_ONCE 0x0008 /* free MR after use */ #define RDS_RDMA_DONTWAIT 0x0010 /* Don't wait in SET_BARRIER */ #define RDS_RDMA_NOTIFY_ME 0x0020 /* Notify when operation completes */ #define RDS_RDMA_SILENT 0x0040 /* Do not interrupt remote */ #endif /* IB_RDS_H */
SIMPAN PERUBAHAN