package io.netty.channel.kqueue;

import io.netty.channel.unix.Errors;
import io.netty.channel.unix.FileDescriptor;
import io.netty.channel.unix.Socket;
import io.netty.util.internal.NativeLibraryLoader;
import io.netty.util.internal.PlatformDependent;
import io.netty.util.internal.SystemPropertyUtil;
import io.netty.util.internal.ThrowableUtil;
import io.netty.util.internal.logging.InternalLogger;
import io.netty.util.internal.logging.InternalLoggerFactory;
import java.util.Locale;

/* JADX INFO: loaded from: classes.dex */
public final class Native {
    public static final short EVFILT_READ;
    public static final short EVFILT_SOCK;
    public static final short EVFILT_USER;
    public static final short EVFILT_WRITE;
    public static final short EV_ADD;
    public static final short EV_ADD_CLEAR_ENABLE;
    public static final short EV_CLEAR;
    public static final short EV_DELETE;
    public static final short EV_DELETE_DISABLE;
    public static final short EV_DISABLE;
    public static final short EV_ENABLE;
    public static final short EV_EOF;
    public static final short EV_ERROR;
    public static final int NOTE_CONNRESET;
    public static final int NOTE_DISCONNECTED;
    public static final int NOTE_RDHUP;
    public static final int NOTE_READCLOSED;
    private static final InternalLogger logger = InternalLoggerFactory.getInstance((Class<?>) Native.class);

    static {
        try {
            sizeofKEvent();
        } catch (UnsatisfiedLinkError unused) {
            loadNativeLibrary();
        }
        Socket.initialize();
        short sEvAdd = KQueueStaticallyReferencedJniMethods.evAdd();
        EV_ADD = sEvAdd;
        short sEvEnable = KQueueStaticallyReferencedJniMethods.evEnable();
        EV_ENABLE = sEvEnable;
        short sEvDisable = KQueueStaticallyReferencedJniMethods.evDisable();
        EV_DISABLE = sEvDisable;
        short sEvDelete = KQueueStaticallyReferencedJniMethods.evDelete();
        EV_DELETE = sEvDelete;
        short sEvClear = KQueueStaticallyReferencedJniMethods.evClear();
        EV_CLEAR = sEvClear;
        EV_ERROR = KQueueStaticallyReferencedJniMethods.evError();
        EV_EOF = KQueueStaticallyReferencedJniMethods.evEOF();
        short sNoteReadClosed = KQueueStaticallyReferencedJniMethods.noteReadClosed();
        NOTE_READCLOSED = sNoteReadClosed;
        short sNoteConnReset = KQueueStaticallyReferencedJniMethods.noteConnReset();
        NOTE_CONNRESET = sNoteConnReset;
        short sNoteDisconnected = KQueueStaticallyReferencedJniMethods.noteDisconnected();
        NOTE_DISCONNECTED = sNoteDisconnected;
        NOTE_RDHUP = sNoteReadClosed | sNoteConnReset | sNoteDisconnected;
        EV_ADD_CLEAR_ENABLE = (short) (sEvAdd | sEvClear | sEvEnable);
        EV_DELETE_DISABLE = (short) (sEvDelete | sEvDisable);
        EVFILT_READ = KQueueStaticallyReferencedJniMethods.evfiltRead();
        EVFILT_WRITE = KQueueStaticallyReferencedJniMethods.evfiltWrite();
        EVFILT_USER = KQueueStaticallyReferencedJniMethods.evfiltUser();
        EVFILT_SOCK = KQueueStaticallyReferencedJniMethods.evfiltSock();
    }

    private Native() {
    }

    public static native int keventAddUserEvent(int i2, int i3);

    public static native int keventTriggerUserEvent(int i2, int i3);

    private static native int keventWait(int i2, long j2, int i3, long j3, int i4, int i5, int i6);

    public static int keventWait(int i2, KQueueEventArray kQueueEventArray, KQueueEventArray kQueueEventArray2, int i3, int i4) throws Errors.NativeIoException {
        int iKeventWait = keventWait(i2, kQueueEventArray.memoryAddress(), kQueueEventArray.size(), kQueueEventArray2.memoryAddress(), kQueueEventArray2.capacity(), i3, i4);
        if (iKeventWait >= 0) {
            return iKeventWait;
        }
        throw Errors.newIOException("kevent", iKeventWait);
    }

    private static native int kqueueCreate();

    private static void loadNativeLibrary() throws Throwable {
        String strTrim = SystemPropertyUtil.get("os.name").toLowerCase(Locale.UK).trim();
        if (!strTrim.startsWith("mac") && !strTrim.contains("bsd") && !strTrim.startsWith("darwin")) {
            throw new IllegalStateException("Only supported on BSD");
        }
        String str = "netty_transport_native_kqueue_" + PlatformDependent.normalizedArch();
        ClassLoader classLoader = PlatformDependent.getClassLoader(Native.class);
        try {
            NativeLibraryLoader.load(str, classLoader);
        } catch (UnsatisfiedLinkError e2) {
            try {
                NativeLibraryLoader.load("netty_transport_native_kqueue", classLoader);
                logger.debug("Failed to load {}", str, e2);
            } catch (UnsatisfiedLinkError e3) {
                ThrowableUtil.addSuppressed(e2, e3);
                throw e2;
            }
        }
    }

    public static FileDescriptor newKQueue() {
        return new FileDescriptor(kqueueCreate());
    }

    public static native int offsetofKEventFFlags();

    public static native int offsetofKEventFilter();

    public static native int offsetofKEventFlags();

    public static native int offsetofKEventIdent();

    public static native int offsetofKeventData();

    public static native int sizeofKEvent();
}
