|
@@ -2,7 +2,7 @@
|
|
This file is part of the Free Component Library (FCL)
|
|
This file is part of the Free Component Library (FCL)
|
|
Copyright (c) 1999-2002 by the Free Pascal development team
|
|
Copyright (c) 1999-2002 by the Free Pascal development team
|
|
|
|
|
|
- BIOS functions unit for Nintendo DS
|
|
|
|
|
|
+ libc unit for Nintendo DS
|
|
Copyright (c) 2006 by Francesco Lombardi
|
|
Copyright (c) 2006 by Francesco Lombardi
|
|
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
See the file COPYING.FPC, included in this distribution,
|
|
@@ -84,6 +84,17 @@ const
|
|
SEEK_SET = 0;
|
|
SEEK_SET = 0;
|
|
SEEK_CUR = 1;
|
|
SEEK_CUR = 1;
|
|
SEEK_END = 2;
|
|
SEEK_END = 2;
|
|
|
|
+ R_OK = 1;
|
|
|
|
+ W_OK = 2;
|
|
|
|
+ X_OK = 4;
|
|
|
|
+ F_OK = 8;
|
|
|
|
+ L_SET = SEEK_SET;
|
|
|
|
+ L_INCR = SEEK_CUR;
|
|
|
|
+ L_XTND = SEEK_END;
|
|
|
|
+ EFF_ONLY_OK = 8;
|
|
|
|
+ STDIN_FILENO = 0;
|
|
|
|
+ STDOUT_FILENO = 1;
|
|
|
|
+ STDERR_FILENO = 2;
|
|
|
|
|
|
(*
|
|
(*
|
|
------------------------------------------------------------------------------
|
|
------------------------------------------------------------------------------
|
|
@@ -170,7 +181,6 @@ procedure rewinddir(dirp: PDIR); cdecl; external;
|
|
procedure seekdir(dirp: PDIR; loc: longint); cdecl; external;
|
|
procedure seekdir(dirp: PDIR; loc: longint); cdecl; external;
|
|
function telldir(dirp: PDIR): longint; cdecl; external;
|
|
function telldir(dirp: PDIR): longint; cdecl; external;
|
|
|
|
|
|
-
|
|
|
|
function diropen(const path: pchar): PDIR_ITER; cdecl; external;
|
|
function diropen(const path: pchar): PDIR_ITER; cdecl; external;
|
|
function dirreset(dirState: PDIR_ITER): longint; cdecl; external;
|
|
function dirreset(dirState: PDIR_ITER): longint; cdecl; external;
|
|
function dirnext(dirState: PDIR_ITER; filename: pchar; filestat: Pstat): longint; cdecl; external;
|
|
function dirnext(dirState: PDIR_ITER; filename: pchar; filestat: Pstat): longint; cdecl; external;
|
|
@@ -197,3 +207,73 @@ function _stat(__file:Pchar; var __buf:Tstat):longint; cdecl; external name 'sta
|
|
function ftruncate(fildes: longint; len: longint): longint; cdecl; external;
|
|
function ftruncate(fildes: longint; len: longint): longint; cdecl; external;
|
|
function unlink(path: Pchar): longint; cdecl; external;
|
|
function unlink(path: Pchar): longint; cdecl; external;
|
|
function rename(para1: Pchar; para2: Pchar): longint; cdecl; external;
|
|
function rename(para1: Pchar; para2: Pchar): longint; cdecl; external;
|
|
|
|
+
|
|
|
|
+function FpOpen(path: Pchar; oflag: longint): longint; cdecl; external name 'open';
|
|
|
|
+function FpOpen(path: Pchar; oflag, mode: longint): longint; cdecl; external name 'open';
|
|
|
|
+function FpRead(fildes:longint; buf:pointer; nbytes:dword):longint;cdecl;external name 'read';
|
|
|
|
+function FpRead(fildes:longint; var buf; nbytes:dword):longint;cdecl;external name 'read';
|
|
|
|
+function FpWrite(fildes:longint; buf:pointer; nbytes:dword):longint;cdecl;external name 'write';
|
|
|
|
+function FpWrite(fildes:longint; var buf; nbytes:dword):longint;cdecl;external name 'write';
|
|
|
|
+function fplseek(fildes:longint; offset:longint; whence:longint):longint;cdecl;external name 'lseek';
|
|
|
|
+function FpClose(fildes:longint):longint;cdecl;external name 'close';
|
|
|
|
+function FpChsize(fildes:longint; size:dword):longint;cdecl;external name 'chsize';
|
|
|
|
+function FpUnlink(path:Pchar):longint;cdecl;external name 'unlink';
|
|
|
|
+function FpRename(para1: Pchar; para2: Pchar): longint; cdecl; external name 'rename';
|
|
|
|
+function Fpstat(path:Pchar; buf:Pstat):longint;cdecl;external name 'stat';
|
|
|
|
+function Fpstat(path:Pchar; var buf:Tstat):longint;cdecl;external name 'stat';
|
|
|
|
+function FpAccess(path:Pchar; mode:longint):longint;cdecl;external name 'access';
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+const
|
|
|
|
+ F_GETFL = 1; // get file status flags
|
|
|
|
+ F_SETFL = 2; // set file status flags
|
|
|
|
+ F_DUPFD = 3; // duplicate file descriptor
|
|
|
|
+ F_GETFD = 4; // get file descriptor flags
|
|
|
|
+ F_SETFD = 5; // set file descriptor flags
|
|
|
|
+ F_SETLK = 6; // set record locking info
|
|
|
|
+ F_SETLK64 = 16; // set record locking info (64-bit)
|
|
|
|
+ F_GETLK = 7; // get record locking info
|
|
|
|
+ F_GETLK64 = 17; // get record locking info (64-bit)
|
|
|
|
+ F_SETLKW = 8; // get record locking info; wait if blocked
|
|
|
|
+ F_SETLKW64 = 18; // get record locking info (64-bit)
|
|
|
|
+ F_CLOEXEC = 9; // close on execute
|
|
|
|
+
|
|
|
|
+// values for 'l_type' field of 'struct flock'...
|
|
|
|
+ F_RDLCK = 1; // shared or read lock
|
|
|
|
+ F_WRLCK = 2; // exclusive or write lock
|
|
|
|
+ F_UNLCK = 3; // unlock
|
|
|
|
+
|
|
|
|
+// values for 'oflag' in open()...
|
|
|
|
+ O_RDONLY =$00000000; // open for read only
|
|
|
|
+ O_WRONLY =$00000001; // open for write only
|
|
|
|
+ O_RDWR =$00000002; // open for read and write
|
|
|
|
+ O_ACCMODE =$00000003; // access flags mask
|
|
|
|
+ O_reserved1 =$00000004; // reserved
|
|
|
|
+ O_reserved2 =$00000008; // reserved
|
|
|
|
+ O_APPEND =$00000010; // writes done at end of file
|
|
|
|
+ O_CREAT =$00000020; // create new file
|
|
|
|
+ O_TRUNC =$00000040; // truncate existing file
|
|
|
|
+ O_EXCL =$00000080; // exclusive open
|
|
|
|
+ O_NOCTTY =$00000100; // no controlling terminal--unsupported
|
|
|
|
+ O_BINARY =$00000200; // binary file--all files
|
|
|
|
+ O_NDELAY =$00000400; // nonblocking flag
|
|
|
|
+ O_reserved3 =$00000800; // reserved
|
|
|
|
+ O_SYNC =$00001000; // synchronized I/O file integrity
|
|
|
|
+ O_DSYNC =$00002000; // synchronized I/O data integrity
|
|
|
|
+ O_RSYNC =$00004000; // synchronized read I/O
|
|
|
|
+ O_NONBLOCK = O_NDELAY; // alias
|
|
|
|
+ FD_CLOEXEC =$00008000; // parent closes after call to process()
|
|
|
|
+ O_UPDATE =$00010000; // keep legacy files updated
|
|
|
|
+ O_FIFO =$00100000; // opening one end of a FIFO [non-standard]
|
|
|
|
+
|
|
|
|
+// value for third argument when 'cmd' is F_SETFL in fcntl()...
|
|
|
|
+ FNDELAY = O_NDELAY; // fcntl() non-blocking I/O
|
|
|
|
+
|
|
|
|
+// 'shflag' values for sopen()...
|
|
|
|
+ SH_DENYRW = $00000010; // deny read/write mode
|
|
|
|
+ SH_DENYWR = $00000020; // deny write mode
|
|
|
|
+ SH_DENYRD = $00000030; // deny read mode
|
|
|
|
+ SH_DENYNO = $00000040; // deny none mode
|
|
|
|
+
|
|
|
|
+
|