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.
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)
Domain
Dependencies
- 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
- netty_unix_util.h
- sendfile.h
- stdlib.h
- string.h
- tcp.h
- udp.h
Source
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