Changeset 3594
- Timestamp:
- Oct 2, 2007, 11:35:22 PM (18 years ago)
- Location:
- trunk/kStuff/kHlp
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/kStuff/kHlp/Bare/kHlpBare-gcc.c ¶
r3573 r3594 142 142 KUPTR u = ch | (ch << 8); 143 143 u |= u << 16; 144 #if defined(__AMD64__)144 #if K_ARCH_BITS >= 64 145 145 u |= u << 32; 146 #endif 147 #if K_ARCH_BITS >= 128 148 u |= u << 64; 146 149 #endif 147 150 -
TabularUnified trunk/kStuff/kHlp/Bare/kHlpBareAssert.c ¶
r3582 r3594 31 31 #include <k/kHlpString.h> 32 32 33 #if K_OS == K_OS_OS2 33 #if K_OS == K_OS_DARWIN 34 extern kHlpSys_write(int fd, const void *buf, KSIZE); 35 36 #elif K_OS == K_OS_OS2 34 37 # define INCL_BASE 35 38 # define INCL_ERRORS … … 51 54 static void kHlpAssertWrite(const char *pszMsg) 52 55 { 53 #if K_OS == K_OS_OS2 || K_OS == K_OS_WINDOWS 56 #if K_OS == K_OS_DARWIN 57 KSIZE cchMsg = kHlpStrLen(pszMsg); 58 kHlpSys_write(2 /* stderr */, pszMsg, cchMsg); 59 60 #elif K_OS == K_OS_OS2 || K_OS == K_OS_WINDOWS 54 61 /* 55 62 * Line by line. -
TabularUnified trunk/kStuff/kHlp/Bare/kHlpBareEnv.c ¶
r3575 r3594 32 32 #include <k/kErrors.h> 33 33 34 #if K_OS == K_OS_OS2 34 #if K_OS == K_OS_DARWIN 35 36 #elif K_OS == K_OS_OS2 35 37 # define INCL_BASE 36 38 # define INCL_ERRORS 37 39 # include <os2.h> 40 38 41 #elif K_OS == K_OS_WINDOWS 39 42 # include <Windows.h> 43 40 44 #else 41 45 # error "port me" … … 45 49 KHLP_DECL(int) kHlpGetEnv(const char *pszVar, char *pszVal, KSIZE cchVal) 46 50 { 47 #if K_OS == K_OS_OS2 51 #if K_OS == K_OS_DARWIN 52 /** @todo need to figure out where the stuff is or how it's inherited on darwin ... */ 53 return KERR_ENVVAR_NOT_FOUND; 54 55 #elif K_OS == K_OS_OS2 48 56 PSZ pszValue = NULL; 49 57 int rc; -
TabularUnified trunk/kStuff/kHlp/Bare/kHlpBareHeap.c ¶
r3578 r3594 38 38 # define INCL_ERRORS 39 39 # include <os2.h> 40 40 41 #elif K_OS == K_OS_WINDOWS 41 42 # include <Windows.h> 43 42 44 #else 43 # error "port me"45 # include <k/kHlpAlloc.h> 44 46 #endif 45 47 … … 716 718 717 719 #else 718 # error "Port me" 720 int rc; 721 722 pSeg->cb = (cbMin + 0xffff) & ~(KSIZE)0xffff; 723 pSeg->pvBase = NULL; 724 rc = kHlpPageAlloc(&pSeg->pvBase, pSeg->cb, KPROT_READWRITE, K_FALSE); 725 if (rc) 726 { 727 pSeg->pvBase = NULL; 728 pSeg->cb = 0; 729 return rc; 730 } 731 719 732 #endif 720 733 … … 739 752 740 753 #else 741 # error "Port me" 754 int rc = kHlpPageFree(pSeg->pvBase, pSeg->cb); 755 KHLPHEAP_ASSERT(!rc); (void)rc; 756 742 757 #endif 743 758 } -
TabularUnified trunk/kStuff/kHlp/Bare/kHlpBareProcess.c ¶
r3573 r3594 31 31 #include <k/kHlpAssert.h> 32 32 33 #if K_OS == K_OS_OS2 33 #if K_OS == K_OS_DARWIN 34 extern void kHlpSys_exit(int rc); 35 36 #elif K_OS == K_OS_OS2 34 37 # define INCL_BASE 35 38 # define INCL_ERRORS … … 51 54 for (;;) 52 55 { 53 #if K_OS == K_OS_OS2 56 #if K_OS == K_OS_DARWIN 57 kHlpSys_exit(rc); 58 59 #elif K_OS == K_OS_OS2 54 60 DosExit(EXIT_PROCESS, rc); 55 61 -
TabularUnified trunk/kStuff/kHlp/Bare/kHlpBareThread.c ¶
r3573 r3594 30 30 #include <k/kHlpThread.h> 31 31 32 #if K_OS == K_OS_OS2 32 #if K_OS == K_OS_DARWIN 33 34 #elif K_OS == K_OS_OS2 33 35 # define INCL_BASE 34 36 # define INCL_ERRORS … … 48 50 { 49 51 #if K_OS == K_OS_OS2 52 /** @todo mach_wait_until, see gen/nanosleep.c. */ 53 54 #elif K_OS == K_OS_OS2 50 55 DosSleep(cMillies); 51 56 #elif K_OS == K_OS_WINDOWS -
TabularUnified trunk/kStuff/kHlp/Generic/kHlpPage.c ¶
r3575 r3594 31 31 #include <k/kHlpAssert.h> 32 32 33 #if K_OS == K_OS_OS2 33 #if K_OS == K_OS_DARWIN 34 # include <sys/syscall.h> 35 # include <sys/mman.h> 36 extern void *kHlpSys_mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); 37 extern int kHlpSys_mprotect(void *addr, size_t len, int prot); 38 extern int kHlpSys_munmap(void *addr, size_t len); 39 40 #elif K_OS == K_OS_OS2 34 41 # define INCL_BASE 35 42 # define INCL_ERRORS 36 43 # include <os2.h> 44 37 45 #elif K_OS == K_OS_WINDOWS 38 46 # include <Windows.h> 47 39 48 #else 40 49 # error "port me" … … 45 54 * Global Variables * 46 55 *******************************************************************************/ 47 #if K_OS == K_OS_OS2 56 #if K_OS == K_OS_DARWIN \ 57 || K_OS == K_OS_FREEBSD \ 58 || K_OS == K_OS_LINUX \ 59 || K_OS == K_OS_NETBSD \ 60 || K_OS == K_OS_OPENBSD \ 61 || K_OS == K_OS_SOLARIS 62 /* nothing */ 63 #elif K_OS == K_OS_OS2 48 64 /** The base of the loader stub object. <kLdr Hack> 49 65 * The OS/2 exe stub consists of a single data object. When allocating memory … … 62 78 63 79 64 #if K_OS == K_OS_OS2 80 #if K_OS == K_OS_DARWIN \ 81 || K_OS == K_OS_FREEBSD \ 82 || K_OS == K_OS_LINUX \ 83 || K_OS == K_OS_NETBSD \ 84 || K_OS == K_OS_OPENBSD \ 85 || K_OS == K_OS_SOLARIS 86 static int kHlpPageProtToNative(KPROT enmProt) 87 { 88 switch (enmProt) 89 { 90 case KPROT_NOACCESS: return PROT_NONE; 91 case KPROT_READONLY: return PROT_READ; 92 case KPROT_READWRITE: return PROT_READ | PROT_WRITE; 93 case KPROT_EXECUTE: return PROT_EXEC; 94 case KPROT_EXECUTE_READ: return PROT_EXEC | PROT_READ; 95 case KPROT_EXECUTE_READWRITE: return PROT_EXEC | PROT_READ | PROT_WRITE; 96 default: 97 kHlpAssert(0); 98 return ~0U; 99 } 100 } 101 102 #elif K_OS == K_OS_OS2 65 103 static ULONG kHlpPageProtToNative(KPROT enmProt) 66 104 { … … 97 135 98 136 137 99 138 /** 100 139 * Allocate a chunk of memory with page granularity. … … 108 147 KHLP_DECL(int) kHlpPageAlloc(void **ppv, KSIZE cb, KPROT enmProt, KBOOL fFixed) 109 148 { 110 #if K_OS == K_OS_OS2 149 #if K_OS == K_OS_DARWIN 150 void *pv; 151 152 pv = kHlpSys_mmap(fFixed ? *ppv : NULL, cb, kHlpPageProtToNative(enmProt), 153 fFixed ? MAP_FIXED | MAP_ANON: MAP_ANON, -1, 0); 154 if ((KIPTR)pv < 256) 155 { 156 kHlpAssert(0); 157 return (int)(KIPTR)pv; /** @todo convert errno to kErrors */ 158 } 159 *ppv = pv; 160 return 0; 161 162 #elif K_OS == K_OS_OS2 111 163 APIRET rc; 112 ULONG fFlags = kHlpPageProtToNative(enmProt); ;164 ULONG fFlags = kHlpPageProtToNative(enmProt); 113 165 114 166 if (!fFixed) … … 163 215 KHLP_DECL(int) kHlpPageProtect(void *pv, KSIZE cb, KPROT enmProt) 164 216 { 165 #if K_OS == K_OS_OS2 217 #if K_OS == K_OS_DARWIN 218 int rc; 219 220 rc = kHlpSys_mprotect(pv, cb, kHlpPageProtToNative(enmProt)); 221 if (!rc) 222 return 0; 223 /** @todo convert errno -> kErrors */ 224 kHlpAssert(0); 225 return rc; 226 227 #elif K_OS == K_OS_OS2 166 228 APIRET rc; 167 ULONG fFlags = kHlpPageProtToNative(enmProt); ;229 ULONG fFlags = kHlpPageProtToNative(enmProt); 168 230 169 231 /* … … 216 278 KHLP_DECL(int) kHlpPageFree(void *pv, KSIZE cb) 217 279 { 218 #if K_OS == K_OS_OS2 280 #if K_OS == K_OS_DARWIN 281 int rc; 282 283 rc = kHlpSys_munmap(pv, cb); 284 if (!rc) 285 return 0; 286 /** @todo convert errno -> kErrors */ 287 return rc; 288 289 #elif K_OS == K_OS_OS2 219 290 APIRET rc; 220 291
Note:
See TracChangeset
for help on using the changeset viewer.