From 4bf477d5ed372fd44697d2f0df245b61b4f3f7b3 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Thu, 18 Nov 2021 13:18:38 -0800 Subject: filling out system layer --- sys/linux/amd64/syscall.h | 2 - sys/linux/port/arch/constants.h | 34 ++++- sys/linux/port/arch/errno.h | 268 ++++++++++++++++++++-------------------- sys/linux/port/arch/types.h | 35 ++++++ 4 files changed, 202 insertions(+), 137 deletions(-) create mode 100644 sys/linux/port/arch/types.h (limited to 'sys/linux') diff --git a/sys/linux/amd64/syscall.h b/sys/linux/amd64/syscall.h index f571b81..cba66be 100644 --- a/sys/linux/amd64/syscall.h +++ b/sys/linux/amd64/syscall.h @@ -419,5 +419,3 @@ long _syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6) "d"(a3), "r"(r10), "r"(r8), "r"(r9) : "rcx", "r11", "memory"); return ret; } - - diff --git a/sys/linux/port/arch/constants.h b/sys/linux/port/arch/constants.h index 2b26899..b8d3878 100644 --- a/sys/linux/port/arch/constants.h +++ b/sys/linux/port/arch/constants.h @@ -1,7 +1,8 @@ #pragma once +/* open */ #define sys·OCreate 0x40u -#define sys·ONotty 0x100u +#define sys·ONoTTY 0x100u #define sys·OTrunc 0x200u #define sys·OAppend 0x400u #define sys·ONoBlock 0x800u @@ -11,3 +12,34 @@ #define sys·ODirectory 0x10000u #define sys·ONoFollow 0x20000u #define sys·OTmpFile 0x410000u + +/* mmap */ +#define sys·ProtNone 0 +#define sys·ProtRead 1 +#define sys·ProtWrite 2 +#define sys·ProtExec 4 +#define sys·ProtGrowsDown 0x01000000 +#define sys·ProtGrowsUp 0x02000000 + +#define sys·MapFile 0 +#define sys·MapShared 0x01 +#define sys·MapPrivate 0x02 +#define sys·MapSharedValidate 0x03 +#define sys·MapType 0x0f +#define sys·MapFixed 0x10 +#define sys·MapAnon 0x20 +#define sys·MapNoReserve 0x4000 +#define sys·MapGrowsDown 0x0100 +#define sys·MapDenyWrite 0x0800 +#define sys·MapExecutable 0x1000 +#define sys·MapLocked 0x2000 +#define sys·MapPopulate 0x8000 +#define sys·MapNonBlock 0x10000 +#define sys·MapStack 0x20000 +#define sys·MapHugetlb 0x40000 +#define sys·MapSync 0x80000 +#define sys·MapFixedNoReplace 0x100000 + +#define sys·RemapCanMove 1 +#define sys·RemapFixed 2 +#define sys·RemapNoUnmap 4 diff --git a/sys/linux/port/arch/errno.h b/sys/linux/port/arch/errno.h index dcd4bcc..9d7e66e 100644 --- a/sys/linux/port/arch/errno.h +++ b/sys/linux/port/arch/errno.h @@ -1,134 +1,134 @@ -#define sys·ErrorNotPermit 1 -#define sys·ErrorNoEntry 2 -#define sys·ErrorNoProc 3 -#define sys·ErrorInterrupt 4 -#define sys·ErrorIO 5 -#define sys·ErrorNoDevAddr 6 -#define sys·ErrorArgLen 7 -#define sys·ErrorExecFmt 8 -#define sys·ErrorBadFd 9 -#define sys·ErrorNoChild 10 -#define sys·ErrorAgain 11 -#define sys·ErrorNoMemory 12 -#define sys·ErrorAccess 13 -#define sys·ErrorBadAddr 14 -#define sys·ErrorNotBlk 15 -#define sys·ErrorBusy 16 -#define sys·ErrorExists 17 -#define sys·ErrorExDevice 18 -#define sys·ErrorNoDevice 19 -#define sys·ErrorNotDir 20 -#define sys·ErrorIsDir 21 -#define sys·ErrorBadArg 22 -#define sys·ErrorNoFiles 23 -#define sys·ErrorNoFd 24 -#define sys·ErrorNotTTY 25 -#define sys·ErrorTxtBusy 26 -#define sys·ErrorBigFile 27 -#define sys·ErrorNoSpace 28 -#define sys·ErrorNoSeek 29 -#define sys·ErrorReadOnly 30 -#define sys·ErrorNoLink 31 -#define sys·ErrorBadPipe 32 -#define sys·ErrorBadDomain 33 -#define sys·ErrorBadResult 34 -#define sys·ErrorDeadlock 35 -#define sys·ErrorNameLen 36 -#define sys·ErrorNoLock 37 -#define sys·ErrorNoSyscall 38 -#define sys·ErrorNotEmptyDir 39 -#define sys·ErrorLinkLoop 40 -#define sys·ErrorBlocks sys·ErrorAgain -#define sys·ErrorNoMsg 42 -#define sys·ErrorNoIdent 43 -#define sys·ErrorBadChannel 44 -#define sys·ErrorLvl2NoSync 45 -#define sys·ErrorLvl3Halt 46 -#define sys·ErrorLvl3Reset 47 -#define sys·ErrorLongChannel 48 -#define sys·ErrorNoDriver 49 -#define sys·ErrorNoCSI 50 -#define sys·ErrorLvl2Halt 51 -#define sys·ErrorBadExchange 52 -#define sys·ErrorBadRequest 53 -#define sys·ErrorFullExchange 54 -#define sys·ErrorNoAnode 55 -#define sys·ErrorBadRequestCode 56 -#define sys·ErrorBadSlot 57 -#define sys·ErrorDeadlock2 sys·ErrorDeadlock -#define sys·ErrorBadFont 59 -#define sys·ErrorNoStr 60 -#define sys·ErrorNoData 61 -#define sys·ErrorTimeout 62 -#define sys·ErrorNoStream 63 -#define sys·ErrorNoNet 64 -#define sys·ErrorNoPkg 65 -#define sys·ErrorIsRemote 66 -#define sys·ErrorDeadLink 67 -#define sys·ErrorAdv 68 -#define sys·ErrorSrmnt 69 -#define sys·ErrorCommunicate 70 -#define sys·ErrorProtocol 71 -#define sys·ErrorMultihop 72 -#define sys·ErrorDotDot 73 -#define sys·ErrorBadMsg 74 -#define sys·ErrorOverflow 75 -#define sys·ErrorNotUnique 76 -#define sys·ErrorBadFdState 77 -#define sys·ErrorNewAddress 78 -#define sys·ErrorShlibAccess 79 -#define sys·ErrorBadShlib 80 -#define sys·ErrorBadLibCode 81 -#define sys·ErrorShlibLen 82 -#define sys·ErrorSlibExec 83 -#define sys·ErrorBadWideChar 84 -#define sys·ErrorRestart 85 -#define sys·ErrorStreamPipe 86 -#define sys·ErrorUserLen 87 -#define sys·ErrorNotSocket 88 -#define sys·ErrorNeedDstAddr 89 -#define sys·ErrorMsgLen 90 -#define sys·ErrorBadProtocol 91 -#define sys·ErrorNoProtocol 92 -#define sys·ErrorNoProtocolSupport 93 -#define sys·ErrorNoSocketSupport 94 -#define sys·ErrorProtocolSupport 95 -#define sys·ErrorNoSupport sys·ErrorProtocolSupport -#define sys·ErrorNoPFSupport 96 -#define sys·ErrorNoAFSupport 97 -#define sys·ErrorAddrInUse 98 -#define sys·ErrorAddrNotAvail 99 -#define sys·ErrorNetDown 100 -#define sys·ErrorNetHang 101 -#define sys·ErrorNetReset 102 -#define sys·ErrorAbortConnect 103 -#define sys·ErrorResetConnect 104 -#define sys·ErrorNoBuffer 105 -#define sys·ErrorIsConnect 106 -#define sys·ErrorNotConnect 107 -#define sys·ErrorShutdown 108 -#define sys·ErrorRefsLen 109 -#define sys·ErrorTimedOut 110 -#define sys·ErrorRefuseConnect 111 -#define sys·ErrorHostDown 112 -#define sys·ErrorHostHang 113 -#define sys·ErrorAlreadyConnect 114 -#define sys·ErrorInProgress 115 -#define sys·ErrorStale 116 -#define sys·ErrorNeedClean 117 -#define sys·ErrorNotNamed 118 -#define sys·ErrorNotAvail 119 -#define sys·ErrorIsNamed 120 -#define sys·ErrorRemoteIO 121 -#define sys·ErrorDiskQuota 122 -#define sys·ErrorNoMedium 123 -#define sys·ErrorBadMedium 124 -#define sys·ErrorCancel 125 -#define sys·ErrorNoKey 126 -#define sys·ErrorExpireKey 127 -#define sys·ErrorRevokeKey 128 -#define sys·ErrorRejectKey 129 -#define sys·ErrorOwnerDie 130 -#define sys·ErrorNoRecover 131 -#define sys·ErrorRFKill 132 -#define sys·ErrorHWPoison 133 +#define sys·ErrorNotPermit 1 +#define sys·ErrorNoEntry 2 +#define sys·ErrorNoProc 3 +#define sys·ErrorInterrupt 4 +#define sys·ErrorIO 5 +#define sys·ErrorNoDevAddr 6 +#define sys·ErrorArgLen 7 +#define sys·ErrorExecFmt 8 +#define sys·ErrorBadFd 9 +#define sys·ErrorNoChild 10 +#define sys·ErrorAgain 11 +#define sys·ErrorNoMemory 12 +#define sys·ErrorAccess 13 +#define sys·ErrorBadAddr 14 +#define sys·ErrorNotBlk 15 +#define sys·ErrorBusy 16 +#define sys·ErrorExists 17 +#define sys·ErrorExDevice 18 +#define sys·ErrorNoDevice 19 +#define sys·ErrorNotDir 20 +#define sys·ErrorIsDir 21 +#define sys·ErrorBadArg 22 +#define sys·ErrorNoFiles 23 +#define sys·ErrorNoFd 24 +#define sys·ErrorNotTTY 25 +#define sys·ErrorTxtBusy 26 +#define sys·ErrorBigFile 27 +#define sys·ErrorNoSpace 28 +#define sys·ErrorNoSeek 29 +#define sys·ErrorReadOnly 30 +#define sys·ErrorNoLink 31 +#define sys·ErrorBadPipe 32 +#define sys·ErrorBadDomain 33 +#define sys·ErrorBadResult 34 +#define sys·ErrorDeadlock 35 +#define sys·ErrorNameLen 36 +#define sys·ErrorNoLock 37 +#define sys·ErrorNoSyscall 38 +#define sys·ErrorNotEmptyDir 39 +#define sys·ErrorLinkLoop 40 +#define sys·ErrorBlocks sys·ErrorAgain +#define sys·ErrorNoMsg 42 +#define sys·ErrorNoIdent 43 +#define sys·ErrorBadChannel 44 +#define sys·ErrorLvl2NoSync 45 +#define sys·ErrorLvl3Halt 46 +#define sys·ErrorLvl3Reset 47 +#define sys·ErrorLongChannel 48 +#define sys·ErrorNoDriver 49 +#define sys·ErrorNoCSI 50 +#define sys·ErrorLvl2Halt 51 +#define sys·ErrorBadExchange 52 +#define sys·ErrorBadRequest 53 +#define sys·ErrorFullExchange 54 +#define sys·ErrorNoAnode 55 +#define sys·ErrorBadRequestCode 56 +#define sys·ErrorBadSlot 57 +#define sys·ErrorDeadlock2 sys·ErrorDeadlock +#define sys·ErrorBadFont 59 +#define sys·ErrorNoStr 60 +#define sys·ErrorNoData 61 +#define sys·ErrorTimeout 62 +#define sys·ErrorNoStream 63 +#define sys·ErrorNoNet 64 +#define sys·ErrorNoPkg 65 +#define sys·ErrorIsRemote 66 +#define sys·ErrorDeadLink 67 +#define sys·ErrorAdv 68 +#define sys·ErrorSrmnt 69 +#define sys·ErrorCommunicate 70 +#define sys·ErrorProtocol 71 +#define sys·ErrorMultihop 72 +#define sys·ErrorDotDot 73 +#define sys·ErrorBadMsg 74 +#define sys·ErrorOverflow 75 +#define sys·ErrorNotUnique 76 +#define sys·ErrorBadFdState 77 +#define sys·ErrorNewAddress 78 +#define sys·ErrorShlibAccess 79 +#define sys·ErrorBadShlib 80 +#define sys·ErrorBadLibCode 81 +#define sys·ErrorShlibLen 82 +#define sys·ErrorSlibExec 83 +#define sys·ErrorBadWideChar 84 +#define sys·ErrorRestart 85 +#define sys·ErrorStreamPipe 86 +#define sys·ErrorUserLen 87 +#define sys·ErrorNotSocket 88 +#define sys·ErrorNeedDstAddr 89 +#define sys·ErrorMsgLen 90 +#define sys·ErrorBadProtocol 91 +#define sys·ErrorNoProtocol 92 +#define sys·ErrorNoProtocolSupport 93 +#define sys·ErrorNoSocketSupport 94 +#define sys·ErrorProtocolSupport 95 +#define sys·ErrorNoSupport sys·ErrorProtocolSupport +#define sys·ErrorNoPFSupport 96 +#define sys·ErrorNoAFSupport 97 +#define sys·ErrorAddrInUse 98 +#define sys·ErrorAddrNotAvail 99 +#define sys·ErrorNetDown 100 +#define sys·ErrorNetHang 101 +#define sys·ErrorNetReset 102 +#define sys·ErrorAbortConnect 103 +#define sys·ErrorResetConnect 104 +#define sys·ErrorNoBuffer 105 +#define sys·ErrorIsConnect 106 +#define sys·ErrorNotConnect 107 +#define sys·ErrorShutdown 108 +#define sys·ErrorRefsLen 109 +#define sys·ErrorTimedOut 110 +#define sys·ErrorRefuseConnect 111 +#define sys·ErrorHostDown 112 +#define sys·ErrorHostHang 113 +#define sys·ErrorAlreadyConnect 114 +#define sys·ErrorInProgress 115 +#define sys·ErrorStale 116 +#define sys·ErrorNeedClean 117 +#define sys·ErrorNotNamed 118 +#define sys·ErrorNotAvail 119 +#define sys·ErrorIsNamed 120 +#define sys·ErrorRemoteIO 121 +#define sys·ErrorDiskQuota 122 +#define sys·ErrorNoMedium 123 +#define sys·ErrorBadMedium 124 +#define sys·ErrorCancel 125 +#define sys·ErrorNoKey 126 +#define sys·ErrorExpireKey 127 +#define sys·ErrorRevokeKey 128 +#define sys·ErrorRejectKey 129 +#define sys·ErrorOwnerDie 130 +#define sys·ErrorNoRecover 131 +#define sys·ErrorRFKill 132 +#define sys·ErrorHWPoison 133 diff --git a/sys/linux/port/arch/types.h b/sys/linux/port/arch/types.h new file mode 100644 index 0000000..014e4cb --- /dev/null +++ b/sys/linux/port/arch/types.h @@ -0,0 +1,35 @@ +#pragma once + +// XXX: os vs sys prefix... + +typedef struct os·Directory os·Directory; +typedef struct os·DirEntry os·DirEntry; + +struct os·Directory +{ + intptr off; + int fd; + int pad; + int pos, end; + /* buf needs fall on (off_t) 8 byte alignment */ + char buf[2048]; +}; + +struct os·DirEntry +{ + ulong ino; /* inode number */ + ulong off; /* offset to next entry (from start of directory */ + ushort len; /* length of entry (in bytes) */ + uchar type; /* filetype */ + char name[]; /* filename */ +}; + +/* types of DirEntry (last byte) */ +#define os·EntryUnknown 0 +#define os·EntryFifo 1 +#define os·EntryChar 2 +#define os·EntryDir 4 +#define os·EntryBlock 6 +#define os·EntryFile 8 +#define os·EntryLink 10 +#define os·EntrySocket 12 -- cgit v1.2.1