Home / File/ netty_io_uring_linuxsocket.c — netty Source File

netty_io_uring_linuxsocket.c — netty Source File

Architecture documentation for netty_io_uring_linuxsocket.c, a c file in the netty codebase. 13 imports, 0 dependents.

File c NativeTransport 13 imports

Entity Profile

Dependency Diagram

graph LR
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72["netty_io_uring_linuxsocket.c"]
  d0123fb4_894e_5f98_aeac_81dde1bffaf1["netty_io_uring_linuxsocket.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> d0123fb4_894e_5f98_aeac_81dde1bffaf1
  610ed693_3198_ae38_8654_3d3b9cf1c58c["netty_unix_errors.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 610ed693_3198_ae38_8654_3d3b9cf1c58c
  cf4739e6_7449_d84a_391f_9cc2007ffe16["netty_unix_filedescriptor.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> cf4739e6_7449_d84a_391f_9cc2007ffe16
  e8ce5fd2_c405_7f15_aea5_445386d0b53f["netty_unix_jni.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> e8ce5fd2_c405_7f15_aea5_445386d0b53f
  0239d045_10ae_8e84_258c_45063fe86ff7["netty_unix_socket.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 0239d045_10ae_8e84_258c_45063fe86ff7
  6acc0a6f_eccc_2930_81f0_cb2172ffd1da["netty_unix_util.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 6acc0a6f_eccc_2930_81f0_cb2172ffd1da
  d822c438_bcda_8ebc_05f9_1007c55018be["stdlib.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> d822c438_bcda_8ebc_05f9_1007c55018be
  5cbcd069_b25c_7379_e9c5_47a7dd85985a["string.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 5cbcd069_b25c_7379_e9c5_47a7dd85985a
  71c52c20_b4aa_1551_58db_42e42fa27aa6["errno.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 71c52c20_b4aa_1551_58db_42e42fa27aa6
  87777250_5cc3_52ea_1645_b2af04d91714["in.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 87777250_5cc3_52ea_1645_b2af04d91714
  9852d5ba_7ba1_f258_a5aa_435484bdb7b1["udp.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> 9852d5ba_7ba1_f258_a5aa_435484bdb7b1
  b4c9054f_d3c7_0c09_9e66_b024a43dd83a["tcp.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> b4c9054f_d3c7_0c09_9e66_b024a43dd83a
  d74a6009_ec80_1e86_97f9_4d3451c5416a["fcntl.h"]
  cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 --> d74a6009_ec80_1e86_97f9_4d3451c5416a
  style cf9adfdd_5b0d_874b_7ce6_4d8c3d341d72 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/*
 * Copyright 2022 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

/*
 * Since glibc 2.8, the _GNU_SOURCE feature test macro must be defined
 * (before including any header files) in order to obtain the
 * definition of the ucred structure. See <a href=https://linux.die.net/man/7/unix>
 */
#define _GNU_SOURCE

#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <netinet/in.h>
#include <netinet/udp.h> // SOL_UDP
#include <linux/tcp.h> // TCP_NOTSENT_LOWAT is a linux specific define
#include <fcntl.h>

#include "netty_io_uring_linuxsocket.h"
#include "netty_unix_errors.h"
#include "netty_unix_filedescriptor.h"
#include "netty_unix_jni.h"
#include "netty_unix_socket.h"
#include "netty_unix_util.h"

#define LINUXSOCKET_CLASSNAME "io/netty/channel/uring/LinuxSocket"

// TCP_FASTOPEN is defined in linux 3.7. We define this here so older kernels can compile.
#ifndef TCP_FASTOPEN
#define TCP_FASTOPEN 23
#endif

// TCP_FASTOPEN_CONNECT is defined in linux 4.11. We define this here so older kernels can compile.
#ifndef TCP_FASTOPEN_CONNECT
#define TCP_FASTOPEN_CONNECT 30
#endif

// TCP_NOTSENT_LOWAT is defined in linux 3.12. We define this here so older kernels can compile.
#ifndef TCP_NOTSENT_LOWAT
#define TCP_NOTSENT_LOWAT 25
#endif

// SO_BUSY_POLL is defined in linux 3.11. We define this here so older kernels can compile.
#ifndef SO_BUSY_POLL
#define SO_BUSY_POLL 46
#endif

// ... (757 more lines)

Dependencies

  • errno.h
  • fcntl.h
  • in.h
  • netty_io_uring_linuxsocket.h
  • netty_unix_errors.h
  • netty_unix_filedescriptor.h
  • netty_unix_jni.h
  • netty_unix_socket.h
  • netty_unix_util.h
  • stdlib.h
  • string.h
  • tcp.h
  • udp.h

Frequently Asked Questions

What does netty_io_uring_linuxsocket.c do?
netty_io_uring_linuxsocket.c is a source file in the netty codebase, written in c. It belongs to the NativeTransport domain.
What does netty_io_uring_linuxsocket.c depend on?
netty_io_uring_linuxsocket.c imports 13 module(s): errno.h, fcntl.h, in.h, netty_io_uring_linuxsocket.h, netty_unix_errors.h, netty_unix_filedescriptor.h, netty_unix_jni.h, netty_unix_socket.h, and 5 more.
Where is netty_io_uring_linuxsocket.c in the architecture?
netty_io_uring_linuxsocket.c is located at transport-native-io_uring/src/main/c/netty_io_uring_linuxsocket.c (domain: NativeTransport, directory: transport-native-io_uring/src/main/c).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free