mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 14:19:28 +02:00
* Unix RTL generic parts. Linux working, *BSD will follow shortly
This commit is contained in:
parent
193994c0a5
commit
3e33642794
@ -19,205 +19,208 @@
|
||||
}
|
||||
Const
|
||||
|
||||
Sys_EPERM = 1; { Operation not permitted }
|
||||
Sys_ENOENT = 2; { No such file or directory }
|
||||
Sys_ESRCH = 3; { No such process }
|
||||
Sys_EINTR = 4; { Interrupted system call }
|
||||
Sys_EIO = 5; { I/O error }
|
||||
Sys_ENXIO = 6; { No such device or address }
|
||||
Sys_E2BIG = 7; { Arg list too long }
|
||||
Sys_ENOEXEC = 8; { Exec format error }
|
||||
Sys_EBADF = 9; { Bad file number }
|
||||
Sys_ECHILD = 10; { No child processes }
|
||||
ESysEPERM = 1; { Operation not permitted }
|
||||
ESysENOENT = 2; { No such file or directory }
|
||||
ESysESRCH = 3; { No such process }
|
||||
ESysEINTR = 4; { Interrupted system call }
|
||||
ESysEIO = 5; { I/O error }
|
||||
ESysENXIO = 6; { No such device or address }
|
||||
ESysE2BIG = 7; { Arg list too long }
|
||||
ESysENOEXEC = 8; { Exec format error }
|
||||
ESysEBADF = 9; { Bad file number }
|
||||
ESysECHILD = 10; { No child processes }
|
||||
{$ifdef FreeBSD}
|
||||
Sys_EDEADLK = 11; { Deadlock avoided}
|
||||
ESysEDEADLK = 11; { Deadlock avoided}
|
||||
{$else}
|
||||
Sys_EAGAIN = 11; { Try again }
|
||||
ESysEAGAIN = 11; { Try again }
|
||||
{$endif}
|
||||
Sys_ENOMEM = 12; { Out of memory }
|
||||
Sys_EACCES = 13; { Permission denied }
|
||||
Sys_EFAULT = 14; { Bad address }
|
||||
Sys_ENOTBLK = 15; { Block device required, NOT POSIX! }
|
||||
Sys_EBUSY = 16; { Device or resource busy }
|
||||
Sys_EEXIST = 17; { File exists }
|
||||
Sys_EXDEV = 18; { Cross-device link }
|
||||
Sys_ENODEV = 19; { No such device }
|
||||
Sys_ENOTDIR = 20; { Not a directory }
|
||||
Sys_EISDIR = 21; { Is a directory }
|
||||
Sys_EINVAL = 22; { Invalid argument }
|
||||
Sys_ENFILE = 23; { File table overflow }
|
||||
Sys_EMFILE = 24; { Too many open files }
|
||||
Sys_ENOTTY = 25; { Not a typewriter }
|
||||
Sys_ETXTBSY = 26; { Text file busy }
|
||||
Sys_EFBIG = 27; { File too large }
|
||||
Sys_ENOSPC = 28; { No space left on device }
|
||||
Sys_ESPIPE = 29; { Illegal seek }
|
||||
Sys_EROFS = 30; { Read-only file system }
|
||||
Sys_EMLINK = 31; { Too many links }
|
||||
Sys_EPIPE = 32; { Broken pipe }
|
||||
Sys_EDOM = 33; { Math argument out of domain of func }
|
||||
Sys_ERANGE = 34; { Math result not representable }
|
||||
ESysENOMEM = 12; { Out of memory }
|
||||
ESysEACCES = 13; { Permission denied }
|
||||
ESysEFAULT = 14; { Bad address }
|
||||
ESysENOTBLK = 15; { Block device required, NOT POSIX! }
|
||||
ESysEBUSY = 16; { Device or resource busy }
|
||||
ESysEEXIST = 17; { File exists }
|
||||
ESysEXDEV = 18; { Cross-device link }
|
||||
ESysENODEV = 19; { No such device }
|
||||
ESysENOTDIR = 20; { Not a directory }
|
||||
ESysEISDIR = 21; { Is a directory }
|
||||
ESysEINVAL = 22; { Invalid argument }
|
||||
ESysENFILE = 23; { File table overflow }
|
||||
ESysEMFILE = 24; { Too many open files }
|
||||
ESysENOTTY = 25; { Not a typewriter }
|
||||
ESysETXTBSY = 26; { Text file busy }
|
||||
ESysEFBIG = 27; { File too large }
|
||||
ESysENOSPC = 28; { No space left on device }
|
||||
ESysESPIPE = 29; { Illegal seek }
|
||||
ESysEROFS = 30; { Read-only file system }
|
||||
ESysEMLINK = 31; { Too many links }
|
||||
ESysEPIPE = 32; { Broken pipe }
|
||||
ESysEDOM = 33; { Math argument out of domain of func }
|
||||
ESysERANGE = 34; { Math result not representable }
|
||||
{$ifdef FreeBSD}
|
||||
{ non-blocking and interrupt i/o }
|
||||
Sys_EAGAIN = 35; { Resource temporarily unavailable }
|
||||
ESysEAGAIN = 35; { Resource temporarily unavailable }
|
||||
|
||||
// non posix from here on.
|
||||
|
||||
Sys_EWOULDBLOCK = SYS_EAGAIN; { Operation would block }
|
||||
Sys_EINPROGRESS = 36; { Operation now in progress }
|
||||
Sys_EALREADY = 37; { Operation already in progress }
|
||||
ESysEWOULDBLOCK = SYS_EAGAIN; { Operation would block }
|
||||
ESysEINPROGRESS = 36; { Operation now in progress }
|
||||
ESysEALREADY = 37; { Operation already in progress }
|
||||
|
||||
{ ipc/network software -- argument errors }
|
||||
Sys_ENOTSOCK = 38; { Socket operation on non-socket }
|
||||
Sys_EDESTADDRREQ= 39; { Destination address required }
|
||||
Sys_EMSGSIZE = 40; { Message too long }
|
||||
Sys_EPROTOTYPE = 41; { Protocol wrong type for socket }
|
||||
Sys_ENOPROTOOPT = 42; { Protocol not available }
|
||||
Sys_EPROTONOSUPPORT= 43;{ Protocol not supported }
|
||||
Sys_ESOCKTNOSUPPORT= 44;{ Socket type not supported }
|
||||
Sys_EOPNOTSUPP = 45; { Operation not supported }
|
||||
Sys_ENOTSUP = SYS_EOPNOTSUPP; { Operation not supported }
|
||||
Sys_EPFNOSUPPORT= 46; { Protocol family not supported }
|
||||
Sys_EAFNOSUPPORT= 47; { Address family not supported by protocol family }
|
||||
Sys_EADDRINUSE = 48; { Address already in use }
|
||||
Sys_EADDRNOTAVAIL= 49; { Can't assign requested address }
|
||||
ESysENOTSOCK = 38; { Socket operation on non-socket }
|
||||
ESysEDESTADDRREQ= 39; { Destination address required }
|
||||
ESysEMSGSIZE = 40; { Message too long }
|
||||
ESysEPROTOTYPE = 41; { Protocol wrong type for socket }
|
||||
ESysENOPROTOOPT = 42; { Protocol not available }
|
||||
ESysEPROTONOSUPPORT= 43;{ Protocol not supported }
|
||||
ESysESOCKTNOSUPPORT= 44;{ Socket type not supported }
|
||||
ESysEOPNOTSUPP = 45; { Operation not supported }
|
||||
ESysENOTSUP = SYS_EOPNOTSUPP; { Operation not supported }
|
||||
ESysEPFNOSUPPORT= 46; { Protocol family not supported }
|
||||
ESysEAFNOSUPPORT= 47; { Address family not supported by protocol family }
|
||||
ESysEADDRINUSE = 48; { Address already in use }
|
||||
ESysEADDRNOTAVAIL= 49; { Can't assign requested address }
|
||||
|
||||
{ ipc/network software -- operational errors }
|
||||
Sys_ENETDOWN = 50; { Network is down }
|
||||
Sys_ENETUNREACH = 51; { Network is unreachable }
|
||||
Sys_ENETRESET = 52; { Network dropped connection on reset }
|
||||
Sys_ECONNABORTED= 53; { Software caused connection abort }
|
||||
Sys_ECONNRESET = 54; { Connection reset by peer }
|
||||
Sys_ENOBUFS = 55; { No buffer space available }
|
||||
Sys_EISCONN = 56; { Socket is already connected }
|
||||
Sys_ENOTCONN = 57; { Socket is not connected }
|
||||
Sys_ESHUTDOWN = 58; { Can't send after socket shutdown }
|
||||
Sys_ETOOMANYREFS= 59; { Too many references: can't splice }
|
||||
Sys_ETIMEDOUT = 60; { Operation timed out }
|
||||
Sys_ECONNREFUSED= 61; { Connection refused }
|
||||
Sys_ELOOP = 62; { Too many levels of symbolic links }
|
||||
Sys_ENAMETOOLONG= 63; { File name too long }
|
||||
Sys_EHOSTDOWN = 64; { Host is down }
|
||||
Sys_EHOSTUNREACH= 65; { No route to host }
|
||||
Sys_ENOTEMPTY = 66; { Directory not empty }
|
||||
ESysENETDOWN = 50; { Network is down }
|
||||
ESysENETUNREACH = 51; { Network is unreachable }
|
||||
ESysENETRESET = 52; { Network dropped connection on reset }
|
||||
ESysECONNABORTED= 53; { Software caused connection abort }
|
||||
ESysECONNRESET = 54; { Connection reset by peer }
|
||||
ESysENOBUFS = 55; { No buffer space available }
|
||||
ESysEISCONN = 56; { Socket is already connected }
|
||||
ESysENOTCONN = 57; { Socket is not connected }
|
||||
ESysESHUTDOWN = 58; { Can't send after socket shutdown }
|
||||
ESysETOOMANYREFS= 59; { Too many references: can't splice }
|
||||
ESysETIMEDOUT = 60; { Operation timed out }
|
||||
ESysECONNREFUSED= 61; { Connection refused }
|
||||
ESysELOOP = 62; { Too many levels of symbolic links }
|
||||
ESysENAMETOOLONG= 63; { File name too long }
|
||||
ESysEHOSTDOWN = 64; { Host is down }
|
||||
ESysEHOSTUNREACH= 65; { No route to host }
|
||||
ESysENOTEMPTY = 66; { Directory not empty }
|
||||
{ quotas & mush }
|
||||
Sys_EPROCLIM = 67; { Too many processes }
|
||||
Sys_EUSERS = 68; { Too many users }
|
||||
Sys_EDQUOT = 69; { Disc quota exceeded }
|
||||
ESysEPROCLIM = 67; { Too many processes }
|
||||
ESysEUSERS = 68; { Too many users }
|
||||
ESysEDQUOT = 69; { Disc quota exceeded }
|
||||
{ Network File System }
|
||||
Sys_ESTALE = 70; { Stale NFS file handle }
|
||||
Sys_EREMOTE = 71; { Too many levels of remote in path }
|
||||
Sys_EBADRPC = 72; { RPC struct is bad }
|
||||
Sys_ERPCMISMATCH= 73; { RPC version wrong }
|
||||
Sys_EPROGUNAVAIL= 74; { RPC prog. not avail }
|
||||
Sys_EPROGMISMATCH= 75; { Program version wrong }
|
||||
Sys_EPROCUNAVAIL= 76; { Bad procedure for program }
|
||||
Sys_ENOLCK = 77; { No locks available }
|
||||
Sys_ENOSYS = 78; { Function not implemented }
|
||||
Sys_EFTYPE = 79; { Inappropriate file type or format }
|
||||
Sys_EAUTH = 80; { Authentication error }
|
||||
Sys_ENEEDAUTH = 81; { Need authenticator }
|
||||
Sys_EIDRM = 82; { Identifier removed }
|
||||
Sys_ENOMSG = 83; { No message of desired type }
|
||||
Sys_EOVERFLOW = 84; { Value too large to be stored in data type }
|
||||
Sys_ECANCELED = 85; { Operation canceled }
|
||||
Sys_EILSEQ = 86; { Illegal byte sequence }
|
||||
Sys_ELAST = 86; { Must be equal largest errno }
|
||||
ESysESTALE = 70; { Stale NFS file handle }
|
||||
ESysEREMOTE = 71; { Too many levels of remote in path }
|
||||
ESysEBADRPC = 72; { RPC struct is bad }
|
||||
ESysERPCMISMATCH= 73; { RPC version wrong }
|
||||
ESysEPROGUNAVAIL= 74; { RPC prog. not avail }
|
||||
ESysEPROGMISMATCH= 75; { Program version wrong }
|
||||
ESysEPROCUNAVAIL= 76; { Bad procedure for program }
|
||||
ESysENOLCK = 77; { No locks available }
|
||||
ESysENOSYS = 78; { Function not implemented }
|
||||
ESysEFTYPE = 79; { Inappropriate file type or format }
|
||||
ESysEAUTH = 80; { Authentication error }
|
||||
ESysENEEDAUTH = 81; { Need authenticator }
|
||||
ESysEIDRM = 82; { Identifier removed }
|
||||
ESysENOMSG = 83; { No message of desired type }
|
||||
ESysEOVERFLOW = 84; { Value too large to be stored in data type }
|
||||
ESysECANCELED = 85; { Operation canceled }
|
||||
ESysEILSEQ = 86; { Illegal byte sequence }
|
||||
ESysELAST = 86; { Must be equal largest errno }
|
||||
|
||||
{$else}
|
||||
Sys_EDEADLK = 35; { Resource deadlock would occur }
|
||||
Sys_ENAMETOOLONG= 36; { File name too long }
|
||||
Sys_ENOLCK = 37; { No record locks available }
|
||||
Sys_ENOSYS = 38; { Function not implemented }
|
||||
Sys_ENOTEMPTY= 39; { Directory not empty }
|
||||
Sys_ELOOP = 40; { Too many symbolic links encountered }
|
||||
Sys_EWOULDBLOCK = Sys_EAGAIN; { Operation would block }
|
||||
Sys_ENOMSG = 42; { No message of desired type }
|
||||
Sys_EIDRM = 43; { Identifier removed }
|
||||
Sys_ECHRNG = 44; { Channel number out of range }
|
||||
Sys_EL2NSYNC= 45; { Level 2 not synchronized }
|
||||
Sys_EL3HLT = 46; { Level 3 halted }
|
||||
Sys_EL3RST = 47; { Level 3 reset }
|
||||
Sys_ELNRNG = 48; { Link number out of range }
|
||||
Sys_EUNATCH = 49; { Protocol driver not attached }
|
||||
Sys_ENOCSI = 50; { No CSI structure available }
|
||||
Sys_EL2HLT = 51; { Level 2 halted }
|
||||
Sys_EBADE = 52; { Invalid exchange }
|
||||
Sys_EBADR = 53; { Invalid request descriptor }
|
||||
Sys_EXFULL = 54; { Exchange full }
|
||||
Sys_ENOANO = 55; { No anode }
|
||||
Sys_EBADRQC = 56; { Invalid request code }
|
||||
Sys_EBADSLT = 57; { Invalid slot }
|
||||
Sys_EDEADLOCK= 58; { File locking deadlock error }
|
||||
Sys_EBFONT = 59; { Bad font file format }
|
||||
Sys_ENOSTR = 60; { Device not a stream }
|
||||
Sys_ENODATA = 61; { No data available }
|
||||
Sys_ETIME = 62; { Timer expired }
|
||||
Sys_ENOSR = 63; { Out of streams resources }
|
||||
Sys_ENONET = 64; { Machine is not on the network }
|
||||
Sys_ENOPKG = 65; { Package not installed }
|
||||
Sys_EREMOTE = 66; { Object is remote }
|
||||
Sys_ENOLINK = 67; { Link has been severed }
|
||||
Sys_EADV = 68; { Advertise error }
|
||||
Sys_ESRMNT = 69; { Srmount error }
|
||||
Sys_ECOMM = 70; { Communication error on send }
|
||||
Sys_EPROTO = 71; { Protocol error }
|
||||
Sys_EMULTIHOP= 72; { Multihop attempted }
|
||||
Sys_EDOTDOT = 73; { RFS specific error }
|
||||
Sys_EBADMSG = 74; { Not a data message }
|
||||
Sys_EOVERFLOW= 75; { Value too large for defined data type }
|
||||
Sys_ENOTUNIQ= 76; { Name not unique on network }
|
||||
Sys_EBADFD = 77; { File descriptor in bad state }
|
||||
Sys_EREMCHG = 78; { Remote address changed }
|
||||
Sys_ELIBACC = 79; { Can not access a needed shared library }
|
||||
Sys_ELIBBAD = 80; { Accessing a corrupted shared library }
|
||||
Sys_ELIBSCN = 81; { .lib section in a.out corrupted }
|
||||
Sys_ELIBMAX = 82; { Attempting to link in too many shared libraries }
|
||||
Sys_ELIBEXEC= 83; { Cannot exec a shared library directly }
|
||||
Sys_EILSEQ = 84; { Illegal byte sequence }
|
||||
Sys_ERESTART= 85; { Interrupted system call should be restarted }
|
||||
Sys_ESTRPIPE= 86; { Streams pipe error }
|
||||
Sys_EUSERS = 87; { Too many users }
|
||||
Sys_ENOTSOCK= 88; { Socket operation on non-socket }
|
||||
Sys_EDESTADDRREQ= 89; { Destination address required }
|
||||
Sys_EMSGSIZE= 90; { Message too long }
|
||||
Sys_EPROTOTYPE= 91; { Protocol wrong type for socket }
|
||||
Sys_ENOPROTOOPT= 92; { Protocol not available }
|
||||
Sys_EPROTONOSUPPORT= 93; { Protocol not supported }
|
||||
Sys_ESOCKTNOSUPPORT= 94; { Socket type not supported }
|
||||
Sys_EOPNOTSUPP= 95; { Operation not supported on transport endpoint }
|
||||
Sys_EPFNOSUPPORT= 96; { Protocol family not supported }
|
||||
Sys_EAFNOSUPPORT= 97; { Address family not supported by protocol }
|
||||
Sys_EADDRINUSE= 98; { Address already in use }
|
||||
Sys_EADDRNOTAVAIL= 99; { Cannot assign requested address }
|
||||
Sys_ENETDOWN= 100; { Network is down }
|
||||
Sys_ENETUNREACH= 101; { Network is unreachable }
|
||||
Sys_ENETRESET= 102; { Network dropped connection because of reset }
|
||||
Sys_ECONNABORTED= 103; { Software caused connection abort }
|
||||
Sys_ECONNRESET= 104; { Connection reset by peer }
|
||||
Sys_ENOBUFS = 105; { No buffer space available }
|
||||
Sys_EISCONN = 106; { Transport endpoint is already connected }
|
||||
Sys_ENOTCONN= 107; { Transport endpoint is not connected }
|
||||
Sys_ESHUTDOWN= 108; { Cannot send after transport endpoint shutdown }
|
||||
Sys_ETOOMANYREFS= 109; { Too many references: cannot splice }
|
||||
Sys_ETIMEDOUT= 110; { Connection timed out }
|
||||
Sys_ECONNREFUSED= 111; { Connection refused }
|
||||
Sys_EHOSTDOWN= 112; { Host is down }
|
||||
Sys_EHOSTUNREACH= 113; { No route to host }
|
||||
Sys_EALREADY= 114; { Operation already in progress }
|
||||
Sys_EINPROGRESS= 115; { Operation now in progress }
|
||||
Sys_ESTALE = 116; { Stale NFS file handle }
|
||||
Sys_EUCLEAN = 117; { Structure needs cleaning }
|
||||
Sys_ENOTNAM = 118; { Not a XENIX named type file }
|
||||
Sys_ENAVAIL = 119; { No XENIX semaphores available }
|
||||
Sys_EISNAM = 120; { Is a named type file }
|
||||
Sys_EREMOTEIO= 121; { Remote I/O error }
|
||||
Sys_EDQUOT = 122; { Quota exceeded }
|
||||
ESysEDEADLK = 35; { Resource deadlock would occur }
|
||||
ESysENAMETOOLONG= 36; { File name too long }
|
||||
ESysENOLCK = 37; { No record locks available }
|
||||
ESysENOSYS = 38; { Function not implemented }
|
||||
ESysENOTEMPTY= 39; { Directory not empty }
|
||||
ESysELOOP = 40; { Too many symbolic links encountered }
|
||||
ESysEWOULDBLOCK = ESysEAGAIN; { Operation would block }
|
||||
ESysENOMSG = 42; { No message of desired type }
|
||||
ESysEIDRM = 43; { Identifier removed }
|
||||
ESysECHRNG = 44; { Channel number out of range }
|
||||
ESysEL2NSYNC= 45; { Level 2 not synchronized }
|
||||
ESysEL3HLT = 46; { Level 3 halted }
|
||||
ESysEL3RST = 47; { Level 3 reset }
|
||||
ESysELNRNG = 48; { Link number out of range }
|
||||
ESysEUNATCH = 49; { Protocol driver not attached }
|
||||
ESysENOCSI = 50; { No CSI structure available }
|
||||
ESysEL2HLT = 51; { Level 2 halted }
|
||||
ESysEBADE = 52; { Invalid exchange }
|
||||
ESysEBADR = 53; { Invalid request descriptor }
|
||||
ESysEXFULL = 54; { Exchange full }
|
||||
ESysENOANO = 55; { No anode }
|
||||
ESysEBADRQC = 56; { Invalid request code }
|
||||
ESysEBADSLT = 57; { Invalid slot }
|
||||
ESysEDEADLOCK= 58; { File locking deadlock error }
|
||||
ESysEBFONT = 59; { Bad font file format }
|
||||
ESysENOSTR = 60; { Device not a stream }
|
||||
ESysENODATA = 61; { No data available }
|
||||
ESysETIME = 62; { Timer expired }
|
||||
ESysENOSR = 63; { Out of streams resources }
|
||||
ESysENONET = 64; { Machine is not on the network }
|
||||
ESysENOPKG = 65; { Package not installed }
|
||||
ESysEREMOTE = 66; { Object is remote }
|
||||
ESysENOLINK = 67; { Link has been severed }
|
||||
ESysEADV = 68; { Advertise error }
|
||||
ESysESRMNT = 69; { Srmount error }
|
||||
ESysECOMM = 70; { Communication error on send }
|
||||
ESysEPROTO = 71; { Protocol error }
|
||||
ESysEMULTIHOP= 72; { Multihop attempted }
|
||||
ESysEDOTDOT = 73; { RFS specific error }
|
||||
ESysEBADMSG = 74; { Not a data message }
|
||||
ESysEOVERFLOW= 75; { Value too large for defined data type }
|
||||
ESysENOTUNIQ= 76; { Name not unique on network }
|
||||
ESysEBADFD = 77; { File descriptor in bad state }
|
||||
ESysEREMCHG = 78; { Remote address changed }
|
||||
ESysELIBACC = 79; { Can not access a needed shared library }
|
||||
ESysELIBBAD = 80; { Accessing a corrupted shared library }
|
||||
ESysELIBSCN = 81; { .lib section in a.out corrupted }
|
||||
ESysELIBMAX = 82; { Attempting to link in too many shared libraries }
|
||||
ESysELIBEXEC= 83; { Cannot exec a shared library directly }
|
||||
ESysEILSEQ = 84; { Illegal byte sequence }
|
||||
ESysERESTART= 85; { Interrupted system call should be restarted }
|
||||
ESysESTRPIPE= 86; { Streams pipe error }
|
||||
ESysEUSERS = 87; { Too many users }
|
||||
ESysENOTSOCK= 88; { Socket operation on non-socket }
|
||||
ESysEDESTADDRREQ= 89; { Destination address required }
|
||||
ESysEMSGSIZE= 90; { Message too long }
|
||||
ESysEPROTOTYPE= 91; { Protocol wrong type for socket }
|
||||
ESysENOPROTOOPT= 92; { Protocol not available }
|
||||
ESysEPROTONOSUPPORT= 93; { Protocol not supported }
|
||||
ESysESOCKTNOSUPPORT= 94; { Socket type not supported }
|
||||
ESysEOPNOTSUPP= 95; { Operation not supported on transport endpoint }
|
||||
ESysEPFNOSUPPORT= 96; { Protocol family not supported }
|
||||
ESysEAFNOSUPPORT= 97; { Address family not supported by protocol }
|
||||
ESysEADDRINUSE= 98; { Address already in use }
|
||||
ESysEADDRNOTAVAIL= 99; { Cannot assign requested address }
|
||||
ESysENETDOWN= 100; { Network is down }
|
||||
ESysENETUNREACH= 101; { Network is unreachable }
|
||||
ESysENETRESET= 102; { Network dropped connection because of reset }
|
||||
ESysECONNABORTED= 103; { Software caused connection abort }
|
||||
ESysECONNRESET= 104; { Connection reset by peer }
|
||||
ESysENOBUFS = 105; { No buffer space available }
|
||||
ESysEISCONN = 106; { Transport endpoint is already connected }
|
||||
ESysENOTCONN= 107; { Transport endpoint is not connected }
|
||||
ESysESHUTDOWN= 108; { Cannot send after transport endpoint shutdown }
|
||||
ESysETOOMANYREFS= 109; { Too many references: cannot splice }
|
||||
ESysETIMEDOUT= 110; { Connection timed out }
|
||||
ESysECONNREFUSED= 111; { Connection refused }
|
||||
ESysEHOSTDOWN= 112; { Host is down }
|
||||
ESysEHOSTUNREACH= 113; { No route to host }
|
||||
ESysEALREADY= 114; { Operation already in progress }
|
||||
ESysEINPROGRESS= 115; { Operation now in progress }
|
||||
ESysESTALE = 116; { Stale NFS file handle }
|
||||
ESysEUCLEAN = 117; { Structure needs cleaning }
|
||||
ESysENOTNAM = 118; { Not a XENIX named type file }
|
||||
ESysENAVAIL = 119; { No XENIX semaphores available }
|
||||
ESysEISNAM = 120; { Is a named type file }
|
||||
ESysEREMOTEIO= 121; { Remote I/O error }
|
||||
ESysEDQUOT = 122; { Quota exceeded }
|
||||
{$endif}
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 2002-09-07 16:01:27 peter
|
||||
Revision 1.5 2002-12-18 16:50:39 marco
|
||||
* Unix RTL generic parts. Linux working, *BSD will follow shortly
|
||||
|
||||
Revision 1.4 2002/09/07 16:01:27 peter
|
||||
* old logs removed and tabs fixed
|
||||
|
||||
Revision 1.3 2002/03/11 19:10:33 peter
|
||||
|
126
rtl/unix/genfuncs.inc
Normal file
126
rtl/unix/genfuncs.inc
Normal file
@ -0,0 +1,126 @@
|
||||
{
|
||||
$Id$
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2002 by Marco van de Voort.
|
||||
|
||||
A few general purpose routines. General purpose enough for *BSD
|
||||
and Linux at least.
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
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.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
function InternalCreateShellArgV(cmd:pChar; len:longint):ppchar;
|
||||
{
|
||||
Create an argv which executes a command in a shell using /bin/sh -c
|
||||
}
|
||||
const Shell = '/bin/sh'#0'-c'#0;
|
||||
var
|
||||
pp,p : ppchar;
|
||||
// temp : string; !! Never pass a local var back!!
|
||||
begin
|
||||
getmem(pp,4*4);
|
||||
p:=pp;
|
||||
p^:=@Shell[1];
|
||||
inc(p);
|
||||
p^:=@Shell[9];
|
||||
inc(p);
|
||||
getmem(p^,len+1);
|
||||
move(cmd^,p^^,len);
|
||||
pchar(p^)[len]:=#0;
|
||||
inc(p);
|
||||
p^:=Nil;
|
||||
InternalCreateShellArgV:=pp;
|
||||
end;
|
||||
|
||||
function CreateShellArgV(const prog:string):ppchar;
|
||||
begin
|
||||
CreateShellArgV:=InternalCreateShellArgV(@prog[1],length(prog));
|
||||
end;
|
||||
|
||||
function CreateShellArgV(const prog:Ansistring):ppchar;
|
||||
{
|
||||
Create an argv which executes a command in a shell using /bin/sh -c
|
||||
using a AnsiString;
|
||||
}
|
||||
begin
|
||||
CreateShellArgV:=InternalCreateShellArgV(@prog[1],length(prog)); // if ppc works like delphi this also work when @prog[1] is invalid (len=0)
|
||||
end;
|
||||
|
||||
|
||||
procedure FreeShellArgV(p:ppchar);
|
||||
begin
|
||||
if (p<>nil) then begin
|
||||
freemem(p[2]);
|
||||
freemem(p);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Function fpgetenv(name:pchar):pchar;
|
||||
|
||||
var
|
||||
p : ppchar;
|
||||
found : boolean;
|
||||
np,cp : pchar;
|
||||
len,i : longint;
|
||||
Begin
|
||||
if (name=nil) or (envp=NIL) Then
|
||||
exit(NIL);
|
||||
np:=name;
|
||||
while (np^<>#0) and (np^<>'=') DO
|
||||
inc(np);
|
||||
len:=np-name;
|
||||
p:=envp;
|
||||
while (p^<>NIL) DO
|
||||
Begin
|
||||
cp:=p^;
|
||||
np:=name;
|
||||
i:=len;
|
||||
while (i<>0) and (cp^<>#0) DO
|
||||
Begin
|
||||
if cp^<>np^ Then
|
||||
Begin
|
||||
inc(cp); inc(np);
|
||||
break;
|
||||
End;
|
||||
inc(cp); inc(np);
|
||||
dec(i)
|
||||
End;
|
||||
if (i=0) and (cp^='=') Then
|
||||
exit(cp+1);
|
||||
inc(p);
|
||||
end;
|
||||
End;
|
||||
|
||||
Function fpgetenv(name:string):Pchar;
|
||||
{
|
||||
Searches the environment for a string with name p and
|
||||
returns a pchar to it's value.
|
||||
A pchar is used to accomodate for strings of length > 255
|
||||
}
|
||||
|
||||
|
||||
Begin
|
||||
name:=name+'='; {Else HOST will also find HOSTNAME, etc}
|
||||
fpgetenv:=fpgetenv(@name[1]);
|
||||
end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2002-12-18 16:50:39 marco
|
||||
* Unix RTL generic parts. Linux working, *BSD will follow shortly
|
||||
|
||||
Revision 1.2 2002/10/27 17:21:30 marco
|
||||
* Only "difficult" functions + execvp + termios + rewinddir left to do
|
||||
|
||||
Revision 1.1 2002/10/27 13:16:54 marco
|
||||
* Routines that certainly will be shared between Linux and *BSD
|
||||
|
||||
|
||||
}
|
@ -15,65 +15,68 @@
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
function sys_sigaddset(var _set : sigset_t;signo:cint): cint;
|
||||
function fpsigaddset(var nset : sigset_t;signo:cint): cint;
|
||||
|
||||
Begin
|
||||
if (signo<=0) or (signo > SIG_MAXSIG) Then
|
||||
Begin
|
||||
seterrno(sys_EINVAL);
|
||||
seterrno(ESysEINVAL);
|
||||
exit(-1);
|
||||
End;
|
||||
_set[(signo-1) shr ln2bitsinword]:=_set[(signo-1) shr ln2bitsinword] OR (1 shl ((signo-1) and ln2bitmask));
|
||||
sys_sigaddset:=0;
|
||||
nset[(signo-1) shr ln2bitsinword]:=nset[(signo-1) shr ln2bitsinword] OR (1 shl ((signo-1) and ln2bitmask));
|
||||
fpsigaddset:=0;
|
||||
End;
|
||||
|
||||
function sys_sigdelset(var _set : sigset_t;signo:cint): cint;
|
||||
function fpsigdelset(var nset : sigset_t;signo:cint): cint;
|
||||
|
||||
Begin
|
||||
if (signo<=0) or (signo > SIG_MAXSIG) Then
|
||||
Begin
|
||||
seterrno(sys_EINVAL);
|
||||
seterrno(ESysEINVAL);
|
||||
exit(-1);
|
||||
End;
|
||||
_set[(signo-1) shr ln2bitsinword]:=_set[(signo-1) shr ln2bitsinword] AND NOT (1 shl ((signo-1) and ln2bitmask));
|
||||
sys_sigdelset:=0;
|
||||
nset[(signo-1) shr ln2bitsinword]:=nset[(signo-1) shr ln2bitsinword] AND NOT (1 shl ((signo-1) and ln2bitmask));
|
||||
fpsigdelset:=0;
|
||||
End;
|
||||
|
||||
function sys_sigemptyset(var _set : sigset_t):cint;
|
||||
function fpsigemptyset(var nset : sigset_t):cint;
|
||||
|
||||
var i :longint;
|
||||
|
||||
Begin
|
||||
for i:=0 to wordsinsigset-1 DO _set[i]:=0;
|
||||
sys_sigemptyset:=0;
|
||||
for i:=0 to wordsinsigset-1 DO nset[i]:=0;
|
||||
fpsigemptyset:=0;
|
||||
End;
|
||||
|
||||
function sys_sigfillset(var _set : sigset_t):cint;
|
||||
function fpsigfillset(var nset : sigset_t):cint;
|
||||
|
||||
var i :longint;
|
||||
|
||||
Begin
|
||||
for i:=0 to wordsinsigset DO _set[i]:=NOT 0;
|
||||
sys_sigfillset:=0;
|
||||
for i:=0 to wordsinsigset DO nset[i]:=NOT 0;
|
||||
fpsigfillset:=0;
|
||||
End;
|
||||
|
||||
function sys_sigismember(const _set : sigset_t;signo:cint): cint;
|
||||
function fpsigismember(const nset : sigset_t;signo:cint): cint;
|
||||
|
||||
Begin
|
||||
if (signo<=0) or (signo > SIG_MAXSIG) Then
|
||||
Begin
|
||||
seterrno(sys_EINVAL);
|
||||
seterrno(ESysEINVAL);
|
||||
exit(-1);
|
||||
End;
|
||||
if ((_set[(signo-1) shr ln2bitsinword]) and (1 shl ((signo-1) and ln2bitmask)))>0 Then
|
||||
sys_sigismember:=1
|
||||
if ((nset[(signo-1) shr ln2bitsinword]) and (1 shl ((signo-1) and ln2bitmask)))>0 Then
|
||||
fpsigismember:=1
|
||||
else
|
||||
sys_sigismember:=0;
|
||||
fpsigismember:=0;
|
||||
End;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2002-11-14 12:20:30 marco
|
||||
Revision 1.2 2002-12-18 16:50:39 marco
|
||||
* Unix RTL generic parts. Linux working, *BSD will follow shortly
|
||||
|
||||
Revision 1.1 2002/11/14 12:20:30 marco
|
||||
* initial version, taken from bsdfunc.inc, since both linux and bsd use it
|
||||
|
||||
|
||||
|
@ -497,7 +497,7 @@ Function S_ISSOCK(m:word):boolean;
|
||||
|
||||
Implementation
|
||||
|
||||
Uses Strings;
|
||||
Uses Strings,baseunix;
|
||||
|
||||
|
||||
{ Get the definitions of textrec and filerec }
|
||||
@ -521,7 +521,7 @@ begin
|
||||
repeat
|
||||
s:=$7F00;
|
||||
r:=WaitPid(Pid,@s,0);
|
||||
until (r<>-1) or (LinuxError<>Sys_EINTR);
|
||||
until (r<>-1) or (LinuxError<>ESysEINTR);
|
||||
if (r=-1) or (r=0) then // 0 is not a valid return and should never occur (it means status invalid when using WNOHANG)
|
||||
WaitProcess:=-1 // return -1 to indicate an error
|
||||
else
|
||||
@ -619,7 +619,7 @@ begin
|
||||
else
|
||||
Path:='';
|
||||
if Path='' then
|
||||
linuxerror:=Sys_enoent
|
||||
linuxerror:=ESysenoent
|
||||
else
|
||||
Execve(Path,args,ep);{On error linuxerror will get set there}
|
||||
end;
|
||||
@ -654,7 +654,7 @@ begin
|
||||
else
|
||||
Path:='';
|
||||
if Path='' then
|
||||
linuxerror:=Sys_enoent
|
||||
linuxerror:=ESysenoent
|
||||
else
|
||||
Execve(Path,args,ep);{On error linuxerror will get set there}
|
||||
end;
|
||||
@ -1012,7 +1012,7 @@ end;
|
||||
Function fdOpen(pathname:string;flags:longint):longint;
|
||||
begin
|
||||
pathname:=pathname+#0;
|
||||
fdOpen:=Sys_Open(@pathname[1],flags,438);
|
||||
fdOpen:=FpOpen(@pathname[1],flags,438);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1020,7 +1020,7 @@ end;
|
||||
Function fdOpen(pathname:string;flags,mode:longint):longint;
|
||||
begin
|
||||
pathname:=pathname+#0;
|
||||
fdOpen:=Sys_Open(@pathname[1],flags,mode);
|
||||
fdOpen:=FpOpen(@pathname[1],flags,mode);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1028,7 +1028,7 @@ end;
|
||||
|
||||
Function fdOpen(pathname:pchar;flags:longint):longint;
|
||||
begin
|
||||
fdOpen:=Sys_Open(pathname,flags,0);
|
||||
fdOpen:=FpOpen(pathname,flags,0);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1036,7 +1036,7 @@ end;
|
||||
|
||||
Function fdOpen(pathname:pchar;flags,mode:longint):longint;
|
||||
begin
|
||||
fdOpen:=Sys_Open(pathname,flags,mode);
|
||||
fdOpen:=FpOpen(pathname,flags,mode);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1044,7 +1044,7 @@ end;
|
||||
|
||||
Function fdClose(fd:longint):boolean;
|
||||
begin
|
||||
fdClose:=(Sys_Close(fd)=0);
|
||||
fdClose:=(FpClose(fd)=0);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1052,7 +1052,7 @@ end;
|
||||
|
||||
Function fdRead(fd:longint;var buf;size:longint):longint;
|
||||
begin
|
||||
fdRead:=Sys_Read(fd,pchar(@buf),size);
|
||||
fdRead:=FpRead(fd,pchar(@buf),size);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1060,7 +1060,7 @@ end;
|
||||
|
||||
Function fdWrite(fd:longint;const buf;size:longint):longint;
|
||||
begin
|
||||
fdWrite:=Sys_Write(fd,pchar(@buf),size);
|
||||
fdWrite:=FpWrite(fd,pchar(@buf),size);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1073,7 +1073,7 @@ Function fdSeek (fd,pos,seektype :longint): longint;
|
||||
|
||||
}
|
||||
begin
|
||||
fdseek:=Sys_LSeek (fd,pos,seektype);
|
||||
fdseek:=FpLSeek (fd,pos,seektype);
|
||||
LinuxError:=Errno;
|
||||
end;
|
||||
|
||||
@ -1084,13 +1084,13 @@ Function Fcntl(Fd:longint;Cmd:longint):longint;
|
||||
Possible values for Cmd are :
|
||||
F_GetFd,F_GetFl,F_GetOwn
|
||||
Errors are reported in Linuxerror;
|
||||
If Cmd is different from the allowed values, linuxerror=Sys_eninval.
|
||||
If Cmd is different from the allowed values, linuxerror=ESyseninval.
|
||||
}
|
||||
|
||||
begin
|
||||
if (cmd in [F_GetFd,F_GetFl,F_GetOwn]) then
|
||||
begin
|
||||
Linuxerror:=sys_fcntl(fd,cmd,0);
|
||||
Linuxerror:=fdfcntl(fd,cmd,0);
|
||||
if linuxerror=-1 then
|
||||
begin
|
||||
linuxerror:=errno;
|
||||
@ -1104,7 +1104,7 @@ begin
|
||||
end
|
||||
else
|
||||
begin
|
||||
linuxerror:=Sys_einval;
|
||||
linuxerror:=ESyseinval;
|
||||
Fcntl:=0;
|
||||
end;
|
||||
end;
|
||||
@ -1122,11 +1122,11 @@ Procedure Fcntl(Fd:longint;Cmd:longint;Arg:Longint);
|
||||
begin
|
||||
if (cmd in [F_SetFd,F_SetFl,F_GetLk,F_SetLk,F_SetLkw,F_SetOwn]) then
|
||||
begin
|
||||
sys_fcntl(fd,cmd,arg);
|
||||
fpfcntl(fd,cmd,arg);
|
||||
LinuxError:=ErrNo;
|
||||
end
|
||||
else
|
||||
linuxerror:=Sys_einval;
|
||||
linuxerror:=ESyseinval;
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
@ -1361,7 +1361,7 @@ Var
|
||||
begin
|
||||
if textrec(t).mode=fmclosed then
|
||||
begin
|
||||
LinuxError:=Sys_EBADF;
|
||||
LinuxError:=ESysEBadf;
|
||||
exit(-1);
|
||||
end;
|
||||
FD_Zero(f);
|
||||
@ -1406,7 +1406,7 @@ procedure SeekDir(p:pdir;off:longint);
|
||||
begin
|
||||
if p=nil then
|
||||
begin
|
||||
errno:=Sys_EBADF;
|
||||
errno:=ESysEBadf;
|
||||
exit;
|
||||
end;
|
||||
{$ifndef bsd} {Should be ifdef Linux, but can't because
|
||||
@ -1424,7 +1424,7 @@ function TellDir(p:pdir):longint;
|
||||
begin
|
||||
if p=nil then
|
||||
begin
|
||||
errno:=Sys_EBADF;
|
||||
errno:=ESysEBadf;
|
||||
telldir:=-1;
|
||||
exit;
|
||||
end;
|
||||
@ -1590,7 +1590,7 @@ begin
|
||||
rw:=upcase(rw);
|
||||
if not (rw in ['R','W']) then
|
||||
begin
|
||||
LinuxError:=Sys_enoent;
|
||||
LinuxError:=ESysENOENT;
|
||||
exit;
|
||||
end;
|
||||
AssignPipe(pipi,pipo);
|
||||
@ -1669,7 +1669,7 @@ begin
|
||||
rw:=upcase(rw);
|
||||
if not (rw in ['R','W']) then
|
||||
begin
|
||||
LinuxError:=Sys_enoent;
|
||||
LinuxError:=ESysENOENT;
|
||||
exit;
|
||||
end;
|
||||
AssignPipe(pipi,pipo);
|
||||
@ -2011,7 +2011,7 @@ begin
|
||||
{$endif}
|
||||
else
|
||||
begin
|
||||
ErrNo:=Sys_EINVAL;
|
||||
ErrNo:=ESysEINVAL;
|
||||
TCSetAttr:=false;
|
||||
exit;
|
||||
end;
|
||||
@ -2275,7 +2275,7 @@ begin
|
||||
StringToPPChar:=p;
|
||||
if p=nil then
|
||||
begin
|
||||
LinuxError:=sys_enomem;
|
||||
LinuxError:=ESysENOMEM;
|
||||
exit;
|
||||
end;
|
||||
buf:=s;
|
||||
@ -2586,7 +2586,7 @@ begin
|
||||
end;
|
||||
if current=nil then
|
||||
begin
|
||||
linuxerror:=Sys_ENOMEM;
|
||||
linuxerror:=ESysENOMEM;
|
||||
globfree(root);
|
||||
break;
|
||||
end;
|
||||
@ -2594,7 +2594,7 @@ begin
|
||||
getmem(current^.name,length(temp2)+1);
|
||||
if current^.name=nil then
|
||||
begin
|
||||
linuxerror:=Sys_ENOMEM;
|
||||
linuxerror:=ESysENOMEM;
|
||||
globfree(root);
|
||||
break;
|
||||
end;
|
||||
@ -3032,7 +3032,10 @@ End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.24 2002-09-13 13:03:27 jonas
|
||||
Revision 1.25 2002-12-18 16:50:39 marco
|
||||
* Unix RTL generic parts. Linux working, *BSD will follow shortly
|
||||
|
||||
Revision 1.24 2002/09/13 13:03:27 jonas
|
||||
* fixed buffer overflow error in StringToPPChar(), detected using
|
||||
DIOTA (http://www.elis/rug.ac.be/~ronsse/diota) (which I also work on :)
|
||||
(merged)
|
||||
|
@ -515,7 +515,7 @@ begin
|
||||
repeat
|
||||
s:=$7F00;
|
||||
r:=WaitPid(Pid,@s,0);
|
||||
until (r<>-1) or (LinuxError<>Sys_EINTR);
|
||||
until (r<>-1) or (LinuxError<>ESysEINTR);
|
||||
if (r=-1) or (r=0) then // 0 is not a valid return and should never occur (it means status invalid when using WNOHANG)
|
||||
WaitProcess:=-1 // return -1 to indicate an error
|
||||
else
|
||||
@ -613,7 +613,7 @@ begin
|
||||
else
|
||||
Path:='';
|
||||
if Path='' then
|
||||
linuxerror:=Sys_enoent
|
||||
linuxerror:=ESysEnoent
|
||||
else
|
||||
Execve(Path,args,ep);{On error linuxerror will get set there}
|
||||
end;
|
||||
@ -648,7 +648,7 @@ begin
|
||||
else
|
||||
Path:='';
|
||||
if Path='' then
|
||||
linuxerror:=Sys_enoent
|
||||
linuxerror:=ESysEnoent
|
||||
else
|
||||
Execve(Path,args,ep);{On error linuxerror will get set there}
|
||||
end;
|
||||
@ -1116,7 +1116,7 @@ Function Fcntl(Fd:longint;Cmd:longint):longint;
|
||||
Possible values for Cmd are :
|
||||
F_GetFd,F_GetFl,F_GetOwn
|
||||
Errors are reported in Linuxerror;
|
||||
If Cmd is different from the allowed values, linuxerror=Sys_eninval.
|
||||
If Cmd is different from the allowed values, linuxerror=ESysEninval.
|
||||
}
|
||||
|
||||
begin
|
||||
@ -1136,7 +1136,7 @@ begin
|
||||
end
|
||||
else
|
||||
begin
|
||||
linuxerror:=Sys_einval;
|
||||
linuxerror:=ESysEinval;
|
||||
Fcntl:=0;
|
||||
end;
|
||||
end;
|
||||
@ -1148,7 +1148,7 @@ Procedure Fcntl(Fd:longint;Cmd:longint;Arg:Longint);
|
||||
Possible values for Cmd are :
|
||||
F_setFd,F_SetFl,F_GetLk,F_SetLk,F_SetLkW,F_SetOwn;
|
||||
Errors are reported in Linuxerror;
|
||||
If Cmd is different from the allowed values, linuxerror=Sys_eninval.
|
||||
If Cmd is different from the allowed values, linuxerror=ESysEninval.
|
||||
F_DupFD is not allowed, due to the structure of Files in Pascal.
|
||||
}
|
||||
begin
|
||||
@ -1158,7 +1158,7 @@ begin
|
||||
LinuxError:=ErrNo;
|
||||
end
|
||||
else
|
||||
linuxerror:=Sys_einval;
|
||||
linuxerror:=ESysEinval;
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
@ -1394,7 +1394,7 @@ Var
|
||||
begin
|
||||
if textrec(t).mode=fmclosed then
|
||||
begin
|
||||
LinuxError:=Sys_EBADF;
|
||||
LinuxError:=ESysEBADF;
|
||||
exit(-1);
|
||||
end;
|
||||
FD_Zero(f);
|
||||
@ -1439,7 +1439,7 @@ procedure SeekDir(p:pdir;off:longint);
|
||||
begin
|
||||
if p=nil then
|
||||
begin
|
||||
errno:=Sys_EBADF;
|
||||
errno:=ESysEBADF;
|
||||
exit;
|
||||
end;
|
||||
{$ifndef bsd}
|
||||
@ -1454,7 +1454,7 @@ function TellDir(p:pdir):longint;
|
||||
begin
|
||||
if p=nil then
|
||||
begin
|
||||
errno:=Sys_EBADF;
|
||||
errno:=ESysEBADF;
|
||||
telldir:=-1;
|
||||
exit;
|
||||
end;
|
||||
@ -1620,7 +1620,7 @@ begin
|
||||
rw:=upcase(rw);
|
||||
if not (rw in ['R','W']) then
|
||||
begin
|
||||
LinuxError:=Sys_enoent;
|
||||
LinuxError:=ESysEnoent;
|
||||
exit;
|
||||
end;
|
||||
AssignPipe(pipi,pipo);
|
||||
@ -1699,7 +1699,7 @@ begin
|
||||
rw:=upcase(rw);
|
||||
if not (rw in ['R','W']) then
|
||||
begin
|
||||
LinuxError:=Sys_enoent;
|
||||
LinuxError:=ESysEnoent;
|
||||
exit;
|
||||
end;
|
||||
AssignPipe(pipi,pipo);
|
||||
@ -2041,7 +2041,7 @@ begin
|
||||
{$endif}
|
||||
else
|
||||
begin
|
||||
ErrNo:=Sys_EINVAL;
|
||||
ErrNo:=ESysEINVAL;
|
||||
TCSetAttr:=false;
|
||||
exit;
|
||||
end;
|
||||
@ -2305,7 +2305,7 @@ begin
|
||||
StringToPPChar:=p;
|
||||
if p=nil then
|
||||
begin
|
||||
LinuxError:=sys_enomem;
|
||||
LinuxError:=ESysEnomem;
|
||||
exit;
|
||||
end;
|
||||
buf:=s;
|
||||
@ -2612,7 +2612,7 @@ begin
|
||||
end;
|
||||
if current=nil then
|
||||
begin
|
||||
linuxerror:=Sys_ENOMEM;
|
||||
linuxerror:=ESysENOMEM;
|
||||
globfree(root);
|
||||
break;
|
||||
end;
|
||||
@ -2620,7 +2620,7 @@ begin
|
||||
getmem(current^.name,length(temp2)+1);
|
||||
if current^.name=nil then
|
||||
begin
|
||||
linuxerror:=Sys_ENOMEM;
|
||||
linuxerror:=ESysENOMEM;
|
||||
globfree(root);
|
||||
break;
|
||||
end;
|
||||
@ -3058,7 +3058,10 @@ End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.24 2002-09-07 16:01:28 peter
|
||||
Revision 1.25 2002-12-18 16:50:39 marco
|
||||
* Unix RTL generic parts. Linux working, *BSD will follow shortly
|
||||
|
||||
Revision 1.24 2002/09/07 16:01:28 peter
|
||||
* old logs removed and tabs fixed
|
||||
|
||||
Revision 1.23 2002/08/06 13:30:46 sg
|
||||
|
Loading…
Reference in New Issue
Block a user