public static POSIX loadLinuxPOSIX(POSIXHandler handler) { return new LinuxPOSIX(DefaultLibCProvider.INSTANCE, handler); }
@Override public FileStat fstat(int fd) { FileStat stat = allocateStat(); int ret = fstat(fd, stat); if (ret < 0) handler.error(Errno.valueOf(errno()), "fstat", Integer.toString(fd)); return stat; }
@Override public FileStat lstat(String path) { FileStat stat = allocateStat(); int ret = lstat(path, stat); if (ret < 0) handler.error(Errno.valueOf(errno()), "lstat", path); return stat; }
@Override public FileStat stat(String path) { if (use_xstat64) { try { FileStat stat = allocateStat(); if (((LinuxLibC) libc()).__xstat64(statVersion, path, stat) < 0) { handler.error(Errno.valueOf(errno()), "stat", path); } return stat; } catch (UnsatisfiedLinkError ex) { use_xstat64 = false; return old_stat(path); } } else { return old_stat(path); } }
@Override public FileStat lstat(String path) { if (use_lxstat64) { try { FileStat stat = allocateStat(); if (((LinuxLibC) libc()).__lxstat64(statVersion, path, stat) < 0) { handler.error(Errno.valueOf(errno()), "lstat", path); } return stat; } catch (UnsatisfiedLinkError ex) { use_lxstat64 = false; return old_lstat(path); } } else { return old_lstat(path); } }
@Override public FileStat fstat(int fd) { if (use_fxstat64) { try { FileStat stat = allocateStat(); if (((LinuxLibC) libc()).__fxstat64(statVersion, fd, stat) < 0) { handler.error(Errno.valueOf(errno()), "fstat", Integer.toString(fd)); } return stat; } catch (UnsatisfiedLinkError ex) { use_fxstat64 = false; return old_fstat(fd); } } else { return old_fstat(fd); } }
@Override public int fstat(int fd, FileStat stat) { if (use_fxstat64) { int ret; try { if ((ret = ((LinuxLibC) libc()).__fxstat64(statVersion, fd, stat)) < 0) { handler.error(Errno.valueOf(errno()), "fstat", Integer.toString(fd)); } return ret; } catch (UnsatisfiedLinkError ex) { use_fxstat64 = false; return old_fstat(fd, stat); } } else { return old_fstat(fd, stat); } }
@Override public FileStat stat(String path) { FileStat stat = allocateStat(); int ret = stat(path, stat); if (ret < 0) handler.error(Errno.valueOf(errno()), "stat", path); return stat; }
LinuxPOSIX(LibCProvider libcProvider, POSIXHandler handler) { super(libcProvider, handler); if (Platform.IS_32_BIT) { statVersion = 3; } else { FileStat stat = allocateStat(); if (((LinuxLibC) libc()).__xstat64(0, "/dev/null", stat) < 0) { statVersion = 1; } else { statVersion = 0; } } }
public long sysconf(Sysconf name) { return libc().sysconf(name); }
@Override public int fstat(FileDescriptor fileDescriptor, FileStat stat) { return fstat(helper.getfd(fileDescriptor), stat); }
@Override public int fstat(int fd, FileStat stat) { if (use_fxstat64) { int ret; try { if ((ret = ((LinuxLibC) libc()).__fxstat64(statVersion, fd, stat)) < 0) { handler.error(Errno.valueOf(errno()), "fstat", Integer.toString(fd)); } return ret; } catch (UnsatisfiedLinkError ex) { use_fxstat64 = false; return old_fstat(fd, stat); } } else { return old_fstat(fd, stat); } }
@Override public FileStat lstat(String path) { FileStat stat = allocateStat(); int ret = lstat(path, stat); if (ret < 0) handler.error(Errno.valueOf(errno()), "lstat", path); return stat; }
@Override public FileStat stat(String path) { FileStat stat = allocateStat(); int ret = stat(path, stat); if (ret < 0) handler.error(Errno.valueOf(errno()), "stat", path); return stat; }
LinuxPOSIX(LibCProvider libcProvider, POSIXHandler handler) { super(libcProvider, handler); if (Platform.IS_32_BIT) { statVersion = 3; } else { FileStat stat = allocateStat(); if (((LinuxLibC) libc()).__xstat64(0, "/dev/null", stat) < 0) { statVersion = 1; } else { statVersion = 0; } } }
public long sysconf(Sysconf name) { return libc().sysconf(name); }
@Override public FileStat fstat(FileDescriptor fileDescriptor) { return fstat(helper.getfd(fileDescriptor)); }