builtins/t...p_driver.h(3)

πŸ“¦
version 6.6 Β· 5 versions
, in epel 10, fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

πŸ’– builtins/t...p_driver.h(3) β€” Library Functions Manual πŸ’–

okay so bestie, we're reading the builtins/t...p_driver.h(3) page from the Library Functions Manual, and it's literally the header file page for the XIO TCP Driver. no cap, it's a header, so it's mostly a big beautiful list of things. let's get into it πŸ¦‹


✨ NAME ✨

builtins/tcp/globus_xio_tcp_driver.h β€” Header file for XIO TCP Driver. that's it, that's the whole name section, she's concise πŸ’…


🌸 SYNOPSIS 🌸

#include 'globus_xio_system.h'
yes the include really is written with those little single quotes in the source, we are copying it exactly, do not come for me πŸ™ˆ

πŸŽ€ Macros πŸŽ€

  • #define GLOBUS_XIO_TCP_INVALID_HANDLE β€” one singular macro, and it's the invalid-handle one. iconic, honestly.

🧚 Enumerations 🧚

okay so there are three enums and the second one is LOWKEY massive, so buckle up πŸ“

  • enum globus_xio_tcp_error_type_t β€” exactly one member in there:
enum globus_xio_tcp_error_type_t { GLOBUS_XIO_TCP_ERROR_NO_ADDRS }
  • enum globus_xio_tcp_cmd_t β€” the big one, the main character. here's every single member, in order, no skipping, periodt:
enum globus_xio_tcp_cmd_t { GLOBUS_XIO_TCP_SET_SERVICE,
    GLOBUS_XIO_TCP_GET_SERVICE, GLOBUS_XIO_TCP_SET_PORT,
    GLOBUS_XIO_TCP_GET_PORT, GLOBUS_XIO_TCP_SET_BACKLOG,
    GLOBUS_XIO_TCP_GET_BACKLOG, GLOBUS_XIO_TCP_SET_LISTEN_RANGE,
    GLOBUS_XIO_TCP_GET_LISTEN_RANGE, GLOBUS_XIO_TCP_GET_HANDLE,
    GLOBUS_XIO_TCP_SET_HANDLE, GLOBUS_XIO_TCP_SET_INTERFACE,
    GLOBUS_XIO_TCP_GET_INTERFACE, GLOBUS_XIO_TCP_SET_RESTRICT_PORT,
    GLOBUS_XIO_TCP_GET_RESTRICT_PORT, GLOBUS_XIO_TCP_SET_REUSEADDR,
    GLOBUS_XIO_TCP_GET_REUSEADDR, GLOBUS_XIO_TCP_SET_NO_IPV6,
    GLOBUS_XIO_TCP_GET_NO_IPV6, GLOBUS_XIO_TCP_SET_CONNECT_RANGE,
    GLOBUS_XIO_TCP_GET_CONNECT_RANGE, GLOBUS_XIO_TCP_SET_KEEPALIVE,
    GLOBUS_XIO_TCP_GET_KEEPALIVE, GLOBUS_XIO_TCP_SET_LINGER,
    GLOBUS_XIO_TCP_GET_LINGER, GLOBUS_XIO_TCP_SET_OOBINLINE,
    GLOBUS_XIO_TCP_GET_OOBINLINE, GLOBUS_XIO_TCP_SET_SNDBUF,
    GLOBUS_XIO_TCP_GET_SNDBUF, GLOBUS_XIO_TCP_SET_RCVBUF,
    GLOBUS_XIO_TCP_GET_RCVBUF, GLOBUS_XIO_TCP_SET_NODELAY,
    GLOBUS_XIO_TCP_GET_NODELAY, GLOBUS_XIO_TCP_SET_SEND_FLAGS,
    GLOBUS_XIO_TCP_GET_SEND_FLAGS, GLOBUS_XIO_TCP_GET_LOCAL_CONTACT,
    GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT,
    GLOBUS_XIO_TCP_GET_REMOTE_CONTACT,
    GLOBUS_XIO_TCP_GET_REMOTE_NUMERIC_CONTACT,
    GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS, GLOBUS_XIO_TCP_SET_BLOCKING_IO,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO }

notice the set/get symmetry? the way she has a SET and a GET for almost everything? that's the vibe, iykyk πŸ‘‘

  • enum globus_xio_tcp_send_flags_t β€” one member, and it's literally aliased to a system value:
enum globus_xio_tcp_send_flags_t { GLOBUS_XIO_TCP_SEND_OOB = MSG_OOB }

πŸ’œ Functions πŸ’œ

