Home / File/ netty_epoll_linuxsocket.c — netty Source File

netty_epoll_linuxsocket.c — netty Source File

Architecture documentation for netty_epoll_linuxsocket.c, a c file in the netty codebase. 14 imports, 0 dependents.

File c NativeTransport 14 imports

Entity Profile

Dependency Diagram

graph LR
  ef029e55_576c_b697_62d9_3b9dde6309f3["netty_epoll_linuxsocket.c"]
  16f104fe_d7d2_755c_928f_d73095eb69fc["netty_epoll_linuxsocket.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 16f104fe_d7d2_755c_928f_d73095eb69fc
  00f19555_3236_a460_7b8b_725330d503e4["netty_epoll_vmsocket.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 00f19555_3236_a460_7b8b_725330d503e4
  949145c3_d1a9_37e9_096c_695b337177e2["netty_unix_errors.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 949145c3_d1a9_37e9_096c_695b337177e2
  847687d2_d2fb_80a8_2120_5511e3a8037e["netty_unix_filedescriptor.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 847687d2_d2fb_80a8_2120_5511e3a8037e
  314d8256_2f6c_cf47_70a2_c16bcc86d337["netty_unix_jni.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 314d8256_2f6c_cf47_70a2_c16bcc86d337
  e4a61958_950c_028c_96ac_5dcf4c8e4f44["netty_unix_socket.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> e4a61958_950c_028c_96ac_5dcf4c8e4f44
  1f63ffb4_ac00_2788_67d4_ab362e1dfa05["netty_unix_util.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 1f63ffb4_ac00_2788_67d4_ab362e1dfa05
  d822c438_bcda_8ebc_05f9_1007c55018be["stdlib.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> d822c438_bcda_8ebc_05f9_1007c55018be
  5cbcd069_b25c_7379_e9c5_47a7dd85985a["string.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 5cbcd069_b25c_7379_e9c5_47a7dd85985a
  71c52c20_b4aa_1551_58db_42e42fa27aa6["errno.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 71c52c20_b4aa_1551_58db_42e42fa27aa6
  87777250_5cc3_52ea_1645_b2af04d91714["in.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 87777250_5cc3_52ea_1645_b2af04d91714
  9852d5ba_7ba1_f258_a5aa_435484bdb7b1["udp.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> 9852d5ba_7ba1_f258_a5aa_435484bdb7b1
  e0c33266_27d4_593b_529b_f92efa2e22d6["sendfile.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> e0c33266_27d4_593b_529b_f92efa2e22d6
  b4c9054f_d3c7_0c09_9e66_b024a43dd83a["tcp.h"]
  ef029e55_576c_b697_62d9_3b9dde6309f3 --> b4c9054f_d3c7_0c09_9e66_b024a43dd83a
  style ef029e55_576c_b697_62d9_3b9dde6309f3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/*
 * Copyright 2016 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 <sys/sendfile.h>
#include <linux/tcp.h> // TCP_NOTSENT_LOWAT is a linux specific define
#include "netty_epoll_linuxsocket.h"
#include "netty_epoll_vmsocket.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/epoll/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

// ... (908 more lines)

Dependencies

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free