summaryrefslogtreecommitdiff
path: root/UGlibC_compat.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2008-06-14 18:34:02 +0200
committerTomas Bzatek <tbzatek@users.sourceforge.net>2008-06-14 18:34:02 +0200
commitc9a02bf590248c0bd8e1343198d3f9c13ce118c1 (patch)
treecbd1b07cea6f3ccea7fc98c58d65f568e69e8527 /UGlibC_compat.pas
parentb1dfa430702770c83c815bec24f1dc72175e1e5e (diff)
downloadtuxcmd-c9a02bf590248c0bd8e1343198d3f9c13ce118c1.tar.xz
Port to new ULibc unit, drop dependency to compiler Libc libraryv0.6.43
(preparation for PPC port)
Diffstat (limited to 'UGlibC_compat.pas')
-rw-r--r--UGlibC_compat.pas267
1 files changed, 0 insertions, 267 deletions
diff --git a/UGlibC_compat.pas b/UGlibC_compat.pas
deleted file mode 100644
index 95cd75d..0000000
--- a/UGlibC_compat.pas
+++ /dev/null
@@ -1,267 +0,0 @@
-(*
- Tux Commander - UGlibC_compat - glibc compatibility for 32- and 64-bit platforms
- Copyright (C) 2008 Tomas Bzatek <tbzatek@users.sourceforge.net>
- Check for updates on tuxcmd.sourceforge.net
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*)
-unit UGlibC_compat;
-
-interface
-uses Classes, SysUtils {$IFNDEF CPU64}, Libc{$ENDIF};
-
-
-const GLIBC_LIB = 'libc.so.6';
-
-type
-{$IFDEF KYLIX}
- QWORD = Int64;
-{$ENDIF}
-
-{$IFNDEF CPU64}
- TTimeT = DWORD;
-{$ELSE}
- TTimeT = QWORD;
-{$ENDIF}
-
- PGlibc_IOFile = pointer;
-
- TGlibc_timespec = packed record
-{$IFNDEF CPU64} // 32-bit platform
- tv_sec: longint; // Seconds.
- tv_nsec: longint; // Nanoseconds.
-{$ELSE} // 64-bit platform
- tv_sec: Int64; // Seconds.
- tv_nsec: Int64; // Nanoseconds.
-{$ENDIF}
- end;
-
- PGlibc_stat = ^TGlibc_stat;
-{$IFDEF KYLIX}
- TGlibc_stat = TStatBuf;
-{$ELSE}
-{$IFNDEF CPU64} // 32-bit platform
- TGlibc_stat = packed record
- st_dev : __dev_t;
- __pad1 : word;
- __align_pad1 : word;
- st_ino : __ino_t;
- st_mode : __mode_t;
- st_nlink : __nlink_t;
- st_uid : __uid_t;
- st_gid : __gid_t;
- st_rdev : __dev_t;
- __pad2 : word;
- __align_pad2 : word;
- st_size : __off_t;
- st_blksize : __blksize_t;
- st_blocks : __blkcnt_t;
-
- st_atim : TGlibc_timespec;
- st_mtim : TGlibc_timespec;
- st_ctim : TGlibc_timespec;
-
-{ st_atime : __time_t;
- __unused1 : dword;
- st_mtime : __time_t;
- __unused2 : dword;
- st_ctime : __time_t;
- __unused3 : dword; }
-
- __unused4 : dword;
- __unused5 : dword;
- end;
-{$ELSE} // 64-bit platform
- TGlibc_stat = packed record
- st_dev : QWORD;
- st_ino : Int64;
- st_nlink : QWORD;
- st_mode : DWORD;
- st_uid : DWORD;
- st_gid : DWORD;
- pad0 : DWORD;
- st_rdev : QWORD;
- st_size : Int64;
- st_blksize : Int64;
- st_blocks : Int64;
- st_atim : TGlibc_timespec;
- st_mtim : TGlibc_timespec;
- st_ctim : TGlibc_timespec;
- __unused : array[1..3] of QWORD;
- end;
-{$ENDIF}
-{$ENDIF}
-
- PGlibc_stat64 = ^TGlibc_stat64;
-{$IFDEF KYLIX}
- TGlibc_stat64 = TStatBuf64;
-{$ELSE}
- TGlibc_stat64 = packed record
-{$IFNDEF CPU64} // 32-bit platform
- st_dev : __dev_t;
- __pad1 : dword;
- __st_ino : __ino_t;
- st_mode : __mode_t;
- st_nlink : __nlink_t;
- st_uid : __uid_t;
- st_gid : __gid_t;
- st_rdev : __dev_t;
- __pad2 : dword;
- st_size : __off64_t;
- st_blksize : __blksize_t;
- st_blocks : __blkcnt64_t;
-
- st_atim : TGlibc_timespec;
- st_mtim : TGlibc_timespec;
- st_ctim : TGlibc_timespec;
-
-{ st_atime : __time_t;
- __unused1 : dword;
- st_mtime : __time_t;
- __unused2 : dword;
- st_ctime : __time_t;
- __unused3 : dword; }
-
- st_ino : __ino64_t;
-{$ELSE} // 64-bit platform
- st_dev : QWORD;
- st_ino : Int64;
- st_nlink : QWORD;
- st_mode : DWORD;
- st_uid : DWORD;
- st_gid : DWORD;
- pad0 : DWORD;
- st_rdev : QWORD;
- st_size : Int64;
- st_blksize : Int64;
- st_blocks : Int64;
- st_atim : TGlibc_timespec;
- st_mtim : TGlibc_timespec;
- st_ctim : TGlibc_timespec;
- __unused : array[1..3] of QWORD;
-{$ENDIF}
- end;
-{$ENDIF}
-
-
- TGlibc_fsid_t = packed record
- __val : array[0..1] of longint;
- end;
-
- PGlibc_statfs64 = ^TGlibc_statfs64;
- TGlibc_statfs64 = packed record
-{$IFNDEF CPU64} // 32-bit platform
- f_type : longint;
- f_bsize : longint;
- f_blocks : __fsblkcnt64_t;
- f_bfree : __fsblkcnt64_t;
- f_bavail : __fsblkcnt64_t;
- f_files : __fsfilcnt64_t;
- f_ffree : __fsfilcnt64_t;
- f_fsid : __fsid_t;
- f_namelen : longint;
- f_spare : array[0..5] of longint;
-{$ELSE} // 64-bit platform
- f_type : Int64;
- f_bsize : Int64;
- f_blocks : QWORD;
- f_bfree : QWORD;
- f_bavail : QWORD;
- f_files : QWORD;
- f_ffree : QWORD;
- f_fsid : TGlibc_fsid_t;
- f_namelen : Int64;
- f_spare : array[0..5] of Int64;
-{$ENDIF}
- end;
-
- PGlibc_utimbuf = ^TGlibc_utimbuf;
- TGlibc_utimbuf = packed record
-{$IFNDEF CPU64} // 32-bit platform
- actime : __time_t;
- modtime : __time_t;
-{$ELSE} // 64-bit platform
- actime : Int64;
- modtime : Int64;
-{$ENDIF}
- end;
-
- PGlibc_mntent = ^TGlibc_mntent;
- TGlibc_mntent = packed record
-{$IFNDEF CPU64} // 32-bit platform
- mnt_fsname : Pchar;
- mnt_dir : Pchar;
- mnt_type : Pchar;
- mnt_opts : Pchar;
- mnt_freq : longint;
- mnt_passno : longint;
-{$ELSE} // 64-bit platform
- mnt_fsname : Pchar;
- mnt_dir : Pchar;
- mnt_type : Pchar;
- mnt_opts : Pchar;
- mnt_freq : Longint;
- mnt_passno : Longint;
-{$ENDIF}
- end;
-
-
-
-
-
-{$IFNDEF KYLIX}
-function glibc_stat64(const afile: PChar; buf: PGlibc_stat64): longint; cdecl; external GLIBC_LIB name 'stat64';
-function glibc_lstat64(const path: PChar; buf: PGlibc_stat64): longint; cdecl; external GLIBC_LIB name 'lstat64';
-{$ELSE}
-function glibc_stat64(const afile: PChar; buf: PGlibc_stat64): longint;
-function glibc_lstat64(const path: PChar; buf: PGlibc_stat64): longint;
-{$ENDIF}
-
-{
-function glibc_localtime(timep: Pointer): Pointer; cdecl; external GLIBC_LIB name 'localtime';
-function glibc_strftime(s: PChar; max: Longint; format: PChar; tm: Pointer): Longint; cdecl; external GLIBC_LIB name 'strftime';
-}
-
-function glibc_statfs64(const path: PChar; buf: PGlibc_statfs64): longint; cdecl; external GLIBC_LIB name 'statfs64';
-
-function glibc_fileno(stream: PGlibc_IOFile): integer; cdecl; external GLIBC_LIB name 'fileno';
-
-function glibc_utime(const afile: Pchar; buf: PGlibc_utimbuf): Longint; cdecl; external GLIBC_LIB name 'utime';
-
-
-function glibc_setmntent(const afile: Pchar; mode: Pchar): PGlibc_IOFile; cdecl; external GLIBC_LIB name 'setmntent';
-function glibc_getmntent(stream: PGlibc_IOFile): PGlibc_mntent; cdecl; external GLIBC_LIB name 'getmntent';
-function glibc_endmntent(stream: PGlibc_IOFile): Longint; cdecl; external GLIBC_LIB name 'endmntent';
-
-
-implementation
-
-{$IFDEF KYLIX}
-function glibc__xstat64(ver: integer; const afile: PChar; buf: PGlibc_stat64): longint; cdecl; external GLIBC_LIB name '__xstat64';
-function glibc__lxstat64(ver: integer; const path: PChar; buf: PGlibc_stat64): longint; cdecl; external GLIBC_LIB name '__lxstat64';
-
-function glibc_stat64(const afile: PChar; buf: PGlibc_stat64): longint;
-begin
- Result := glibc__xstat64(_STAT_VER, afile, buf);
-end;
-
-function glibc_lstat64(const path: PChar; buf: PGlibc_stat64): longint;
-begin
- Result := glibc__lxstat64(_STAT_VER, path, buf);
-end;
-{$ENDIF}
-
-end.
-