public class com.oracle.svm.core.posix.PosixUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.posix.PosixUtils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.posix.PosixUtils this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.posix.PosixUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/posix/PosixUtils;

  static java.lang.String setLocale(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String category
        start local 1 // java.lang.String locale
         0: .line 62
            aload 0 /* category */
            invokestatic com.oracle.svm.core.posix.PosixUtils.getCategory:(Ljava/lang/String;)I
            istore 2 /* intCategory */
        start local 2 // int intCategory
         1: .line 64
            iload 2 /* intCategory */
            aload 1 /* locale */
            invokestatic com.oracle.svm.core.posix.PosixUtils.setLocale:(ILjava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // int intCategory
        end local 1 // java.lang.String locale
        end local 0 // java.lang.String category
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0     category  Ljava/lang/String;
            0    2     1       locale  Ljava/lang/String;
            1    2     2  intCategory  I
    MethodParameters:
          Name  Flags
      category  
      locale    

  private static java.lang.String setLocale(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // int category
        start local 1 // java.lang.String locale
         0: .line 68
            aload 1 /* locale */
            ifnonnull 3
         1: .line 69
            iload 0 /* category */
            invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.nativeimage.c.type.CCharPointer
            invokestatic com.oracle.svm.core.posix.headers.Locale.setlocale:(ILorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 2 /* cstrResult */
        start local 2 // org.graalvm.nativeimage.c.type.CCharPointer cstrResult
         2: .line 70
            aload 2 /* cstrResult */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
            areturn
        end local 2 // org.graalvm.nativeimage.c.type.CCharPointer cstrResult
         3: .line 72
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         4: aload 1 /* locale */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            astore 4 /* localePin */
        start local 4 // org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder localePin
         5: .line 73
            aload 4 /* localePin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 5 /* cstrLocale */
        start local 5 // org.graalvm.nativeimage.c.type.CCharPointer cstrLocale
         6: .line 74
            iload 0 /* category */
            aload 5 /* cstrLocale */
            invokestatic com.oracle.svm.core.posix.headers.Locale.setlocale:(ILorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 6 /* cstrResult */
        start local 6 // org.graalvm.nativeimage.c.type.CCharPointer cstrResult
         7: .line 75
            aload 6 /* cstrResult */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
         8: .line 76
            aload 4 /* localePin */
            ifnull 9
            aload 4 /* localePin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
         9: .line 75
      StackMap locals: int java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder org.graalvm.nativeimage.c.type.CCharPointer org.graalvm.nativeimage.c.type.CCharPointer
      StackMap stack: java.lang.String
            areturn
        end local 6 // org.graalvm.nativeimage.c.type.CCharPointer cstrResult
        end local 5 // org.graalvm.nativeimage.c.type.CCharPointer cstrLocale
      StackMap locals: int java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder
      StackMap stack: java.lang.Throwable
        10: astore 2
        11: .line 76
            aload 4 /* localePin */
            ifnull 12
            aload 4 /* localePin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
        end local 4 // org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder localePin
      StackMap locals:
      StackMap stack:
        12: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 3
            aload 2
            ifnonnull 14
            aload 3
            astore 2
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 2
            aload 3
            if_acmpeq 15
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 2
            athrow
        end local 1 // java.lang.String locale
        end local 0 // int category
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0    category  I
            0   16     1      locale  Ljava/lang/String;
            2    3     2  cstrResult  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            5   12     4   localePin  Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            6   10     5  cstrLocale  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            7   10     6  cstrResult  Lorg/graalvm/nativeimage/c/type/CCharPointer;
      Exception table:
        from    to  target  type
           5     8      10  any
           4     9      13  any
          10    13      13  any
    MethodParameters:
          Name  Flags
      category  
      locale    

  private static int getCategory(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String category
         0: .line 80
            aload 0 /* category */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 7
          -2054380871: 1
          -1814695899: 2
            739265685: 3
           1000197908: 4
           1129785749: 5
           1135159614: 6
           1427039541: 7
              default: 15
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "LC_ALL"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 15
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "LC_NUMERIC"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 15
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "LC_TIME"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 15
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "LC_MESSAGES"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 15
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "LC_MONETARY"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 15
      StackMap locals:
      StackMap stack:
         6: aload 1
            ldc "LC_COLLATE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 15
      StackMap locals:
      StackMap stack:
         7: aload 1
            ldc "LC_CTYPE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 15
         8: .line 82
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_ALL:()I
            ireturn
         9: .line 84
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_COLLATE:()I
            ireturn
        10: .line 86
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_CTYPE:()I
            ireturn
        11: .line 88
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_MONETARY:()I
            ireturn
        12: .line 90
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_NUMERIC:()I
            ireturn
        13: .line 92
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_TIME:()I
            ireturn
        14: .line 94
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_MESSAGES:()I
            ireturn
        15: .line 97
      StackMap locals:
      StackMap stack:
            ldc Lorg/graalvm/nativeimage/Platform$LINUX;
            invokestatic org.graalvm.nativeimage.Platform.includedIn:(Ljava/lang/Class;)Z
            ifeq 29
            ldc Lcom/oracle/svm/core/c/libc/LibCBase;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.c.libc.LibCBase
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lcom/oracle/svm/core/posix/linux/libc/GLibC;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 29
        16: .line 98
            aload 0 /* category */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 6
          -1130389732: 17
           -961974004: 18
           -360083914: 19
            739079251: 20
           1438470308: 21
           1767202004: 22
              default: 29
          }
      StackMap locals: java.lang.String top java.lang.String
      StackMap stack:
        17: aload 2
            ldc "LC_TELEPHONE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
            goto 29
      StackMap locals:
      StackMap stack:
        18: aload 2
            ldc "LC_ADDRESS"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 29
      StackMap locals:
      StackMap stack:
        19: aload 2
            ldc "LC_IDENTIFICATION"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
            goto 29
      StackMap locals:
      StackMap stack:
        20: aload 2
            ldc "LC_NAME"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 29
      StackMap locals:
      StackMap stack:
        21: aload 2
            ldc "LC_PAPER"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            goto 29
      StackMap locals:
      StackMap stack:
        22: aload 2
            ldc "LC_MEASUREMENT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 29
        23: .line 100
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_PAPER:()I
            ireturn
        24: .line 102
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_NAME:()I
            ireturn
        25: .line 104
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_ADDRESS:()I
            ireturn
        26: .line 106
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_TELEPHONE:()I
            ireturn
        27: .line 108
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_MEASUREMENT:()I
            ireturn
        28: .line 110
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.posix.headers.Locale.LC_IDENTIFICATION:()I
            ireturn
        29: .line 113
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown locale category: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* category */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String category
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0  category  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      category  

  public static int getFD(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.FileDescriptor descriptor
         0: .line 123
            aload 0 /* descriptor */
            ldc Lcom/oracle/svm/core/posix/PosixUtils$Target_java_io_FileDescriptor;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.posix.PosixUtils$Target_java_io_FileDescriptor
            getfield com.oracle.svm.core.posix.PosixUtils$Target_java_io_FileDescriptor.fd:I
            ireturn
        end local 0 // java.io.FileDescriptor descriptor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  descriptor  Ljava/io/FileDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  public static void setFD(java.io.FileDescriptor, int);
    descriptor: (Ljava/io/FileDescriptor;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.FileDescriptor descriptor
        start local 1 // int fd
         0: .line 127
            aload 0 /* descriptor */
            ldc Lcom/oracle/svm/core/posix/PosixUtils$Target_java_io_FileDescriptor;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.posix.PosixUtils$Target_java_io_FileDescriptor
            iload 1 /* fd */
            putfield com.oracle.svm.core.posix.PosixUtils$Target_java_io_FileDescriptor.fd:I
         1: .line 128
            return
        end local 1 // int fd
        end local 0 // java.io.FileDescriptor descriptor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  descriptor  Ljava/io/FileDescriptor;
            0    2     1          fd  I
    MethodParameters:
            Name  Flags
      descriptor  
      fd          

  public static java.lang.String lastErrorString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String defaultMsg
         0: .line 132
            invokestatic com.oracle.svm.core.CErrorNumber.getCErrorNumber:()I
            istore 1 /* errno */
        start local 1 // int errno
         1: .line 133
            iload 1 /* errno */
            aload 0 /* defaultMsg */
            invokestatic com.oracle.svm.core.posix.PosixUtils.errorString:(ILjava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // int errno
        end local 0 // java.lang.String defaultMsg
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  defaultMsg  Ljava/lang/String;
            1    2     1       errno  I
    MethodParameters:
            Name  Flags
      defaultMsg  

  public static java.io.IOException newIOExceptionWithLastError(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/IOException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String defaultMsg
         0: .line 137
            new java.io.IOException
            dup
            aload 0 /* defaultMsg */
            invokestatic com.oracle.svm.core.posix.PosixUtils.lastErrorString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String defaultMsg
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  defaultMsg  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      defaultMsg  

  public static java.lang.String errorString(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // int errno
        start local 1 // java.lang.String defaultMsg
         0: .line 142
            ldc ""
            astore 2 /* result */
        start local 2 // java.lang.String result
         1: .line 143
            iload 0 /* errno */
            ifeq 3
         2: .line 144
            iload 0 /* errno */
            invokestatic com.oracle.svm.core.posix.headers.Errno.strerror:(I)Lorg/graalvm/nativeimage/c/type/CCharPointer;
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
            astore 2 /* result */
         3: .line 146
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* result */
            invokevirtual java.lang.String.length:()I
            ifeq 4
            aload 2 /* result */
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* defaultMsg */
      StackMap locals:
      StackMap stack: java.lang.String
         5: areturn
        end local 2 // java.lang.String result
        end local 1 // java.lang.String defaultMsg
        end local 0 // int errno
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0       errno  I
            0    6     1  defaultMsg  Ljava/lang/String;
            1    6     2      result  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      errno       
      defaultMsg  

  public static int getpid();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 150
            invokestatic com.oracle.svm.core.posix.headers.Unistd.getpid:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int getpid(java.lang.Process);
    descriptor: (Ljava/lang/Process;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Process process
         0: .line 171
            aload 0 /* process */
            ldc Lcom/oracle/svm/core/posix/PosixUtils$Target_java_lang_UNIXProcess;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.posix.PosixUtils$Target_java_lang_UNIXProcess
            astore 1 /* instance */
        start local 1 // com.oracle.svm.core.posix.PosixUtils$Target_java_lang_UNIXProcess instance
         1: .line 172
            aload 1 /* instance */
            getfield com.oracle.svm.core.posix.PosixUtils$Target_java_lang_UNIXProcess.pid:I
            ireturn
        end local 1 // com.oracle.svm.core.posix.PosixUtils$Target_java_lang_UNIXProcess instance
        end local 0 // java.lang.Process process
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   process  Ljava/lang/Process;
            1    2     1  instance  Lcom/oracle/svm/core/posix/PosixUtils$Target_java_lang_UNIXProcess;
    MethodParameters:
         Name  Flags
      process  

  public static int waitForProcessExit(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // int ppid
         0: .line 176
            ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
            invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.nativeimage.c.type.CIntPointer
            astore 1 /* statusptr */
        start local 1 // org.graalvm.nativeimage.c.type.CIntPointer statusptr
         1: .line 177
            iload 0 /* ppid */
            aload 1 /* statusptr */
            iconst_0
            invokestatic com.oracle.svm.core.posix.headers.Wait.waitpid:(ILorg/graalvm/nativeimage/c/type/CIntPointer;I)I
            ifge 7
         2: .line 178
            invokestatic com.oracle.svm.core.CErrorNumber.getCErrorNumber:()I
            invokestatic com.oracle.svm.core.posix.headers.Errno.ECHILD:()I
            if_icmpne 4
         3: .line 179
            iconst_0
            ireturn
         4: .line 180
      StackMap locals: org.graalvm.nativeimage.c.type.CIntPointer
      StackMap stack:
            invokestatic com.oracle.svm.core.CErrorNumber.getCErrorNumber:()I
            invokestatic com.oracle.svm.core.posix.headers.Errno.EINTR:()I
            if_icmpne 6
         5: .line 181
            goto 7
         6: .line 183
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
         7: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* statusptr */
            invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
            istore 2 /* status */
        start local 2 // int status
         8: .line 188
            iload 2 /* status */
            invokestatic com.oracle.svm.core.posix.headers.Wait.WIFEXITED:(I)Z
            ifeq 10
         9: .line 189
            iload 2 /* status */
            invokestatic com.oracle.svm.core.posix.headers.Wait.WEXITSTATUS:(I)I
            ireturn
        10: .line 190
      StackMap locals: int
      StackMap stack:
            iload 2 /* status */
            invokestatic com.oracle.svm.core.posix.headers.Wait.WIFSIGNALED:(I)Z
            ifeq 12
        11: .line 192
            sipush 128
            iload 2 /* status */
            invokestatic com.oracle.svm.core.posix.headers.Wait.WTERMSIG:(I)I
            iadd
            ireturn
        12: .line 194
      StackMap locals:
      StackMap stack:
            iload 2 /* status */
            ireturn
        end local 2 // int status
        end local 1 // org.graalvm.nativeimage.c.type.CIntPointer statusptr
        end local 0 // int ppid
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       ppid  I
            1   13     1  statusptr  Lorg/graalvm/nativeimage/c/type/CIntPointer;
            8   13     2     status  I
    MethodParameters:
      Name  Flags
      ppid  

  public static boolean writeBytes(java.io.FileDescriptor, org.graalvm.nativeimage.c.type.CCharPointer, org.graalvm.word.UnsignedWord);
    descriptor: (Ljava/io/FileDescriptor;Lorg/graalvm/nativeimage/c/type/CCharPointer;Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.io.FileDescriptor descriptor
        start local 1 // org.graalvm.nativeimage.c.type.CCharPointer bytes
        start local 2 // org.graalvm.word.UnsignedWord length
         0: .line 202
            aload 1 /* bytes */
            astore 3 /* curBuf */
        start local 3 // org.graalvm.nativeimage.c.type.CCharPointer curBuf
         1: .line 203
            aload 2 /* length */
            astore 4 /* curLen */
        start local 4 // org.graalvm.word.UnsignedWord curLen
         2: .line 204
            goto 11
         3: .line 205
      StackMap locals: org.graalvm.nativeimage.c.type.CCharPointer org.graalvm.word.UnsignedWord
      StackMap stack:
            aload 0 /* descriptor */
            invokestatic com.oracle.svm.core.posix.PosixUtils.getFD:(Ljava/io/FileDescriptor;)I
            istore 5 /* fd */
        start local 5 // int fd
         4: .line 206
            iload 5 /* fd */
            iconst_m1
            if_icmpne 6
         5: .line 207
            iconst_0
            ireturn
         6: .line 210
      StackMap locals: int
      StackMap stack:
            iload 5 /* fd */
            aload 3 /* curBuf */
            aload 4 /* curLen */
            invokestatic com.oracle.svm.core.posix.headers.Unistd.write:(ILorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/SignedWord;
            astore 6 /* n */
        start local 6 // org.graalvm.word.SignedWord n
         7: .line 212
            aload 6 /* n */
            iconst_m1
            invokeinterface org.graalvm.word.SignedWord.equal:(I)Z
            ifeq 9
         8: .line 213
            iconst_0
            ireturn
         9: .line 215
      StackMap locals: org.graalvm.word.SignedWord
      StackMap stack:
            aload 3 /* curBuf */
            aload 6 /* n */
            invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.addressOf:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 3 /* curBuf */
        10: .line 216
            aload 4 /* curLen */
            aload 6 /* n */
            checkcast org.graalvm.word.UnsignedWord
            invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 4 /* curLen */
        end local 6 // org.graalvm.word.SignedWord n
        end local 5 // int fd
        11: .line 204
      StackMap locals:
      StackMap stack:
            aload 4 /* curLen */
            iconst_0
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(I)Z
            ifne 3
        12: .line 218
            iconst_1
            ireturn
        end local 4 // org.graalvm.word.UnsignedWord curLen
        end local 3 // org.graalvm.nativeimage.c.type.CCharPointer curBuf
        end local 2 // org.graalvm.word.UnsignedWord length
        end local 1 // org.graalvm.nativeimage.c.type.CCharPointer bytes
        end local 0 // java.io.FileDescriptor descriptor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0  descriptor  Ljava/io/FileDescriptor;
            0   13     1       bytes  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            0   13     2      length  Lorg/graalvm/word/UnsignedWord;
            1   13     3      curBuf  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            2   13     4      curLen  Lorg/graalvm/word/UnsignedWord;
            4   11     5          fd  I
            7   11     6           n  Lorg/graalvm/word/SignedWord;
    MethodParameters:
            Name  Flags
      descriptor  
      bytes       
      length      

  public static boolean flush(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.io.FileDescriptor descriptor
         0: .line 222
            aload 0 /* descriptor */
            invokestatic com.oracle.svm.core.posix.PosixUtils.getFD:(Ljava/io/FileDescriptor;)I
            istore 1 /* fd */
        start local 1 // int fd
         1: .line 223
            iload 1 /* fd */
            invokestatic com.oracle.svm.core.posix.headers.Unistd.fsync:(I)I
            ifne 2
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // int fd
        end local 0 // java.io.FileDescriptor descriptor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  descriptor  Ljava/io/FileDescriptor;
            1    3     1          fd  I
    MethodParameters:
            Name  Flags
      descriptor  

  public static org.graalvm.word.PointerBase dlopen(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lorg/graalvm/word/PointerBase;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.String file
        start local 1 // int mode
         0: .line 227
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 0 /* file */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            astore 4 /* pathPin */
        start local 4 // org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder pathPin
         2: .line 228
            aload 4 /* pathPin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 5 /* pathPtr */
        start local 5 // org.graalvm.nativeimage.c.type.CCharPointer pathPtr
         3: .line 229
            aload 5 /* pathPtr */
            iload 1 /* mode */
            invokestatic com.oracle.svm.core.posix.headers.Dlfcn.dlopen:(Lorg/graalvm/nativeimage/c/type/CCharPointer;I)Lorg/graalvm/word/PointerBase;
         4: .line 230
            aload 4 /* pathPin */
            ifnull 5
            aload 4 /* pathPin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
         5: .line 229
      StackMap locals: java.lang.String int java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder org.graalvm.nativeimage.c.type.CCharPointer
      StackMap stack: org.graalvm.word.PointerBase
            areturn
        end local 5 // org.graalvm.nativeimage.c.type.CCharPointer pathPtr
      StackMap locals: java.lang.String int java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 230
            aload 4 /* pathPin */
            ifnull 8
            aload 4 /* pathPin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
        end local 4 // org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder pathPin
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
        end local 1 // int mode
        end local 0 // java.lang.String file
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     file  Ljava/lang/String;
            0   12     1     mode  I
            2    8     4  pathPin  Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            3    6     5  pathPtr  Lorg/graalvm/nativeimage/c/type/CCharPointer;
      Exception table:
        from    to  target  type
           2     4       6  any
           1     5       9  any
           6     9       9  any
    MethodParameters:
      Name  Flags
      file  
      mode  

  public static <T extends org.graalvm.word.PointerBase> T dlsym(org.graalvm.word.PointerBase, java.lang.String);
    descriptor: (Lorg/graalvm/word/PointerBase;Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.graalvm.word.PointerBase handle
        start local 1 // java.lang.String name
         0: .line 234
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 1 /* name */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            astore 4 /* namePin */
        start local 4 // org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder namePin
         2: .line 235
            aload 4 /* namePin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 5 /* namePtr */
        start local 5 // org.graalvm.nativeimage.c.type.CCharPointer namePtr
         3: .line 236
            aload 0 /* handle */
            aload 5 /* namePtr */
            invokestatic com.oracle.svm.core.posix.headers.Dlfcn.dlsym:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/word/PointerBase;
         4: .line 237
            aload 4 /* namePin */
            ifnull 5
            aload 4 /* namePin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
         5: .line 236
      StackMap locals: org.graalvm.word.PointerBase java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder org.graalvm.nativeimage.c.type.CCharPointer
      StackMap stack: org.graalvm.word.PointerBase
            areturn
        end local 5 // org.graalvm.nativeimage.c.type.CCharPointer namePtr
      StackMap locals: org.graalvm.word.PointerBase java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 237
            aload 4 /* namePin */
            ifnull 8
            aload 4 /* namePin */
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
        end local 4 // org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder namePin
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.word.PointerBase handle
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0   handle  Lorg/graalvm/word/PointerBase;
            0   12     1     name  Ljava/lang/String;
            2    8     4  namePin  Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            3    6     5  namePtr  Lorg/graalvm/nativeimage/c/type/CCharPointer;
      Exception table:
        from    to  target  type
           2     4       6  any
           1     5       9  any
           6     9       9  any
    Signature: <T::Lorg/graalvm/word/PointerBase;>(Lorg/graalvm/word/PointerBase;Ljava/lang/String;)TT;
    MethodParameters:
        Name  Flags
      handle  
      name    

  public static java.lang.String dlerror();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 241
            invokestatic com.oracle.svm.core.posix.headers.Dlfcn.dlerror:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void checkStatusIs0(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int status
        start local 1 // java.lang.String message
         0: .line 246
            iload 0 /* status */
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: aload 1 /* message */
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         3: .line 247
            return
        end local 1 // java.lang.String message
        end local 0 // int status
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   status  I
            0    4     1  message  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
         Name  Flags
      status   
      message  

  public static boolean readEntirely(int, org.graalvm.nativeimage.c.type.CCharPointer, int);
    descriptor: (ILorg/graalvm/nativeimage/c/type/CCharPointer;I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // int fd
        start local 1 // org.graalvm.nativeimage.c.type.CCharPointer buffer
        start local 2 // int bufferLen
         0: .line 251
            iconst_0
            istore 3 /* bufferOffset */
        start local 3 // int bufferOffset
         1: .line 253
      StackMap locals: int
      StackMap stack:
            iload 0 /* fd */
            aload 1 /* buffer */
            iload 2 /* bufferLen */
            iconst_1
            isub
            iload 3 /* bufferOffset */
            invokestatic com.oracle.svm.core.posix.PosixUtils.readBytes:(ILorg/graalvm/nativeimage/c/type/CCharPointer;II)I
            istore 4 /* readBytes */
        start local 4 // int readBytes
         2: .line 254
            iload 4 /* readBytes */
            ifge 4
         3: .line 255
            iconst_0
            ireturn
         4: .line 257
      StackMap locals: int
      StackMap stack:
            iload 3 /* bufferOffset */
            iload 4 /* readBytes */
            iadd
            istore 3 /* bufferOffset */
         5: .line 258
            iload 4 /* readBytes */
            ifne 1
         6: .line 259
            aload 1 /* buffer */
            iload 3 /* bufferOffset */
            iconst_0
            invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.write:(IB)V
         7: .line 260
            iconst_1
            ireturn
        end local 4 // int readBytes
        end local 3 // int bufferOffset
        end local 2 // int bufferLen
        end local 1 // org.graalvm.nativeimage.c.type.CCharPointer buffer
        end local 0 // int fd
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0            fd  I
            0    8     1        buffer  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            0    8     2     bufferLen  I
            1    8     3  bufferOffset  I
            2    8     4     readBytes  I
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
           Name  Flags
      fd         
      buffer     
      bufferLen  

  public static int readBytes(int, org.graalvm.nativeimage.c.type.CCharPointer, int, int);
    descriptor: (ILorg/graalvm/nativeimage/c/type/CCharPointer;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int fd
        start local 1 // org.graalvm.nativeimage.c.type.CCharPointer buffer
        start local 2 // int bufferLen
        start local 3 // int readOffset
         0: .line 267
            iconst_m1
            istore 4 /* readBytes */
        start local 4 // int readBytes
         1: .line 268
            iload 3 /* readOffset */
            iload 2 /* bufferLen */
            if_icmpge 4
         2: .line 270
      StackMap locals: int
      StackMap stack:
            iload 0 /* fd */
            aload 1 /* buffer */
            iload 3 /* readOffset */
            invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.addressOf:(I)Lorg/graalvm/nativeimage/c/type/CCharPointer;
            iload 2 /* bufferLen */
            iload 3 /* readOffset */
            isub
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.posix.headers.Unistd$NoTransitions.read:(ILorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/SignedWord;
            invokeinterface org.graalvm.word.SignedWord.rawValue:()J
            l2i
            istore 4 /* readBytes */
         3: .line 271
            iload 4 /* readBytes */
            iconst_m1
            if_icmpne 4
            invokestatic com.oracle.svm.core.CErrorNumber.getCErrorNumber:()I
            invokestatic com.oracle.svm.core.posix.headers.Errno.EINTR:()I
            if_icmpeq 2
         4: .line 273
      StackMap locals:
      StackMap stack:
            iload 4 /* readBytes */
            ireturn
        end local 4 // int readBytes
        end local 3 // int readOffset
        end local 2 // int bufferLen
        end local 1 // org.graalvm.nativeimage.c.type.CCharPointer buffer
        end local 0 // int fd
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0          fd  I
            0    5     1      buffer  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            0    5     2   bufferLen  I
            0    5     3  readOffset  I
            1    5     4   readBytes  I
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
            Name  Flags
      fd          
      buffer      
      bufferLen   
      readOffset  
}
SourceFile: "PosixUtils.java"
NestMembers:
  com.oracle.svm.core.posix.PosixUtils$ProcessNameProvider  com.oracle.svm.core.posix.PosixUtils$Target_java_io_FileDescriptor  com.oracle.svm.core.posix.PosixUtils$Target_java_lang_UNIXProcess
InnerClasses:
  private final ProcessNameProvider = com.oracle.svm.core.posix.PosixUtils$ProcessNameProvider of com.oracle.svm.core.posix.PosixUtils
  private final Target_java_io_FileDescriptor = com.oracle.svm.core.posix.PosixUtils$Target_java_io_FileDescriptor of com.oracle.svm.core.posix.PosixUtils
  private final Target_java_lang_UNIXProcess = com.oracle.svm.core.posix.PosixUtils$Target_java_lang_UNIXProcess of com.oracle.svm.core.posix.PosixUtils
  public NoTransitions = com.oracle.svm.core.posix.headers.Unistd$NoTransitions of com.oracle.svm.core.posix.headers.Unistd
  public abstract LINUX = org.graalvm.nativeimage.Platform$LINUX of org.graalvm.nativeimage.Platform
  public abstract CCharPointerHolder = org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder of org.graalvm.nativeimage.c.type.CTypeConversion