public final class oadd.io.netty.channel.epoll.Native extends java.lang.Object
{
private static final oadd.io.netty.util.internal.logging.InternalLogger logger;
public static final int EPOLLIN;
public static final int EPOLLOUT;
public static final int EPOLLRDHUP;
public static final int EPOLLET;
public static final int EPOLLERR;
public static final boolean IS_SUPPORTING_SENDMMSG;
static final boolean IS_SUPPORTING_RECVMMSG;
static final boolean IS_SUPPORTING_UDP_SEGMENT;
private static final int TFO_ENABLED_CLIENT_MASK;
private static final int TFO_ENABLED_SERVER_MASK;
private static final int TCP_FASTOPEN_MODE;
static final boolean IS_SUPPORTING_TCP_FASTOPEN_CLIENT;
static final boolean IS_SUPPORTING_TCP_FASTOPEN_SERVER;
public static final boolean IS_SUPPORTING_TCP_FASTOPEN;
public static final int TCP_MD5SIG_MAXKEYLEN;
public static final java.lang.String KERNEL_VERSION;
private static native int registerUnix();
public static oadd.io.netty.channel.unix.FileDescriptor newEventFd()
{
int v;
oadd.io.netty.channel.unix.FileDescriptor v;
v = new oadd.io.netty.channel.unix.FileDescriptor;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int eventFd()>();
specialinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: void <init>(int)>(v);
return v;
}
public static oadd.io.netty.channel.unix.FileDescriptor newTimerFd()
{
int v;
oadd.io.netty.channel.unix.FileDescriptor v;
v = new oadd.io.netty.channel.unix.FileDescriptor;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int timerFd()>();
specialinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: void <init>(int)>(v);
return v;
}
private static native boolean isSupportingUdpSegment();
private static native int eventFd();
private static native int timerFd();
public static native void eventFdWrite(int, long);
public static native void eventFdRead(int);
static native void timerFdRead(int);
static native void timerFdSetTime(int, int, int) throws java.io.IOException;
public static oadd.io.netty.channel.unix.FileDescriptor newEpollCreate()
{
int v;
oadd.io.netty.channel.unix.FileDescriptor v;
v = new oadd.io.netty.channel.unix.FileDescriptor;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollCreate()>();
specialinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: void <init>(int)>(v);
return v;
}
private static native int epollCreate();
public static int epollWait(oadd.io.netty.channel.unix.FileDescriptor, oadd.io.netty.channel.epoll.EpollEventArray, oadd.io.netty.channel.unix.FileDescriptor, int, int) throws java.io.IOException
{
long v;
oadd.io.netty.channel.unix.Errors$NativeIoException v;
int v, v, v, v, v, v, v;
oadd.io.netty.channel.epoll.EpollEventArray v;
oadd.io.netty.channel.unix.FileDescriptor v, v;
v := @parameter: oadd.io.netty.channel.unix.FileDescriptor;
v := @parameter: oadd.io.netty.channel.epoll.EpollEventArray;
v := @parameter: oadd.io.netty.channel.unix.FileDescriptor;
v := @parameter: int;
v := @parameter: int;
if v != 0 goto label;
if v != 0 goto label;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollWait(oadd.io.netty.channel.unix.FileDescriptor,oadd.io.netty.channel.epoll.EpollEventArray,int)>(v, v, 0);
return v;
label:
if v != 2147483647 goto label;
v = 0;
v = 0;
label:
v = virtualinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: int intValue()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventArray: long memoryAddress()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventArray: int length()>();
v = virtualinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: int intValue()>();
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollWait0(int,long,int,int,int,int)>(v, v, v, v, v, v);
if v >= 0 goto label;
v = staticinvoke <oadd.io.netty.channel.unix.Errors: oadd.io.netty.channel.unix.Errors$NativeIoException newIOException(java.lang.String,int)>("epoll_wait", v);
throw v;
label:
return v;
}
static int epollWait(oadd.io.netty.channel.unix.FileDescriptor, oadd.io.netty.channel.epoll.EpollEventArray, boolean) throws java.io.IOException
{
byte v;
int v;
oadd.io.netty.channel.epoll.EpollEventArray v;
oadd.io.netty.channel.unix.FileDescriptor v;
boolean v;
v := @parameter: oadd.io.netty.channel.unix.FileDescriptor;
v := @parameter: oadd.io.netty.channel.epoll.EpollEventArray;
v := @parameter: boolean;
if v == 0 goto label;
v = 0;
goto label;
label:
v = -1;
label:
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollWait(oadd.io.netty.channel.unix.FileDescriptor,oadd.io.netty.channel.epoll.EpollEventArray,int)>(v, v, v);
return v;
}
static int epollWait(oadd.io.netty.channel.unix.FileDescriptor, oadd.io.netty.channel.epoll.EpollEventArray, int) throws java.io.IOException
{
long v;
oadd.io.netty.channel.unix.Errors$NativeIoException v;
int v, v, v, v;
oadd.io.netty.channel.epoll.EpollEventArray v;
oadd.io.netty.channel.unix.FileDescriptor v;
v := @parameter: oadd.io.netty.channel.unix.FileDescriptor;
v := @parameter: oadd.io.netty.channel.epoll.EpollEventArray;
v := @parameter: int;
v = virtualinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: int intValue()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventArray: long memoryAddress()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventArray: int length()>();
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollWait(int,long,int,int)>(v, v, v, v);
if v >= 0 goto label;
v = staticinvoke <oadd.io.netty.channel.unix.Errors: oadd.io.netty.channel.unix.Errors$NativeIoException newIOException(java.lang.String,int)>("epoll_wait", v);
throw v;
label:
return v;
}
public static int epollBusyWait(oadd.io.netty.channel.unix.FileDescriptor, oadd.io.netty.channel.epoll.EpollEventArray) throws java.io.IOException
{
int v, v, v;
oadd.io.netty.channel.epoll.EpollEventArray v;
long v;
oadd.io.netty.channel.unix.Errors$NativeIoException v;
oadd.io.netty.channel.unix.FileDescriptor v;
v := @parameter: oadd.io.netty.channel.unix.FileDescriptor;
v := @parameter: oadd.io.netty.channel.epoll.EpollEventArray;
v = virtualinvoke v.<oadd.io.netty.channel.unix.FileDescriptor: int intValue()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventArray: long memoryAddress()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventArray: int length()>();
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollBusyWait0(int,long,int)>(v, v, v);
if v >= 0 goto label;
v = staticinvoke <oadd.io.netty.channel.unix.Errors: oadd.io.netty.channel.unix.Errors$NativeIoException newIOException(java.lang.String,int)>("epoll_wait", v);
throw v;
label:
return v;
}
private static native int epollWait0(int, long, int, int, int, int);
private static native int epollWait(int, long, int, int);
private static native int epollBusyWait0(int, long, int);
public static void epollCtlAdd(int, int, int) throws java.io.IOException
{
int v, v, v, v;
oadd.io.netty.channel.unix.Errors$NativeIoException v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollCtlAdd0(int,int,int)>(v, v, v);
if v >= 0 goto label;
v = staticinvoke <oadd.io.netty.channel.unix.Errors: oadd.io.netty.channel.unix.Errors$NativeIoException newIOException(java.lang.String,int)>("epoll_ctl", v);
throw v;
label:
return;
}
private static native int epollCtlAdd0(int, int, int);
public static void epollCtlMod(int, int, int) throws java.io.IOException
{
int v, v, v, v;
oadd.io.netty.channel.unix.Errors$NativeIoException v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollCtlMod0(int,int,int)>(v, v, v);
if v >= 0 goto label;
v = staticinvoke <oadd.io.netty.channel.unix.Errors: oadd.io.netty.channel.unix.Errors$NativeIoException newIOException(java.lang.String,int)>("epoll_ctl", v);
throw v;
label:
return;
}
private static native int epollCtlMod0(int, int, int);
public static void epollCtlDel(int, int) throws java.io.IOException
{
int v, v, v;
oadd.io.netty.channel.unix.Errors$NativeIoException v;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int epollCtlDel0(int,int)>(v, v);
if v >= 0 goto label;
v = staticinvoke <oadd.io.netty.channel.unix.Errors: oadd.io.netty.channel.unix.Errors$NativeIoException newIOException(java.lang.String,int)>("epoll_ctl", v);
throw v;
label:
return;
}
private static native int epollCtlDel0(int, int);
public static int splice(int, long, int, long, long) throws java.io.IOException
{
int v, v, v, v;
long v, v, v;
v := @parameter: int;
v := @parameter: long;
v := @parameter: int;
v := @parameter: long;
v := @parameter: long;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int splice0(int,long,int,long,long)>(v, v, v, v, v);
if v < 0 goto label;
return v;
label:
v = staticinvoke <oadd.io.netty.channel.unix.Errors: int ioResult(java.lang.String,int)>("splice", v);
return v;
}
private static native int splice0(int, long, int, long, long);
public static int sendmmsg(int, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[], int, int) throws java.io.IOException
{
int v, v, v, v;
boolean v;
oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[] v;
v := @parameter: int;
v := @parameter: oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.io.netty.channel.unix.Socket: boolean isIPv6Preferred()>();
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int sendmmsg(int,boolean,oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[],int,int)>(v, v, v, v, v);
return v;
}
static int sendmmsg(int, boolean, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[], int, int) throws java.io.IOException
{
int v, v, v, v, v;
boolean v;
oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[] v;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int sendmmsg0(int,boolean,oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[],int,int)>(v, v, v, v, v);
if v < 0 goto label;
return v;
label:
v = staticinvoke <oadd.io.netty.channel.unix.Errors: int ioResult(java.lang.String,int)>("sendmmsg", v);
return v;
}
private static native int sendmmsg0(int, boolean, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[], int, int);
static int recvmmsg(int, boolean, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[], int, int) throws java.io.IOException
{
int v, v, v, v, v;
boolean v;
oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[] v;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int recvmmsg0(int,boolean,oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[],int,int)>(v, v, v, v, v);
if v < 0 goto label;
return v;
label:
v = staticinvoke <oadd.io.netty.channel.unix.Errors: int ioResult(java.lang.String,int)>("recvmmsg", v);
return v;
}
private static native int recvmmsg0(int, boolean, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket[], int, int);
static int recvmsg(int, boolean, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket) throws java.io.IOException
{
oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket v;
int v, v, v;
boolean v;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: int recvmsg0(int,boolean,oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket)>(v, v, v);
if v < 0 goto label;
return v;
label:
v = staticinvoke <oadd.io.netty.channel.unix.Errors: int ioResult(java.lang.String,int)>("recvmsg", v);
return v;
}
private static native int recvmsg0(int, boolean, oadd.io.netty.channel.epoll.NativeDatagramPacketArray$NativeDatagramPacket);
public static native int sizeofEpollEvent();
public static native int offsetofEpollData();
private static void loadNativeLibrary()
{
java.lang.IllegalStateException v;
oadd.io.netty.util.internal.logging.InternalLogger v;
java.lang.ClassLoader v;
java.lang.String v, v, v, v;
java.lang.UnsatisfiedLinkError v, v;
boolean v;
v = staticinvoke <oadd.io.netty.util.internal.PlatformDependent: java.lang.String normalizedOs()>();
v = "linux";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Only supported on Linux");
throw v;
label:
v = staticinvoke <oadd.io.netty.util.internal.PlatformDependent: java.lang.String normalizedArch()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>("netty_transport_native_epoll", v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001_\u0001");
v = staticinvoke <oadd.io.netty.util.internal.PlatformDependent: java.lang.ClassLoader getClassLoader(java.lang.Class)>(class "Loadd/io/netty/channel/epoll/Native;");
label:
staticinvoke <oadd.io.netty.util.internal.NativeLibraryLoader: void load(java.lang.String,java.lang.ClassLoader)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
staticinvoke <oadd.io.netty.util.internal.NativeLibraryLoader: void load(java.lang.String,java.lang.ClassLoader)>("netty_transport_native_epoll", v);
v = <oadd.io.netty.channel.epoll.Native: oadd.io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to load {}", v, v);
label:
goto label;
label:
v := @caughtexception;
staticinvoke <oadd.io.netty.util.internal.ThrowableUtil: void addSuppressed(java.lang.Throwable,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.UnsatisfiedLinkError from label to label with label;
catch java.lang.UnsatisfiedLinkError from label to label with label;
}
private void <init>()
{
oadd.io.netty.channel.epoll.Native v;
v := @this: oadd.io.netty.channel.epoll.Native;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static void <clinit>()
{
java.lang.Throwable v;
java.nio.channels.Selector v;
oadd.io.netty.channel.epoll.Native$1 v;
oadd.io.netty.util.internal.logging.InternalLogger v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v;
boolean v, v, v, v, v, v, v, v;
java.lang.Class[] v;
java.io.IOException v, v, v, v;
java.lang.UnsatisfiedLinkError v;
v = staticinvoke <oadd.io.netty.util.internal.logging.InternalLoggerFactory: oadd.io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Loadd/io/netty/channel/epoll/Native;");
<oadd.io.netty.channel.epoll.Native: oadd.io.netty.util.internal.logging.InternalLogger logger> = v;
v = null;
label:
v = staticinvoke <java.nio.channels.Selector: java.nio.channels.Selector open()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = newarray (java.lang.Class)[5];
v[0] = class "Loadd/io/netty/channel/unix/PeerCredentials;";
v[1] = class "Loadd/io/netty/channel/DefaultFileRegion;";
v[2] = class "Ljava/nio/channels/FileChannel;";
v[3] = class "Ljava/io/FileDescriptor;";
v[4] = class "Loadd/io/netty/channel/epoll/NativeDatagramPacketArray$NativeDatagramPacket;";
staticinvoke <oadd.io.netty.util.internal.ClassInitializerUtil: void tryLoadClasses(java.lang.Class,java.lang.Class[])>(class "Loadd/io/netty/channel/epoll/Native;", v);
label:
staticinvoke <oadd.io.netty.channel.epoll.Native: int offsetofEpollData()>();
label:
if v == null goto label;
virtualinvoke v.<java.nio.channels.Selector: void close()>();
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
staticinvoke <oadd.io.netty.channel.epoll.Native: void loadNativeLibrary()>();
label:
if v == null goto label;
virtualinvoke v.<java.nio.channels.Selector: void close()>();
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
label:
if v == null goto label;
virtualinvoke v.<java.nio.channels.Selector: void close()>();
label:
goto label;
label:
v := @caughtexception;
label:
throw v;
label:
v = new oadd.io.netty.channel.epoll.Native$1;
specialinvoke v.<oadd.io.netty.channel.epoll.Native$1: void <init>()>();
staticinvoke <oadd.io.netty.channel.unix.Unix: void registerInternal(java.lang.Runnable)>(v);
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int epollin()>();
<oadd.io.netty.channel.epoll.Native: int EPOLLIN> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int epollout()>();
<oadd.io.netty.channel.epoll.Native: int EPOLLOUT> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int epollrdhup()>();
<oadd.io.netty.channel.epoll.Native: int EPOLLRDHUP> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int epollet()>();
<oadd.io.netty.channel.epoll.Native: int EPOLLET> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int epollerr()>();
<oadd.io.netty.channel.epoll.Native: int EPOLLERR> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: boolean isSupportingSendmmsg()>();
<oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_SENDMMSG> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: boolean isSupportingRecvmmsg()>();
<oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_RECVMMSG> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.Native: boolean isSupportingUdpSegment()>();
<oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_UDP_SEGMENT> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int tcpFastopenMode()>();
<oadd.io.netty.channel.epoll.Native: int TCP_FASTOPEN_MODE> = v;
v = <oadd.io.netty.channel.epoll.Native: int TCP_FASTOPEN_MODE>;
v = v & 1;
if v != 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_TCP_FASTOPEN_CLIENT> = v;
v = <oadd.io.netty.channel.epoll.Native: int TCP_FASTOPEN_MODE>;
v = v & 2;
if v != 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_TCP_FASTOPEN_SERVER> = v;
v = <oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_TCP_FASTOPEN_CLIENT>;
if v != 0 goto label;
v = <oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_TCP_FASTOPEN_SERVER>;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
<oadd.io.netty.channel.epoll.Native: boolean IS_SUPPORTING_TCP_FASTOPEN> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: int tcpMd5SigMaxKeyLen()>();
<oadd.io.netty.channel.epoll.Native: int TCP_MD5SIG_MAXKEYLEN> = v;
v = staticinvoke <oadd.io.netty.channel.epoll.NativeStaticallyReferencedJniMethods: java.lang.String kernelVersion()>();
<oadd.io.netty.channel.epoll.Native: java.lang.String KERNEL_VERSION> = v;
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.UnsatisfiedLinkError from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
}