this is the long part. every prototype, exactly as written, in the same order. these are all globus_result_t returns, which is giving "we return a result object, not a plain int" energy πŸ’«

globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_SERVICE, const char *service_name)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_SERVICE, char **service_name_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_PORT, int listener_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_PORT, int *listener_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_BACKLOG, int listener_backlog)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_BACKLOG, int *listener_backlog_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_LISTEN_RANGE, int listener_min_port, int
    listener_max_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_LISTEN_RANGE, int *listener_min_port_out, int
    *listener_max_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_HANDLE, globus_xio_system_socket_t *handle_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_HANDLE, globus_xio_system_socket_t *handle_out)
globus_result_t globus_xio_server_cntl (server, driver,
    GLOBUS_XIO_TCP_GET_HANDLE, globus_xio_system_socket_t *handle_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_HANDLE, globus_xio_system_socket_t handle)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_INTERFACE, const char *interface)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_INTERFACE, char **interface_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_RESTRICT_PORT, globus_bool_t restrict_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_RESTRICT_PORT, globus_bool_t *restrict_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_REUSEADDR, globus_bool_t resuseaddr)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_REUSEADDR, globus_bool_t *resuseaddr_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_NO_IPV6, globus_bool_t no_ipv6)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_NO_IPV6, globus_bool_t *no_ipv6_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_CONNECT_RANGE, int connector_min_port, int
    connector_max_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_CONNECT_RANGE, int *connector_min_port_out, int
    *connector_max_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_KEEPALIVE, globus_bool_t keepalive)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_KEEPALIVE, globus_bool_t keepalive)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_KEEPALIVE, globus_bool_t *keepalive_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_KEEPALIVE, globus_bool_t *keepalive_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_LINGER, globus_bool_t linger, int linger_time)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_LINGER, globus_bool_t linger, int linger_time)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_LINGER, globus_bool_t *linger_out, int
    *linger_time_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_LINGER, globus_bool_t *linger_out, int
    *linger_time_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_OOBINLINE, globus_bool_t oobinline)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_OOBINLINE, globus_bool_t oobinline)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_OOBINLINE, globus_bool_t *oobinline_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_OOBINLINE, globus_bool_t *oobinline_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_SNDBUF, int sndbuf)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_SNDBUF, int sndbuf)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_SNDBUF, int *sndbuf_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_SNDBUF, int *sndbuf_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_RCVBUF, int rcvbuf)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_RCVBUF, int rcvbuf)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_RCVBUF, int *rcvbuf_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_RCVBUF, int *rcvbuf_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_NODELAY, globus_bool_t nodelay)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_NODELAY, globus_bool_t nodelay)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_NODELAY, globus_bool_t *nodelay_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_NODELAY, globus_bool_t *nodelay_out)
globus_result_t globus_xio_data_descriptor_cntl (dd, driver,
    GLOBUS_XIO_TCP_SET_SEND_FLAGS, int send_flags)
globus_result_t globus_xio_data_descriptor_cntl (dd, driver,
    GLOBUS_XIO_TCP_GET_SEND_FLAGS, int *send_flags_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_CONTACT, char **contact_string_out)
globus_result_t globus_xio_server_cntl (server, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_CONTACT, char **contact_string_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT, char **contact_string_out)
globus_result_t globus_xio_server_cntl (server, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT, char **contact_string_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_REMOTE_CONTACT, char **contact_string_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_REMOTE_NUMERIC_CONTACT, char
    **contact_string_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS, globus_bool_t affect_global)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_BLOCKING_IO, globus_bool_t use_blocking_io)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_BLOCKING_IO, globus_bool_t use_blocking_io)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO, globus_bool_t *use_blocking_io_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO, globus_bool_t *use_blocking_io_out)
quick heads up bestie: resuseaddr and resuseaddr_out are spelled that way in the source, and yes i am keeping the typo because the RULE says character for character πŸ’€ do not "fix" it, she's canon now.

and notice the three different cntl flavours floating around β€” globus_xio_attr_cntl, globus_xio_handle_cntl, globus_xio_server_cntl, plus one lonely globus_xio_data_descriptor_cntl β€” that's not me being messy, that's literally how they're written πŸ™ˆ


🌈 Detailed Description 🌈

Header file for XIO TCP Driver.


🌟 Author 🌟

Generated automatically by Doxygen for globus_xio from the source code.


okay and that's the whole page, we ate and left no crumbs 🫢 this was globus_xio, Version 6.6, and the page itself is builtins/t...p_driver.h(3) β€” shoutout to Doxygen for auto-generating the author line, and to you for reading all 60-something prototypes with me. slay, bestie, go set some TCP options πŸ’…βœ¨

πŸ“¦ where this page comes from