Changeset 64 for trunk/src/kernel32/lfile.cpp
- Timestamp:
- Jun 9, 1999, 11:57:32 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/lfile.cpp
r51 r64 9 9 * 1998/06/12 PH Patrick Haller (haller@zebra.fh-weingarten.de) 10 10 * 11 * @(#) LFILE.C 1.0.0 1998/06/12 PHadded HandleManager support11 * @(#) LFILE.C 1.0.0 1998/06/12 PH added HandleManager support 12 12 * 1.1.0 1998/08/29 KSO corrected error codes and forwarded 13 * to Win32 file api as NT/95 does. 13 * to Win32 file api as NT/95 does. 14 * 1.1.1 1999/06/09 PH NOTE: only forard to KERNEL32:FILEIO 15 * calls, never do anything else ! 14 16 */ 15 17 … … 36 38 HFILE WIN32API _lclose(HFILE arg1) 37 39 { 38 dprintf(("KERNEL32: _lclose(%08xh)\n", 39 arg1)); 40 if (CloseHandle(arg1)) 41 return 0; 42 else 43 return -1; 40 dprintf(("KERNEL32: _lclose(%08xh)\n", 41 arg1)); 42 43 if (CloseHandle(arg1)) 44 return 0; 45 else 46 return -1; 44 47 } 45 48 … … 58 61 59 62 HFILE WIN32API _lcreat(LPCSTR arg1, 60 int arg2) 61 { 62 HANDLE hFile; 63 dprintf(("KERNEL32: _lcreat(%s, %08xh)\n", 64 arg1, 65 arg2)); 66 67 //if (arg2 & ~(1 | 2 | 4)) 68 // dprintf(("KERNEL32: Warning: _lcreat has unknown flag(s) set - fails.\n")); 69 70 //SetLastError(0); - CreateFileA sets error 71 hFile = CreateFileA(arg1, /* filename */ 72 GENERIC_READ | GENERIC_WRITE, /* readwrite access */ 73 FILE_SHARE_READ | FILE_SHARE_WRITE,/* share all */ 74 NULL, /* ignore scurity */ 75 CREATE_ALWAYS, /* create (trunkate don't work) */ 76 arg2 & 0x3fb7, /* so M$ does (that is more attributes than I could find in the headers and in the docs!) */ 77 NULL); /* no template */ 78 dprintf(("KERNEL32: _lcreat returns %d.\n", hFile)); 79 return hFile; 63 int arg2) 64 { 65 HANDLE hFile; 66 67 dprintf(("KERNEL32: _lcreat(%s, %08xh)\n", 68 arg1, 69 arg2)); 70 71 //if (arg2 & ~(1 | 2 | 4)) 72 // dprintf(("KERNEL32: Warning: _lcreat has unknown flag(s) set - fails.\n")); 73 74 //SetLastError(0); - CreateFileA sets error 75 hFile = CreateFileA(arg1, /* filename */ 76 GENERIC_READ | GENERIC_WRITE, /* readwrite access */ 77 FILE_SHARE_READ | FILE_SHARE_WRITE,/* share all */ 78 NULL, /* ignore scurity */ 79 CREATE_ALWAYS, /* create (trunkate don't work) */ 80 arg2 & 0x3fb7, /* so M$ does (that is more attributes than I could find in the headers and in the docs!) */ 81 NULL); /* no template */ 82 83 dprintf(("KERNEL32: _lcreat returns %08xh.\n", 84 hFile)); 85 return hFile; 80 86 } 81 87 … … 94 100 95 101 HFILE WIN32API _lopen(LPCSTR pszFileName, 96 int arg2) 97 { 98 ULONG ulAccess = 0; 99 ULONG ulShare; 100 HANDLE hFile; 101 102 dprintf(("KERNEL32: _lopen(%s, %08xh)\n", 103 pszFileName, 104 arg2)); 105 106 if (arg2 & ~(OF_READ|OF_READWRITE|OF_WRITE|OF_SHARE_COMPAT|OF_SHARE_DENY_NONE|OF_SHARE_DENY_READ|OF_SHARE_DENY_WRITE|OF_SHARE_EXCLUSIVE)) 107 dprintf(("KERNEL32: (warn) _lopen has unknown flag(s) set.\n")); 108 109 /* Access */ 110 ulAccess |= arg2 & OF_READ ? GENERIC_READ : 0; 111 ulAccess |= arg2 & OF_WRITE ? GENERIC_WRITE : 0; 112 ulAccess |= arg2 & OF_READWRITE ? GENERIC_READ | GENERIC_WRITE : 0; 113 114 /* Share */ 115 ulShare = arg2 & (OF_SHARE_COMPAT | OF_SHARE_DENY_NONE | OF_SHARE_DENY_READ | OF_SHARE_DENY_WRITE | OF_SHARE_EXCLUSIVE); 116 if (ulShare == OF_SHARE_DENY_READ) 117 ulShare = FILE_SHARE_WRITE; 118 else if (ulShare == OF_SHARE_DENY_WRITE) 119 ulShare = FILE_SHARE_READ; 120 else if (ulShare == OF_SHARE_DENY_NONE) 121 ulShare = FILE_SHARE_READ | FILE_SHARE_WRITE; 122 else if (ulShare == OF_SHARE_EXCLUSIVE) 123 ulShare = 0; //no share 124 else if (ulShare == OF_SHARE_COMPAT) 125 ulShare = FILE_SHARE_READ | FILE_SHARE_WRITE; 126 else 127 { 128 dprintf(("KERNEL32: _lopen - warning incorrect value for arg2 (or incorrect implementation...)\n")); 129 ulShare = 0; 130 } 131 132 hFile = CreateFileA(pszFileName, /* filename */ 133 ulAccess, /* */ 134 ulShare, /* */ 135 NULL, /* ignore scurity */ 136 OPEN_EXISTING, /* create a _new_ file - fail if exists */ 137 FILE_ATTRIBUTE_NORMAL, /* normal attribs - no flags */ //m$ sets this to 0 138 NULL); /* no template */ 139 140 dprintf(("KERNEL32: _lopen returns %d.\n", hFile)); 141 return hFile; 102 int arg2) 103 { 104 ULONG ulAccess = 0; 105 ULONG ulShare; 106 HANDLE hFile; 107 108 dprintf(("KERNEL32: _lopen(%s, %08xh)\n", 109 pszFileName, 110 arg2)); 111 112 if (arg2 & ~(OF_READ|OF_READWRITE|OF_WRITE|OF_SHARE_COMPAT|OF_SHARE_DENY_NONE|OF_SHARE_DENY_READ|OF_SHARE_DENY_WRITE|OF_SHARE_EXCLUSIVE)) 113 dprintf(("KERNEL32: (warn) _lopen has unknown flag(s) set.\n")); 114 115 /* Access */ 116 ulAccess |= arg2 & OF_READ ? GENERIC_READ : 0; 117 ulAccess |= arg2 & OF_WRITE ? GENERIC_WRITE : 0; 118 ulAccess |= arg2 & OF_READWRITE ? GENERIC_READ | GENERIC_WRITE : 0; 119 120 /* Share */ 121 ulShare = arg2 & (OF_SHARE_COMPAT | OF_SHARE_DENY_NONE | OF_SHARE_DENY_READ | OF_SHARE_DENY_WRITE | OF_SHARE_EXCLUSIVE); 122 if (ulShare == OF_SHARE_DENY_READ) 123 ulShare = FILE_SHARE_WRITE; 124 else if (ulShare == OF_SHARE_DENY_WRITE) 125 ulShare = FILE_SHARE_READ; 126 else if (ulShare == OF_SHARE_DENY_NONE) 127 ulShare = FILE_SHARE_READ | FILE_SHARE_WRITE; 128 else if (ulShare == OF_SHARE_EXCLUSIVE) 129 ulShare = 0; //no share 130 else if (ulShare == OF_SHARE_COMPAT) 131 ulShare = FILE_SHARE_READ | FILE_SHARE_WRITE; 132 else 133 { 134 dprintf(("KERNEL32: _lopen - warning incorrect value for arg2 (or incorrect implementation...)\n")); 135 ulShare = 0; 136 } 137 138 hFile = CreateFileA(pszFileName, /* filename */ 139 ulAccess, /* */ 140 ulShare, /* */ 141 NULL, /* ignore scurity */ 142 OPEN_EXISTING, /* open existing file, fail if new */ 143 FILE_ATTRIBUTE_NORMAL, /* normal attribs - no flags */ //m$ sets this to 0 144 NULL); /* no template */ 145 146 dprintf(("KERNEL32: _lopen returns %08xh.\n", 147 hFile)); 148 149 return hFile; 142 150 } 143 151 … … 156 164 157 165 UINT WIN32API _lread(HFILE arg1, 158 PVOID arg2, 159 UINT arg3) 160 { 161 ULONG rc; 162 163 dprintf(("KERNEL32: _lread(%08xh, %08xh, %08xh)\n", 164 arg1, 165 arg2, 166 arg3)); 167 168 if (!ReadFile(arg1, arg2, arg3, &rc, NULL)) 169 rc = -1; 170 dprintf(("KERNEL32: _lread returns %d.", rc)); 171 172 return rc; 166 PVOID arg2, 167 UINT arg3) 168 { 169 ULONG rc; 170 171 dprintf(("KERNEL32: _lread(%08xh, %08xh, %08xh)\n", 172 arg1, 173 arg2, 174 arg3)); 175 176 if (!ReadFile(arg1, 177 arg2, 178 arg3, 179 &rc, 180 NULL)) 181 rc = -1; 182 183 dprintf(("KERNEL32: _lread returns %08xh.", 184 rc)); 185 186 return rc; 173 187 } 174 188 … … 187 201 188 202 LONG WIN32API _llseek(HFILE arg1, 189 LONG arg2, 190 int arg3) 191 { 192 ULONG rc; 193 194 dprintf(("KERNEL32: _llseek(%08xh, %08xh, %08xh)\n", 195 arg1, 196 arg2, 197 arg3)); 198 if (!(arg3 == FILE_BEGIN || arg3 == FILE_CURRENT || arg3 == FILE_END)) 199 { 200 dprintf(("KERNEL32: _llseek - incorrect origin - fails.\n" )); 201 return -1; 202 } 203 204 rc = SetFilePointer(arg1, arg2, NULL, arg3); //returns -1 on error (-1 == 0xffffffff) 205 dprintf(("KERNEL32: _llseek returns %d", rc)); 206 return rc; 203 LONG arg2, 204 int arg3) 205 { 206 ULONG rc; 207 208 dprintf(("KERNEL32: _llseek(%08xh, %08xh, %08xh)\n", 209 arg1, 210 arg2, 211 arg3)); 212 if (!(arg3 == FILE_BEGIN || 213 arg3 == FILE_CURRENT || 214 arg3 == FILE_END)) 215 { 216 dprintf(("KERNEL32: _llseek - incorrect origin - fails.\n" )); 217 return -1; 218 } 219 220 rc = SetFilePointer(arg1, 221 arg2, 222 NULL, 223 arg3); //returns -1 on error (-1 == 0xffffffff) 224 225 dprintf(("KERNEL32: _llseek returns %08xh", rc)); 226 227 return rc; 207 228 } 208 229 … … 220 241 *****************************************************************************/ 221 242 222 UINT WIN32API _lwrite(HFILE arg1, LPCSTR arg2, 223 UINT arg3) 224 { 225 ULONG rc; 226 227 dprintf(("KERNEL32: _lwrite(%08xh, %08xh, %08xh)\n", 228 arg1, 229 arg2, 230 arg3)); 231 232 if (!WriteFile(arg1, (PVOID)arg2, arg3, &rc, NULL)) 233 rc = -1; 234 dprintf(("KERNEL32: _lwrite returns %d.\n", rc)); 235 return rc; 236 } 237 243 UINT WIN32API _lwrite(HFILE arg1, 244 LPCSTR arg2, 245 UINT arg3) 246 { 247 ULONG rc; 248 249 dprintf(("KERNEL32: _lwrite(%08xh, %08xh, %08xh)\n", 250 arg1, 251 arg2, 252 arg3)); 253 254 if (!WriteFile(arg1, 255 (PVOID)arg2, 256 arg3, 257 &rc, 258 NULL)) 259 rc = -1; 260 261 dprintf(("KERNEL32: _lwrite returns %08xh.\n", 262 rc)); 263 264 return rc; 265 } 266
Note:
See TracChangeset
for help on using the changeset viewer.