Compare commits

...

1904 Commits

Author SHA1 Message Date
The ReactOS Team
eeff2a1e2c This commit was manufactured by cvs2svn to create tag 'krnl0019'.
svn path=/tags/krnl0019/; revision=2645
2002-02-24 13:10:37 +00:00
Jason Filby
0a549d94c9 New 0019 release date
svn path=/trunk/; revision=2644
2002-02-24 13:10:37 +00:00
Eric Kohl
265859b2aa Fixed showstopper!
svn path=/trunk/; revision=2643
2002-02-23 23:08:58 +00:00
Steven Edwards
558200355f dll baseaddress list, may be used as part of future build process.
Please help keep it up2date.

svn path=/trunk/; revision=2642
2002-02-23 03:52:18 +00:00
Eric Kohl
14f393cb80 Added some more prototypes
svn path=/trunk/; revision=2641
2002-02-22 17:57:57 +00:00
Eric Kohl
e21b78b3e3 Added ObGetObjectPointerCount() and SetokenImpersonationLevel().
svn path=/trunk/; revision=2640
2002-02-22 13:36:24 +00:00
Jason Filby
fc7aea5826 Version 0.0.19
svn path=/trunk/; revision=2639
2002-02-21 22:48:39 +00:00
Eric Kohl
e8082ff034 Removed common TOKEN_CONTROL structure.
svn path=/trunk/; revision=2638
2002-02-20 22:51:48 +00:00
Eric Kohl
8393800e76 Started security manager initialization.
Some cleanup.

svn path=/trunk/; revision=2637
2002-02-20 20:16:49 +00:00
KJK::Hyperion
19ad3d7a30 purely cosmetic commit: edited the introductory comments of several files to uniform them to a common format, added $Id$ macro to all files, cleanup from legacy stuff, fully commented templates
svn path=/trunk/; revision=2636
2002-02-20 09:17:58 +00:00
KJK::Hyperion
e858ec1801 whoops - forgot to commit header files
svn path=/trunk/; revision=2635
2002-02-20 07:13:22 +00:00
KJK::Hyperion
ad8ae0a2f5 now introducing the POSIX+ client DLL! (my first check-in, hope I don't f*** up something)
svn path=/trunk/; revision=2634
2002-02-20 07:06:52 +00:00
Eric Kohl
4e9d91b819 Removed unused code.
svn path=/trunk/; revision=2633
2002-02-19 14:06:36 +00:00
Eric Kohl
40a007aba1 - Fixed object creation. Named objects are now automatically attached to a parent directory object.
- Minor header cleanup.

svn path=/trunk/; revision=2632
2002-02-19 00:09:25 +00:00
Hartmut Birr
46cef7fc9b Fixed the 'Frequent Crasher Bug'.
svn path=/trunk/; revision=2631
2002-02-18 18:41:23 +00:00
Hartmut Birr
be9ed281e0 Fixed some overruns with a not zero terminated string and a given precision specification.
svn path=/trunk/; revision=2630
2002-02-18 18:39:31 +00:00
Hartmut Birr
d1cfd4ffdb Changed from Nt to Zw functions in VGAResetDevice.
svn path=/trunk/; revision=2629
2002-02-16 22:00:52 +00:00
Jason Filby
c9d3381474 disable debugging messages
svn path=/trunk/; revision=2628
2002-02-16 00:51:02 +00:00
Hartmut Birr
3ea1b601d2 Restore the 80x50 mode in VGAResetDevice().
svn path=/trunk/; revision=2627
2002-02-15 20:17:10 +00:00
Hartmut Birr
409ce02fa7 In W32kDeleteDC call UnreferenceDriver only for non memory DC.
This will fix the second gditest bug.

svn path=/trunk/; revision=2626
2002-02-15 20:14:43 +00:00
Eric Kohl
9ca5a97711 Removed obsolete functions/protypes HalInitFirstTask() and HalSwitchTask().
Renamed misleading function HalReleaseTask() to KeReleaseThread().

svn path=/trunk/; revision=2625
2002-02-15 14:47:55 +00:00
Brian Palmer
67d2ffb153 Fixed bug in partition table code where it incorrectly calculated the partition start sector
svn path=/trunk/; revision=2624
2002-02-14 23:11:05 +00:00
Hartmut Birr
40910fe910 Set the min size of an allocated block to the size of the free block header.
This fix the gditest bug.

svn path=/trunk/; revision=2623
2002-02-14 00:07:23 +00:00
Jason Filby
b90a7afc42 No need to load vgamp.sys on startup
svn path=/trunk/; revision=2622
2002-02-12 12:30:46 +00:00
Jason Filby
252d2dbf1d Reenable CSRSS process detection
svn path=/trunk/; revision=2621
2002-02-12 12:00:28 +00:00
Casper Hornstrup
f57567e347 Capture debug prints in PICE.
Break into PICE on control+d.

svn path=/trunk/; revision=2620
2002-02-10 20:21:40 +00:00
Eric Kohl
7a5ecf6515 Implemented expansion of REG_MULTI_SZ.
svn path=/trunk/; revision=2619
2002-02-10 13:55:45 +00:00
Casper Hornstrup
bfe7eb862e Display driver name when loading it.
svn path=/trunk/; revision=2618
2002-02-10 13:35:37 +00:00
Casper Hornstrup
7115aab674 Added Private ICE to main makefile.
svn path=/trunk/; revision=2617
2002-02-10 02:02:15 +00:00
Casper Hornstrup
59c5e836e1 Made it easier to add new keyboard layouts.
Added Danish keyboard layout (DK).

svn path=/trunk/; revision=2616
2002-02-10 02:01:31 +00:00
Eric Kohl
0ce194ac1a Fixed wrong string length calculation in RtlAppendUnicodeToString().
svn path=/trunk/; revision=2615
2002-02-09 23:29:50 +00:00
Casper Hornstrup
0fdb820f0b Oops...don't load that driver.
svn path=/trunk/; revision=2614
2002-02-09 19:20:44 +00:00
Casper Hornstrup
430a416722 Accept /DEBUGPORT=GDB and /DEBUGPORT=PICE on command line.
Break into debugger on KeBugCheckEx() if available.
Fixed typo in readme.txt.

svn path=/trunk/; revision=2613
2002-02-09 18:41:24 +00:00
Eugene Ingerman
effa2fbabb Fixed locals and evaluation in pice.
svn path=/trunk/; revision=2612
2002-02-09 07:34:05 +00:00
Brian Palmer
bfa03497ad CacheInitializeDrive() no longer retains old cache data on removable drives
Fixed small bug where it could possibly try to read more sectors than the BIOS supports

svn path=/trunk/; revision=2611
2002-02-08 23:58:12 +00:00
Casper Hornstrup
1cc5bd55b6 Removed or changed debug prints printed at boot.
svn path=/trunk/; revision=2610
2002-02-08 02:57:10 +00:00
Steven Edwards
565837d1f1 updated to install winhello and winefile
svn path=/trunk/; revision=2609
2002-02-07 03:22:04 +00:00
Steven Edwards
168b55e958 cleanup + finger client
svn path=/trunk/; revision=2608
2002-02-07 01:32:20 +00:00
Eric Kohl
1d0d9fbf9f Implemented [Nt/Zw]QueryMultipleValueKey().
svn path=/trunk/; revision=2607
2002-02-06 01:23:10 +00:00
Hartmut Birr
52d2359910 Fixed some bugs in vfatMakeAbsoluteFilename/VfatOpenFile with relative filenames.
svn path=/trunk/; revision=2606
2002-02-05 21:32:30 +00:00
Hartmut Birr
b95ed3ddf1 Fixed a bug in DoQuery with empty serach pattern strings after the first call to DoQuery.
svn path=/trunk/; revision=2605
2002-02-05 21:31:03 +00:00
Eric Kohl
48fa361844 Added system.hiv to boot modules.
svn path=/trunk/; revision=2604
2002-02-05 15:53:20 +00:00
Eric Kohl
916157c159 Implemented value enumeration in RtlQueryRegistryValues().
svn path=/trunk/; revision=2603
2002-02-05 15:42:41 +00:00
Eric Kohl
5d67a14618 Fixed name string length and termination for KeyValueBasicInformation and KeyValueFullInformation.
svn path=/trunk/; revision=2602
2002-02-05 02:48:56 +00:00
Phillip Susi
1815855fb6 Fixed linkage to unbzip2.sys, working again
svn path=/trunk/; revision=2601
2002-02-05 02:30:13 +00:00
Phillip Susi
2a7825f502 Balenced paged and non paged pool sizes to 100 megs each, instead of 4 paged and 400 non
svn path=/trunk/; revision=2600
2002-02-05 02:24:29 +00:00
Casper Hornstrup
14a6c7e57d Removed old HAL.
svn path=/trunk/; revision=2599
2002-02-04 22:13:02 +00:00
Steven Edwards
9808ba2cb8 Fixed a typo - Guido de Jong
svn path=/trunk/; revision=2598
2002-02-04 13:08:58 +00:00
Eric Kohl
1768fa6632 Fixed a typo.
svn path=/trunk/; revision=2597
2002-02-04 01:21:03 +00:00
Emanuele Aliberti
09ce94865b Rollback to old LPC_MESSAGE_HEADER.
svn path=/trunk/; revision=2596
2002-02-03 22:32:18 +00:00
Eric Kohl
246369a31b Updates to the disk driver stack.
svn path=/trunk/; revision=2595
2002-02-03 20:21:59 +00:00
Eugene Ingerman
95410deae9 Fix for current source line unassembly bug in pice.
svn path=/trunk/; revision=2594
2002-02-03 01:10:16 +00:00
Eric Kohl
cca6500c93 Fixed broken serial debug logging.
The gdb interface is enabled by the /GDB option on the command line.

svn path=/trunk/; revision=2593
2002-02-02 20:13:42 +00:00
Phillip Susi
01ab93badd Oops! binary libraries should't be in CVS!
svn path=/trunk/; revision=2592
2002-02-02 18:00:54 +00:00
Phillip Susi
ccaafe31cf Use LARGE_INTEGER for section view size, as expected by NtCreateSection
Original Patch by Guido de Jong

svn path=/trunk/; revision=2591
2002-02-02 17:15:22 +00:00
Phillip Susi
51357bf8aa Changed NULL to 0 where integer expected, to get rid of warning
Patch by Guido de Jong.

svn path=/trunk/; revision=2590
2002-02-02 17:14:40 +00:00
Hartmut Birr
c64bcfabad Fixed a buffer overflow in DoQuery, if the unicode string (search pattern) isn't zero-terminated.
Fixed the returned length for the file names.
Fixed the returned status at the end of a directory scan.

svn path=/trunk/; revision=2589
2002-02-02 14:04:55 +00:00
Phillip Susi
a5549b5653 Build unbzip2.sys as export driver, instead of unbzip2.dll
svn path=/trunk/; revision=2587
2002-01-31 20:26:25 +00:00
Phillip Susi
f17ca2d3d9 Link to unbzip2.sys
svn path=/trunk/; revision=2586
2002-01-31 20:22:12 +00:00
Phillip Susi
8e5647c51a A few minor changes
svn path=/trunk/; revision=2585
2002-01-31 20:22:00 +00:00
Eric Kohl
8acb48f0de Added cdrom class driver skeleton.
svn path=/trunk/; revision=2584
2002-01-31 15:02:12 +00:00
Eric Kohl
ae35748cfa Disk driver stack update.
svn path=/trunk/; revision=2583
2002-01-31 14:58:52 +00:00
Eugene Ingerman
760f3874ca no message
svn path=/trunk/; revision=2582
2002-01-31 05:30:06 +00:00
Eugene Ingerman
1cdf4f9806 Fixed source code display on breakpoint in pice.
svn path=/trunk/; revision=2581
2002-01-31 05:29:28 +00:00
Steven Edwards
c331ef4c1b fix a couple of warnings - Guido de Jong
svn path=/trunk/; revision=2580
2002-01-31 04:22:50 +00:00
Eugene Ingerman
8d8acf54de Debug output cleanup.
svn path=/trunk/; revision=2579
2002-01-30 20:42:04 +00:00
Eugene Ingerman
23b672891b Porting pice. Workaround for a bug in gcc. Some other small stuff.
svn path=/trunk/; revision=2578
2002-01-30 19:45:24 +00:00
Eugene Ingerman
87b5401bff Porting pice. Bug fixes for disassembly.
svn path=/trunk/; revision=2577
2002-01-29 07:22:26 +00:00
Eugene Ingerman
e8e9853e27 Porting pice. Bug fixes.
svn path=/trunk/; revision=2576
2002-01-29 04:21:17 +00:00
Steven Edwards
ae77777da5 added finger to makefile
svn path=/trunk/; revision=2575
2002-01-28 08:38:22 +00:00
Steven Edwards
c8abcc5cb4 Take care of some warnings and remove a unused header in finger
svn path=/trunk/; revision=2574
2002-01-28 08:37:34 +00:00
Steven Edwards
b80ba17572 finger client for reactos
svn path=/trunk/; revision=2573
2002-01-28 07:17:21 +00:00
David Welch
130144b797 Fixed clean rule
svn path=/trunk/; revision=2572
2002-01-27 17:28:16 +00:00
David Welch
c34c3cfae4 Added missing files
Updated .cvsignore files

svn path=/trunk/; revision=2571
2002-01-27 14:47:44 +00:00
David Welch
0f6c1e0177 Added missing file
svn path=/trunk/; revision=2570
2002-01-27 14:08:00 +00:00
David Welch
7d915349e5 Fixes for problems with win32k
svn path=/trunk/; revision=2569
2002-01-27 03:25:45 +00:00
Eric Kohl
f48e849f05 Basic work on disk driver stack (still incomplete).
svn path=/trunk/; revision=2568
2002-01-27 01:25:49 +00:00
David Welch
8dff4a88dc More user work
svn path=/trunk/; revision=2567
2002-01-27 01:11:24 +00:00
Phillip Susi
c4a09186d3 Fixed vma command to show kernel memory space too, not just user
svn path=/trunk/; revision=2566
2002-01-27 00:34:59 +00:00
Phillip Susi
eea1010947 Fixed page fault handler to walk the correct memory space ( kernel or user ) depending on where the address is
svn path=/trunk/; revision=2565
2002-01-27 00:33:36 +00:00
Casper Hornstrup
b2f22718cc Remove build tools on make clean.
Patches from Guido de Jong.

svn path=/trunk/; revision=2564
2002-01-26 23:56:15 +00:00
Steven Edwards
6be4e2ac3a Updated license information for whois and ncftp.
svn path=/trunk/; revision=2563
2002-01-26 21:44:32 +00:00
David Welch
1a131779a2 Updated ntoskrnl win32 support
svn path=/trunk/; revision=2562
2002-01-26 21:22:48 +00:00
David Welch
aebf70e07f Present large reads to the filesystem from CcCopyRead
svn path=/trunk/; revision=2561
2002-01-26 21:21:02 +00:00
Phillip Susi
b51e21217f Fixed keyboard scancode maps for US keyboards
svn path=/trunk/; revision=2560
2002-01-26 19:46:36 +00:00
Eric Kohl
26c5adcb95 Added support for IRP_MJ_SCSI
svn path=/trunk/; revision=2559
2002-01-26 17:59:25 +00:00
Emanuele Aliberti
35fb40b8b7 LPC message types changed from macros to a enum type (LPC_TYPE).
svn path=/trunk/; revision=2558
2002-01-26 11:19:18 +00:00
Phillip Susi
8779eb9ec7 Read files in non cached mode, much faster this way
svn path=/trunk/; revision=2557
2002-01-26 08:09:21 +00:00
Phillip Susi
48908e14cc Fixed IoCreateFile to recognize the FILE_NO_INTERMEDIATE_BUFFERING flag
svn path=/trunk/; revision=2556
2002-01-26 06:20:16 +00:00
Phillip Susi
72e047dd5b Fixed bug in SwitchTable
svn path=/trunk/; revision=2555
2002-01-26 05:54:25 +00:00
Eugene Ingerman
6c0fa06e39 Porting pice. Fixed bug in interrupt handling.
svn path=/trunk/; revision=2554
2002-01-26 05:17:45 +00:00
Steven Edwards
12359f4a27 Updated to install whois and edit
svn path=/trunk/; revision=2553
2002-01-26 03:23:25 +00:00
Steven Edwards
8d8fea751b updated makefile to build regsvr32
svn path=/trunk/; revision=2552
2002-01-26 01:37:35 +00:00
Eugene Ingerman
5850033b27 Added a few definitions for pice.
svn path=/trunk/; revision=2551
2002-01-26 01:11:04 +00:00
Phillip Susi
ab6e9ba7b7 Fixed a file IO calls to handle failure correctly
svn path=/trunk/; revision=2550
2002-01-25 01:46:51 +00:00
Phillip Susi
5f282abf99 Fixed infinite recursive call in debug print
svn path=/trunk/; revision=2549
2002-01-25 01:45:54 +00:00
Eric Kohl
56275af6c3 Fixed drive identification bug.
svn path=/trunk/; revision=2548
2002-01-24 10:04:50 +00:00
Brian Palmer
148e40a24e Reworked the boot sector & boot drive code
You can again use FreeLoader to dual boot between two drives or a boot sector file

svn path=/trunk/; revision=2547
2002-01-24 00:59:16 +00:00
Casper Hornstrup
5a6adb4f13 Added GNU Debugger stub for remote debugging.
Fixed bugs in NtQueryDirectoryObject.
Added static library target.

svn path=/trunk/; revision=2546
2002-01-23 23:39:26 +00:00
Brian Palmer
198a544138 Removed code to save screen contents before entering freeldr
Moved all architecture specific code to the arch & arch/i386 directories
Renamed asmcode.* to arch.*

svn path=/trunk/; revision=2545
2002-01-23 19:57:42 +00:00
Brian Palmer
fd75e7d985 Improved disk error reporting
svn path=/trunk/; revision=2544
2002-01-22 23:56:08 +00:00
Steven Edwards
4694f10044 updated to build whois client
svn path=/trunk/; revision=2543
2002-01-22 00:10:09 +00:00
Steven Edwards
f853dfb8a1 BSD 4.x whois client for win32.
svn path=/trunk/; revision=2542
2002-01-21 23:13:45 +00:00
Phillip Susi
905afd86d0 Removed duplicate definition of IO_COUNTERS structure
svn path=/trunk/; revision=2541
2002-01-21 22:35:30 +00:00
Phillip Susi
e5d54247ac Fixed several warnings by #includeing ctype.h, and marking several very long integral constants with the LL suffix
svn path=/trunk/; revision=2540
2002-01-21 22:34:55 +00:00
Hartmut Birr
57bf0a56e5 Added ntoskrnl.sym to install rule.
svn path=/trunk/; revision=2539
2002-01-21 22:34:36 +00:00
Phillip Susi
63546989b5 Replased improper use of NULL with 0 to get rid of warnings
svn path=/trunk/; revision=2538
2002-01-21 22:32:59 +00:00
Hartmut Birr
f32fe94b88 Removed IoGetCurrentIrpStackLocation from some functions.
svn path=/trunk/; revision=2537
2002-01-21 22:30:27 +00:00
Hartmut Birr
8a8f132dbf Added the packed attribute to IO_STACK_LOCATION.
svn path=/trunk/; revision=2536
2002-01-21 22:28:45 +00:00
Hartmut Birr
b4ee5e08ee Changed the macros IoGetCurrentIrpStackLocation and IoGetNextIrpStackLocation to the old state.
svn path=/trunk/; revision=2535
2002-01-21 22:27:36 +00:00
Eric Kohl
28c174051d Fixed some function declarations.
svn path=/trunk/; revision=2534
2002-01-21 11:42:04 +00:00
Eugene Ingerman
88650ed55e Porting pice. Bug fixes.
svn path=/trunk/; revision=2533
2002-01-21 10:03:50 +00:00
Emanuele Aliberti
656f7cb1f4 Test crt0 for the PSX subsystem.
svn path=/trunk/; revision=2532
2002-01-20 21:24:49 +00:00
Emanuele Aliberti
e031e6192e Bare shell for testing the PSX subsystem (not ready yet).
svn path=/trunk/; revision=2531
2002-01-20 21:22:29 +00:00
Brian Palmer
b26dfc9d77 Fixed bug that occurred during DEBUG builds
svn path=/trunk/; revision=2530
2002-01-19 09:40:29 +00:00
Eric Kohl
a2760cfdd4 Disabled nls file loading
svn path=/trunk/; revision=2529
2002-01-19 03:30:28 +00:00
Brian Palmer
5db0abce79 Better LBA support
Correctly determines FAT type based on cluster count instead of partition id

svn path=/trunk/; revision=2528
2002-01-19 00:37:06 +00:00
Eric Kohl
c5c65dd160 Fixed obvious typos.
svn path=/trunk/; revision=2527
2002-01-18 22:43:51 +00:00
Eric Kohl
c78f940a00 Added missing prototype.
svn path=/trunk/; revision=2526
2002-01-18 22:42:25 +00:00
Brian Palmer
41e1df9977 Recommitting file as binary
svn path=/trunk/; revision=2525
2002-01-18 19:20:32 +00:00
Brian Palmer
b80569cee7 Accidentally committed this file without the -kb flag
svn path=/trunk/; revision=2524
2002-01-18 19:19:43 +00:00
Brian Palmer
ec2583c6d5 Added disk cache
Optimized disk reads so it reads a track at a time or 64k if LBA

svn path=/trunk/; revision=2523
2002-01-18 05:59:58 +00:00
Emanuele Aliberti
ff0495900e Year, in the copyright string, updated.
svn path=/trunk/; revision=2522
2002-01-17 23:26:26 +00:00
Emanuele Aliberti
e5d9890c6c KERNEL_VERSION macro removed from reactos/version.h.
Use the dinamically generated macros in reactos/buildno.h.

svn path=/trunk/; revision=2521
2002-01-17 23:22:58 +00:00
Emanuele Aliberti
43348bb6dc FsRtlIsNtstatusExpected fixed (Bo Branten reported the bug).
svn path=/trunk/; revision=2520
2002-01-17 23:17:39 +00:00
Hartmut Birr
035f768d4a Added some fixes for accessing the page file.
svn path=/trunk/; revision=2519
2002-01-15 21:54:51 +00:00
Casper Hornstrup
550ffd05d5 Fixed compilation error.
svn path=/trunk/; revision=2518
2002-01-15 20:08:48 +00:00
Eugene Ingerman
b438e48231 Porting pice. Forgot this one.
svn path=/trunk/; revision=2517
2002-01-15 04:37:08 +00:00
Eugene Ingerman
3595be74a5 Porting pice. Intermediate checkin. Now compiles and runs a little bit.
svn path=/trunk/; revision=2516
2002-01-15 04:35:14 +00:00
David Welch
793bbe0455 Implemented NtW32Call and NtCallbackReturn
Updated some .cvsignore files

svn path=/trunk/; revision=2515
2002-01-15 02:51:32 +00:00
Phillip Susi
e136b71248 NtW32Call was causing a compile error and didn't do anything anyhow, so I changed it back to be UNIMPLEMENTED so things will compile.
By the way, what is this function for?

svn path=/trunk/; revision=2514
2002-01-15 01:42:57 +00:00
David Welch
0267a0a1c8 More missing files.
svn path=/trunk/; revision=2513
2002-01-15 00:43:18 +00:00
Eugene Ingerman
2aceac7176 Porting pice. Intermediate checkin. Now compiles.
svn path=/trunk/; revision=2512
2002-01-14 22:04:09 +00:00
David Welch
f36ace9e25 More missing files
svn path=/trunk/; revision=2511
2002-01-14 09:12:22 +00:00
Eric Kohl
d2b345f07d Fixed registry bug.
svn path=/trunk/; revision=2510
2002-01-14 04:51:15 +00:00
Eric Kohl
13b04f00b5 Added atapi disk driver stack (disabled).
svn path=/trunk/; revision=2509
2002-01-14 01:49:47 +00:00
Eric Kohl
f541fc1ccf Install disk drivers and *.nls files.
svn path=/trunk/; revision=2508
2002-01-14 01:47:44 +00:00
Eric Kohl
b25339ac84 Improved disk driver stack.
svn path=/trunk/; revision=2507
2002-01-14 01:45:03 +00:00
Eric Kohl
89ff8f7de2 Split rtl.h into rtl.h and rtltypes.h.
svn path=/trunk/; revision=2506
2002-01-14 01:41:08 +00:00
David Welch
47910ad286 Added missing files
svn path=/trunk/; revision=2505
2002-01-14 01:11:58 +00:00
David Welch
43b2190795 Began work on message queue and default window procedure
svn path=/trunk/; revision=2504
2002-01-13 22:52:08 +00:00
Emanuele Aliberti
a600e78a7a Minor changes and some interfaces updated in FsRtl.
svn path=/trunk/; revision=2503
2002-01-13 22:02:31 +00:00
Eugene Ingerman
2c1c5c45b1 Porting pice. Intermediate checkin.
svn path=/trunk/; revision=2502
2002-01-13 08:47:32 +00:00
Eric Kohl
fd4d47ccfc Ignore '\r' in HalDisplayString().
svn path=/trunk/; revision=2499
2002-01-10 01:01:27 +00:00
Eric Kohl
25c85c7dfe KeBugCheck() calls KeBugCheckEx().
KeBugCheckEx() displays additional bug message.

svn path=/trunk/; revision=2498
2002-01-10 00:59:32 +00:00
Eric Kohl
1208d849d0 Added message table to resouces.
Fixed a duplicate message definition.

svn path=/trunk/; revision=2497
2002-01-10 00:57:30 +00:00
Eric Kohl
17b74887c6 Fixed type casts.
svn path=/trunk/; revision=2496
2002-01-10 00:55:23 +00:00
David Welch
fe7d926068 More swapping fixes
svn path=/trunk/; revision=2495
2002-01-09 03:00:21 +00:00
Eugene Ingerman
3a8ce6bf63 Porting pice. Changed symbolic information handling.
svn path=/trunk/; revision=2494
2002-01-08 20:44:18 +00:00
David Welch
8cb9f1dd16 More swapping fixes
svn path=/trunk/; revision=2493
2002-01-08 00:49:02 +00:00
Jason Filby
b93878d368 regsvr32 from Jurgen Van Gael
svn path=/trunk/; revision=2492
2002-01-07 21:12:10 +00:00
Jason Filby
5e182b5ed0 olectl.h from Jurgen Van Gael
svn path=/trunk/; revision=2491
2002-01-07 21:10:33 +00:00
Hartmut Birr
da2423a49a Fixed the mapping of MmPageArray.
This solves the >134MB crash.

svn path=/trunk/; revision=2490
2002-01-05 11:31:05 +00:00
Casper Hornstrup
a9c89818ae Added application that will display statistics for ReactOS source code.
svn path=/trunk/; revision=2489
2002-01-04 23:50:58 +00:00
Casper Hornstrup
598cb0cb4c Fixed compilation of wmc.
svn path=/trunk/; revision=2488
2002-01-04 23:40:13 +00:00
David Welch
cc47e7056e Zero page list
svn path=/trunk/; revision=2487
2002-01-04 23:39:07 +00:00
Eugene Ingerman
fa8eafcb38 Porting pice. Added coff symbol parsing to pice, and some other small things.
svn path=/trunk/; revision=2486
2002-01-04 23:37:29 +00:00
Hartmut Birr
fae2e4844a Fixed a wrong initialisation in PiDeleteProcess().
svn path=/trunk/; revision=2485
2002-01-04 22:35:26 +00:00
Hartmut Birr
6837f9c4ef Fixed the return value for the root key in GetMaxValueNameLength().
svn path=/trunk/; revision=2484
2002-01-04 22:07:38 +00:00
Eric Kohl
0d5652813b Started kernel queue implementation.
Added win32k support functions.

svn path=/trunk/; revision=2483
2002-01-04 13:09:37 +00:00
David Welch
f376a8013e Fixes so wmc compiled on non-windows platforms
svn path=/trunk/; revision=2482
2002-01-04 03:12:13 +00:00
Casper Hornstrup
e2bd4b9b87 Removed reference to bitops.h
svn path=/trunk/; revision=2481
2002-01-04 00:23:54 +00:00
David Welch
c79d00b49a Fixed LPC section bug
svn path=/trunk/; revision=2480
2002-01-03 22:52:29 +00:00
Eric Kohl
059a7a0f64 Implemented process and thread notification routines.
svn path=/trunk/; revision=2479
2002-01-03 18:02:34 +00:00
Eric Kohl
041c7d16a5 Added massage table.
svn path=/trunk/; revision=2478
2002-01-03 14:52:05 +00:00
Eric Kohl
1806f623e7 Implemented PsLookupXxx() functions.
svn path=/trunk/; revision=2477
2002-01-03 14:03:05 +00:00
Casper Hornstrup
3221f88ce3 Free memory for symbols when process is terminated.
svn path=/trunk/; revision=2476
2002-01-03 12:48:02 +00:00
Hartmut Birr
a4178da184 Fixed the length for the registry key HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION.
svn path=/trunk/; revision=2475
2002-01-03 11:09:35 +00:00
Casper Hornstrup
09bfe41894 Free memory for symbols when process is terminated.
svn path=/trunk/; revision=2474
2002-01-02 21:00:55 +00:00
Eric Kohl
7a30c6749a Removed old codepage tables.
svn path=/trunk/; revision=2473
2002-01-02 00:53:51 +00:00
Eric Kohl
00aa97da88 Added binary .nls files.
svn path=/trunk/; revision=2472
2002-01-02 00:51:37 +00:00
Eric Kohl
ab4a7cd152 Added nls tool.
svn path=/trunk/; revision=2471
2002-01-02 00:48:14 +00:00
David Welch
6ade027031 More cygwin fixes
svn path=/trunk/; revision=2470
2002-01-01 05:09:50 +00:00
David Welch
3273c93173 Fixed bug with cygwin1.dll (still doesn't work)
svn path=/trunk/; revision=2469
2002-01-01 03:29:16 +00:00
David Welch
e5a34ef337 Fixed some swapping bugs and deadlocks
svn path=/trunk/; revision=2468
2002-01-01 00:21:57 +00:00
David Welch
3ea11463b3 Swapping to disk
svn path=/trunk/; revision=2467
2001-12-31 19:06:49 +00:00
Steven Edwards
36214fbd89 Updates for console telnet for win32
svn path=/trunk/; revision=2466
2001-12-31 18:30:20 +00:00
Steven Edwards
ab18809029 Updates for ReactOS build system
svn path=/trunk/; revision=2465
2001-12-31 18:25:36 +00:00
Steven Edwards
0dd9d2664c Fixes for real this time for new telnet client
svn path=/trunk/; revision=2464
2001-12-31 17:37:11 +00:00
Steven Edwards
5d7f30939a Fixes for new telnet client
svn path=/trunk/; revision=2463
2001-12-31 17:14:08 +00:00
David Welch
a155c42316 Virtual memory support
svn path=/trunk/; revision=2462
2001-12-31 01:53:46 +00:00
Steven Edwards
02e3483cf5 Updated readme information
svn path=/trunk/; revision=2461
2001-12-30 20:29:54 +00:00
Steven Edwards
5dc19ca3d1 Updating parts rosapps to ReactOS build system
new bat installer for rosapps.

svn path=/trunk/; revision=2460
2001-12-30 20:26:43 +00:00
Steven Edwards
87e06102cd Updates for Midnight Commander and telnet
svn path=/trunk/; revision=2459
2001-12-30 10:07:14 +00:00
Steven Edwards
c98929fa7e New Telnet Client
svn path=/trunk/; revision=2458
2001-12-30 10:05:48 +00:00
Steven Edwards
f0c5d1e87f Midnight Commander for Win32 Makefile Update
svn path=/trunk/; revision=2457
2001-12-30 10:02:48 +00:00
Steven Edwards
e5c0c7185e Midnight Commander for Win32
svn path=/trunk/; revision=2456
2001-12-30 10:02:14 +00:00
Steven Edwards
2a2768dea3 updated wine dlls and programs install script.
svn path=/trunk/; revision=2455
2001-12-30 08:04:23 +00:00
Steven Edwards
4a95d5eee9 updated wine dlls and programs install script.
svn path=/trunk/; revision=2454
2001-12-30 07:31:07 +00:00
Steven Edwards
86bda6b3d9 Added ncftp to rosapps
svn path=/trunk/; revision=2453
2001-12-30 06:31:25 +00:00
Steven Edwards
289a784eef compleated the removal of net_apps from makefile, fix build with readfile build
svn path=/trunk/; revision=2452
2001-12-30 05:49:13 +00:00
Steven Edwards
b3486a5605 removed $(net_apps) from build for reactos
svn path=/trunk/; revision=2451
2001-12-30 05:43:45 +00:00
Steven Edwards
0c57ecc79f updated gditest.c
Thanks to Richard Campbell

svn path=/trunk/; revision=2450
2001-12-30 04:35:55 +00:00
Steven Edwards
4a13352942 moved ping to rosapps/net
svn path=/trunk/; revision=2449
2001-12-30 04:34:20 +00:00
Steven Edwards
78f37dc93e Updated make and install for move of netapps to rosapps
svn path=/trunk/; revision=2448
2001-12-30 04:31:34 +00:00
Steven Edwards
2ee9a6c165 Removed ncftp
svn path=/trunk/; revision=2447
2001-12-30 04:27:43 +00:00
Steven Edwards
3d9541523b Updates for move of net apps to rosapps
svn path=/trunk/; revision=2446
2001-12-30 04:23:18 +00:00
Steven Edwards
f355097ad2 Updates for move of net apps to rosapps
svn path=/trunk/; revision=2445
2001-12-30 04:12:47 +00:00
Steven Edwards
174bb8c3d3 Move network apps to rosapps
svn path=/trunk/; revision=2444
2001-12-30 04:06:25 +00:00
David Welch
3fd3d008eb Trim cache
svn path=/trunk/; revision=2443
2001-12-29 14:32:22 +00:00
Eric Kohl
2fbbe48059 Add NLS information.
svn path=/trunk/; revision=2442
2001-12-28 21:24:48 +00:00
Eric Kohl
5a38010118 Added NLS-file loader.
svn path=/trunk/; revision=2441
2001-12-28 21:21:27 +00:00
Eric Kohl
d6278aba2a Fixed a bug.
svn path=/trunk/; revision=2440
2001-12-28 21:17:37 +00:00
David Welch
aee376797f Memory balancer
svn path=/trunk/; revision=2439
2001-12-28 00:04:45 +00:00
David Welch
47ba969751 Set WP bit in CR0
Fix protection for paged pool
Start on cache improvements

svn path=/trunk/; revision=2438
2001-12-27 23:56:42 +00:00
David Welch
48149a428f More fixes
svn path=/trunk/; revision=2437
2001-12-27 00:00:11 +00:00
David Welch
ff9a3a9a79 Misc fixes.
svn path=/trunk/; revision=2436
2001-12-26 23:34:07 +00:00
Steven Edwards
515231623e Updates for ncftp 3.0.3 for reactos
svn path=/trunk/; revision=2435
2001-12-20 19:05:45 +00:00
Steven Edwards
de04b33937 ncftp for win32 3.0.3
svn path=/trunk/; revision=2434
2001-12-20 18:50:07 +00:00
David Welch
cc824ce464 Fixed fast mutex implementation (they are NOT recursive)
Implemented paged pool
Removed duplicate dependency tool source file

svn path=/trunk/; revision=2433
2001-12-20 03:56:10 +00:00
Steven Edwards
cbd8e654dc Updated makefile to build winefilemanager
svn path=/trunk/; revision=2432
2001-12-16 05:27:16 +00:00
Eugene Ingerman
3edb1beb95 Porting pice. Added pe parsing in loader.
svn path=/trunk/; revision=2431
2001-12-15 23:50:07 +00:00
Emanuele Aliberti
a7d526433d A general Makefile for building the POSIX+ development kit.
svn path=/trunk/; revision=2430
2001-12-15 11:04:26 +00:00
Emanuele Aliberti
8c97b5dd72 A general Makefile for building the native/kernel-mode development kit.
svn path=/trunk/; revision=2429
2001-12-15 11:02:40 +00:00
Emanuele Aliberti
074449ffe5 A general Makefile for building the Win32(tm) development kit.
svn path=/trunk/; revision=2428
2001-12-15 11:00:53 +00:00
Emanuele Aliberti
485cee30c2 process/session.c in the makefile.
svn path=/trunk/; revision=2427
2001-12-11 23:18:16 +00:00
Phillip Susi
e27c5fbd2f Moved $(MK_GCCLIBS) to correct place on gcc command line
svn path=/trunk/; revision=2426
2001-12-11 06:00:07 +00:00
Brian Palmer
8c29563890 Added Task Manager to cvs repository
Won't build yet due to old headers included with MingW32

svn path=/trunk/; revision=2425
2001-12-10 01:19:33 +00:00
Eric Kohl
10231d15e7 Added preliminary system hive file.
svn path=/trunk/; revision=2424
2001-12-09 04:58:44 +00:00
Casper Hornstrup
1ba52efab8 Fixed compilation error
svn path=/trunk/; revision=2423
2001-12-07 22:42:38 +00:00
Emanuele Aliberti
a5208b8fca Added prototype for ProcessIdToSessionId().
svn path=/trunk/; revision=2422
2001-12-07 11:24:34 +00:00
Emanuele Aliberti
d36ee56715 A stub file for TS APIs in kernel32.
svn path=/trunk/; revision=2421
2001-12-07 11:19:49 +00:00
Eugene Ingerman
ef93b48310 Porting pice. Added keyboard hook and some file functions.
svn path=/trunk/; revision=2420
2001-12-06 09:20:57 +00:00
David Welch
8c3f4003e7 Removed bitops.h
svn path=/trunk/; revision=2419
2001-12-06 00:54:54 +00:00
Eric Kohl
909d916ca5 Implemented file system change notification.
svn path=/trunk/; revision=2418
2001-12-05 12:14:13 +00:00
Eric Kohl
116270d2e0 Added missing create parameters to IoCreateFile().
svn path=/trunk/; revision=2417
2001-12-05 12:11:55 +00:00
David Welch
64ebe91f78 Fixed security define spelling
Added duplication notification

svn path=/trunk/; revision=2416
2001-12-05 01:40:25 +00:00
Eric Kohl
eaf3de3006 Replaced binary constants by corresponding flags.
svn path=/trunk/; revision=2415
2001-12-04 20:47:54 +00:00
David Welch
fc1ce2a0d3 Remove debugging changes.
svn path=/trunk/; revision=2414
2001-12-02 23:37:25 +00:00
David Welch
7a15ff20db Implemented LPC sections
Changed WriteConsoleOutput to pass data in the section

svn path=/trunk/; revision=2413
2001-12-02 23:34:43 +00:00
Phillip Susi
b7f6ddaf9a Fixed typeo that prevented compilation
svn path=/trunk/; revision=2412
2001-12-01 20:57:23 +00:00
Eugene Ingerman
87d07db47c Fixed small bug in keyboard driver that prevented filter driver from working. Added keyboard hook.
svn path=/trunk/; revision=2410
2001-11-30 01:38:24 +00:00
Eric Kohl
6be5fe1285 Implemented PsGetProcessExitTime() and PsIsThreadTerminating().
svn path=/trunk/; revision=2409
2001-11-29 16:41:22 +00:00
Steven Edwards
3684c3d179 found out shell has kill built it
svn path=/trunk/; revision=2408
2001-11-29 07:24:48 +00:00
Brian Palmer
c157992a67 Fixed Makefile problem
Added tool to fix Win2k/XP NTVDM bug so DJGPP works without crashing

svn path=/trunk/; revision=2407
2001-11-29 01:56:04 +00:00
Emanuele Aliberti
45422998d5 Base files (incomplete) for PSAPI.DLL.
svn path=/trunk/; revision=2406
2001-11-28 23:35:16 +00:00
Emanuele Aliberti
ad6cb832a4 *** empty log message ***
svn path=/trunk/; revision=2404
2001-11-28 16:11:36 +00:00
Brian Palmer
12e0be217f Re-organized things a slight bit.
Split up stdlib.c and renamed it to rtl.
Separated disk functions from file system functions.

svn path=/trunk/; revision=2403
2001-11-28 10:26:53 +00:00
Steven Edwards
d4d6b6dbf7 Initial revision
svn path=/trunk/; revision=2400
2001-11-28 01:37:59 +00:00
Steven Edwards
d3b8d085e2 Initial revision
svn path=/trunk/; revision=2397
2001-11-27 14:24:14 +00:00
Eric Kohl
16e5929c1c Added system hive support.
Started hardware detection.

svn path=/trunk/; revision=2396
2001-11-27 12:42:47 +00:00
Eric Kohl
7a1bc8eaca Added system hive support.
svn path=/trunk/; revision=2395
2001-11-26 22:33:20 +00:00
Eric Kohl
0aee7968ad Added 'dword' data type.
svn path=/trunk/; revision=2394
2001-11-25 18:28:00 +00:00
David Welch
8fd78223cb include/csrss/csrss.h: Include a define for the size of the common
part of the csrss message header.
lib/kernel32/misc/console.c: WriteConsole: Use the same meanings for the
Length argument to CsrClientCallServer as all other callers.
lib/kernel32/misc/console.c: WriteConsoleOutput: Break up long requests
(not very efficently).
lib/ntdll/csr/lpc.c: CsrClientCallServer: Fill out DataSize and
MessageSize correctly.
lib/kernel32/misc/dllmain.c: DllMain: Die if we can't connect to csrss.
ntoskrnl/include/internal/ntoskrnl.c: Increase size of non-paged pool
ntoskrnl/ke/i386/exp.c: On double fault print loops in the stack trace
only once.
ntoskrnl/ke/i386/usertrap.c: Corrected checking in stack trace.
ntoskrnl/lpc/send.c: NtRequestWaitReplyPort: Check message consistency and
copy in safely.
ntoskrnl/mm/aspace.c: MmLockAddressSpace: Don't bother locking if we are
the only thread running.
ntoskrnl/mm/kmap.c: Implementing support functions for whole page
allocation.
ntoskrnl/mm/npool.c: Implementing allocation mode where every block is
allocated in a whole page and placed against the end so writes beyond the
allocated portion are caught immediately.

svn path=/trunk/; revision=2393
2001-11-25 15:21:11 +00:00
Jason Filby
2ddebe867f Moved W32THREAD to teb.h
svn path=/trunk/; revision=2392
2001-11-24 14:08:54 +00:00
Eric Kohl
3c7c6e909d Added some security/access functions.
svn path=/trunk/; revision=2389
2001-11-22 02:37:32 +00:00
Eric Kohl
396df5ce12 Implemented RtlImpersonateSelf().
svn path=/trunk/; revision=2388
2001-11-21 22:31:18 +00:00
Eric Kohl
d1d89cd409 Fixed PsRevertToSelf().
svn path=/trunk/; revision=2387
2001-11-21 18:44:50 +00:00
Steven Edwards
f1ea6d86e7 add mkdir C:\bin for wineapps
svn path=/trunk/; revision=2386
2001-11-20 23:49:03 +00:00
Hartmut Birr
94048a055d Fixed a bug in FAT12FindAvailableCluster.
svn path=/trunk/; revision=2385
2001-11-20 23:40:26 +00:00
Rex Jolliff
c900b97902 added default rule for .cpp files
svn path=/trunk/; revision=2384
2001-11-20 21:56:54 +00:00
Eric Kohl
5f56974966 Implemented read/write.
svn path=/trunk/; revision=2383
2001-11-20 20:35:10 +00:00
David Welch
229104bb31 Split kernel and user-mode exception handling
svn path=/trunk/; revision=2382
2001-11-20 02:31:21 +00:00
David Welch
b981b14821 Fixed zsh crash bug, it still doesn't work however
svn path=/trunk/; revision=2381
2001-11-20 02:29:45 +00:00
Jason Filby
0e27bfa7dd Fix for CreateCompatibleDC
svn path=/trunk/; revision=2380
2001-11-19 12:06:23 +00:00
Eric Kohl
303f10c6fd Fixed a few compiler warinings.
svn path=/trunk/; revision=2379
2001-11-18 20:20:42 +00:00
David Welch
57300d2523 Oops, used copy to caller instead of copy from caller
svn path=/trunk/; revision=2378
2001-11-18 01:28:50 +00:00
David Welch
189a5e8404 Fixed bugs with vim
svn path=/trunk/; revision=2377
2001-11-18 00:31:24 +00:00
Eric Kohl
5d289c12b2 Fixed GetExtendedMemorySize(). My i486-DX4/75 didn't like the old routine.
svn path=/trunk/; revision=2376
2001-11-17 00:00:33 +00:00
Eric Kohl
60a1a5d26d Updated for booting from C:
svn path=/trunk/; revision=2375
2001-11-16 20:27:59 +00:00
Eric Kohl
228ec52af6 Added loading the HAL.
svn path=/trunk/; revision=2374
2001-11-16 20:25:37 +00:00
Eric Kohl
dfd00972c9 Fixed warnings.
svn path=/trunk/; revision=2373
2001-11-16 20:24:43 +00:00
Brian Palmer
3662f1f720 BIOS Int 13h Extensions Support
New .ini file format (sort of) - changed some parameter names, etc.
More efficient .ini file parsing code
More efficient use of memory, smaller image file
Total rewrite of file system code (the old stuff sucked)
VFAT Long File Names now supported!
ReactOS is the only boot type supported currently, disabled all others (temporarily)

svn path=/trunk/; revision=2372
2001-11-15 07:48:33 +00:00
Eric Kohl
709cd514ab Implemented MmMapViewOfSection().
svn path=/trunk/; revision=2368
2001-11-13 22:46:49 +00:00
Steven Edwards
0de577f6cd Remove my old port of the winelib notepad
svn path=/trunk/; revision=2366
2001-11-11 18:21:32 +00:00
Steven Edwards
a36b062468 install script for wine dlls and programs
svn path=/trunk/; revision=2365
2001-11-11 18:16:52 +00:00
Casper Hornstrup
c23a2d7aee Fixed typo
svn path=/trunk/; revision=2364
2001-11-09 15:50:34 +00:00
Eric Kohl
cdd8ad011c Added message compiler.
svn path=/trunk/; revision=2363
2001-11-09 12:37:15 +00:00
Eric Kohl
51f2c2d3d0 Added message compiler.
svn path=/trunk/; revision=2362
2001-11-09 12:27:02 +00:00
Eric Kohl
af8dfb404f Implemented abandoning of mutexes/mutants.
svn path=/trunk/; revision=2361
2001-11-08 13:58:13 +00:00
Eric Kohl
7ab413e8de Fixed thread termination bug when a mutex must be abandoned.
svn path=/trunk/; revision=2360
2001-11-08 01:09:20 +00:00
David Welch
a122417a8a Fixed thread termination bug
svn path=/trunk/; revision=2359
2001-11-07 22:36:47 +00:00
Eric Kohl
1355fed119 Added mutex test application.
svn path=/trunk/; revision=2358
2001-11-07 16:42:15 +00:00
Eric Kohl
679c19d7f8 Added GetInterruptVector() routine to PCI bus handler.
svn path=/trunk/; revision=2357
2001-11-07 02:27:33 +00:00
Phillip Susi
01009ce267 Re enabled mounting more than one filesystem
svn path=/trunk/; revision=2356
2001-11-07 02:21:19 +00:00
Eric Kohl
7a232306cc Attach/detach mutant(mutex) to/from owning thread.
Fixed return value of KeWaitForMultipleObjects() on timeout.

svn path=/trunk/; revision=2355
2001-11-07 02:17:22 +00:00
James Tabor
7e8fb651af Fix export wvsnprintfA and W from user32.dll
svn path=/trunk/; revision=2354
2001-11-05 21:00:31 +00:00
David Welch
18992fbe14 Don't check for critical sections when delivering special kernel mode APCs
svn path=/trunk/; revision=2353
2001-11-05 20:49:30 +00:00
Emanuele Aliberti
e0308e50e8 tlist clone (partial).
Tested under NT 4.0.1382 SP6a EN_US.
NOT tested under ROS, but it should NOT work, since
NtQuerySystemInformation misses at least one info class needed
by the application.

svn path=/trunk/; revision=2352
2001-11-04 21:53:20 +00:00
Eric Kohl
156f7ec157 Implemented mutant object.
svn path=/trunk/; revision=2350
2001-11-04 00:18:40 +00:00
Casper Hornstrup
558496bca6 New target 'implib' to avoid cicular references.
Integrate WINE into the build system.

svn path=/trunk/; revision=2349
2001-11-03 16:48:07 +00:00
Eric Kohl
5db2a7d92d Disabled secondary channel by default
svn path=/trunk/; revision=2348
2001-11-03 16:34:58 +00:00
Hartmut Birr
547896ce6f Reworked code for handling of asynchonous i/o requests.
svn path=/trunk/; revision=2347
2001-11-02 22:57:14 +00:00
Hartmut Birr
c2c9804f47 Reworked code for handling of asynchonous i/o requests.
svn path=/trunk/; revision=2346
2001-11-02 22:47:36 +00:00
Hartmut Birr
75bfca5f83 Fixed a minor bug in vfatMakeRootFCB().
Reworked code for handling of asynchonous i/o requests.

svn path=/trunk/; revision=2345
2001-11-02 22:40:50 +00:00
Hartmut Birr
b5e7b94ea7 Speed optimization in FATxxFindAvailableCluster().
svn path=/trunk/; revision=2344
2001-11-02 22:35:31 +00:00
Hartmut Birr
2723d14c06 Added some modifications for asyncronous i/o requests (for vfatfs).
svn path=/trunk/; revision=2343
2001-11-02 22:22:33 +00:00
Hartmut Birr
ab19671382 Fixed a bug in GetVolumeInformationA()
svn path=/trunk/; revision=2342
2001-11-02 22:08:28 +00:00
Eric Kohl
c0ddd03a2f Fixed a typo.
svn path=/trunk/; revision=2341
2001-11-02 09:17:52 +00:00
Eric Kohl
b639c5def9 Implemented basic ANSI/OEM <--> Unicode translation tables.
svn path=/trunk/; revision=2340
2001-11-02 09:10:49 +00:00
Rex Jolliff
286d73f7e6 Initial attempt at a handle table for GDI objects. Needs testing and fixing i am sure.
svn path=/trunk/; revision=2339
2001-11-02 06:10:11 +00:00
Eric Kohl
ec23fa085b Removed PCI_COMMON_CONFIG
svn path=/trunk/; revision=2338
2001-11-01 23:17:10 +00:00
Eric Kohl
91540343f5 Set sector size to 512 bytes.
svn path=/trunk/; revision=2337
2001-11-01 17:48:13 +00:00
Eric Kohl
66b3542076 Enabled secondary IDE channel for PCI and ISA bus
Fixed BytesPerSector hack
Minor cleanup

svn path=/trunk/; revision=2336
2001-11-01 14:51:57 +00:00
Hartmut Birr
ae482ce24e Fixed some bugs in VfatGetStandardInformation().
Implemented VfatGetInternalInformation().

svn path=/trunk/; revision=2335
2001-11-01 10:44:11 +00:00
Hartmut Birr
24f81ff1c1 Enabled the check of the correct buffer size in some functions.
svn path=/trunk/; revision=2334
2001-11-01 10:41:53 +00:00
Hartmut Birr
287fa79a6a Fixed the type of st_dev in stat.
svn path=/trunk/; revision=2333
2001-11-01 10:39:54 +00:00
Hartmut Birr
dbf14d8c26 Initialized statbuf->st_mode in _stat() and _fstati64().
svn path=/trunk/; revision=2332
2001-11-01 10:37:58 +00:00
Hartmut Birr
1dafd03c3d Fixed some bugs in GetFileInformationByHandle().
svn path=/trunk/; revision=2331
2001-11-01 10:35:15 +00:00
Eric Kohl
998550e404 Moved/added some declarations
Fixed atapi drive identification

svn path=/trunk/; revision=2330
2001-11-01 00:30:29 +00:00
Eric Kohl
6d21eb028c Moved/added some declarations
Fixed ide drive identification

svn path=/trunk/; revision=2329
2001-11-01 00:28:57 +00:00
Jason Filby
af347caa8c Kludge: draw within screen until we have clipping working
svn path=/trunk/; revision=2328
2001-10-31 21:08:00 +00:00
David Welch
7e2973b768 Fix for advapi32 failing to load (it had imported symbols from itself)
svn path=/trunk/; revision=2325
2001-10-31 01:03:04 +00:00
David Welch
2179744c2c Fixed bug causing crash when running mc
svn path=/trunk/; revision=2324
2001-10-31 00:03:07 +00:00
David Welch
6efd918a8b Zero pages before allocated.
svn path=/trunk/; revision=2323
2001-10-29 02:39:38 +00:00
Hartmut Birr
2a1ac328ed Clear the allocated page for a bss section (in MmNotPresentFaultSectionView).
svn path=/trunk/; revision=2322
2001-10-27 15:55:45 +00:00
Steven Edwards
4f6b97db87 Initial revision
svn path=/trunk/; revision=2319
2001-10-25 23:22:02 +00:00
Eugene Ingerman
03c7fccace Porting pice.
svn path=/trunk/; revision=2318
2001-10-23 21:33:17 +00:00
Steven Edwards
f475b72c8c Initial revision
svn path=/trunk/; revision=2315
2001-10-23 21:15:37 +00:00
Phillip Susi
a69fa0c124 Changed path to vgaddi.dll to use SystemRoot instead of C:
svn path=/trunk/; revision=2314
2001-10-23 00:22:04 +00:00
Eugene Ingerman
5b13cb7208 Porting pice.
svn path=/trunk/; revision=2313
2001-10-22 05:02:47 +00:00
Casper Hornstrup
f238a86a0b Create named pipe for SCM
svn path=/trunk/; revision=2312
2001-10-21 19:09:06 +00:00
Casper Hornstrup
7cb3efcca8 Prototype fixes.
svn path=/trunk/; revision=2311
2001-10-21 19:07:28 +00:00
Casper Hornstrup
75ebd197fa Open named pipe to SCM
svn path=/trunk/; revision=2310
2001-10-21 19:06:42 +00:00
Casper Hornstrup
f611cbbe42 NPFS read/write functionality.
svn path=/trunk/; revision=2309
2001-10-21 18:58:32 +00:00
Eugene Ingerman
26090a1b08 Missed these files from the last commit.
svn path=/trunk/; revision=2308
2001-10-21 04:46:15 +00:00
Eugene Ingerman
096c6a9c99 Changed some driver functions to follow nt standard. Ported several functions.
svn path=/trunk/; revision=2307
2001-10-21 04:05:48 +00:00
Eugene Ingerman
0356076d35 Original source code for linux kernel debugger. To be ported to reactos.
svn path=/trunk/; revision=2306
2001-10-21 03:45:27 +00:00
Eric Kohl
f81d856c00 Implemented waiting for server pipe (WaitNamedPipe()).
svn path=/trunk/; revision=2305
2001-10-20 15:30:07 +00:00
Eric Kohl
fc27cfa0c9 Fixed WaitNamedPipe().
svn path=/trunk/; revision=2304
2001-10-20 15:28:03 +00:00
Phillip Susi
145c90c778 Fixed typeo that prevented compilation
svn path=/trunk/; revision=2303
2001-10-17 20:02:52 +00:00
Eric Kohl
20bec3cf6b Implemented useful rename command.
svn path=/trunk/; revision=2302
2001-10-17 18:30:10 +00:00
Phillip Susi
32ec8c6868 Only pass file name as module name, not full path
svn path=/trunk/; revision=2301
2001-10-17 01:34:07 +00:00
Phillip Susi
bafcaf58e4 Removed use of crtdll from all apps, let them use msvcrt.dll instead
svn path=/trunk/; revision=2300
2001-10-16 22:45:40 +00:00
Emanuele Aliberti
84114428d7 Fixes to compile the whole set of ROS applications.
Hartmut Birr added to the ROS console parade.

svn path=/trunk/; revision=2299
2001-10-16 21:02:02 +00:00
Phillip Susi
f89bf61ed5 Imported bzip2 modified to build a decompression only dll for use by the ramdisk driver
svn path=/trunk/; revision=2298
2001-10-16 20:59:19 +00:00
Phillip Susi
718510b28a Fixed bug parsing redirections
svn path=/trunk/; revision=2297
2001-10-14 18:30:56 +00:00
Phillip Susi
34fca92d6d Share read access to files opened for redirection
svn path=/trunk/; revision=2296
2001-10-14 18:30:28 +00:00
Hartmut Birr
ee9ea15fe0 Fixed calling convention for ApcRoutine().
Patch by Guido de Jong.

svn path=/trunk/; revision=2295
2001-10-12 19:13:01 +00:00
Eric Kohl
0a88910738 Made qsort() thread-safe.
svn path=/trunk/; revision=2294
2001-10-11 23:37:47 +00:00
Hartmut Birr
061fadc77a Fixed a bug, when there is a write operation to the root directory, vfat crashs.
svn path=/trunk/; revision=2293
2001-10-11 15:39:51 +00:00
Hartmut Birr
ef4b8d4947 Fixed a minor bug in MmAllocateSection().
svn path=/trunk/; revision=2292
2001-10-10 22:40:36 +00:00
Hartmut Birr
78869da85f Added/Removed some definitions.
svn path=/trunk/; revision=2291
2001-10-10 22:20:48 +00:00
Hartmut Birr
644d1f6676 Rewritten the read and write functions.
Changed the cache access from vfat..Region to Cc...Data() and CcCopy...().

svn path=/trunk/; revision=2290
2001-10-10 22:19:51 +00:00
Hartmut Birr
20625a2073 Changed the initialization for the fat cache in VfatMount().
svn path=/trunk/; revision=2289
2001-10-10 22:18:58 +00:00
Hartmut Birr
12f5d25024 Removed vfatRequestAndValidateRegion() and vfatReleaseRegion().
Added some initializations in vfatMakeRootFCB() and vfatMakeFcbFromDirEntry().

svn path=/trunk/; revision=2288
2001-10-10 22:17:42 +00:00
Hartmut Birr
6df323c21b Changed the cache access from CcRos...CacheSegment() to Cc...Data().
svn path=/trunk/; revision=2287
2001-10-10 22:16:46 +00:00
Hartmut Birr
068a4a38d5 Changed the directory access to Cc...Data().
Removed the useing of dummy FileObjects in some calls to VfatReadFile()/VfatWriteFile().

svn path=/trunk/; revision=2286
2001-10-10 22:15:51 +00:00
Hartmut Birr
069a01eede Changed the cache access from vfat...Region() to Cc...Data().
svn path=/trunk/; revision=2285
2001-10-10 22:14:34 +00:00
Hartmut Birr
a23989370d Fixed the returned size in VfatGetFile...Information().
svn path=/trunk/; revision=2284
2001-10-10 22:13:26 +00:00
Hartmut Birr
b61f55deae Added cache access for GetEntyName() and FindFile().
Fixed a minor bug in VfatCreateFile().
Added update of the cachesize in VfatCreateFile(), when a the file size is set zero.

svn path=/trunk/; revision=2283
2001-10-10 22:12:34 +00:00
Hartmut Birr
1e43cf0d82 Added cc/copy.c, cc/pin.c and cc/misc.c to OBJECTS_CC.
svn path=/trunk/; revision=2282
2001-10-10 22:08:27 +00:00
Hartmut Birr
5004973b9a Removed CcRosRequestCacheSegment()and CcRosReleaseCacheSegment().
Added CcCopyRead(), CcCopyWrite(), CcMapData(), CcSetDirtyPinnedData(),
CcUnpinData() and CcSetFileSizes().

svn path=/trunk/; revision=2281
2001-10-10 22:07:15 +00:00
Hartmut Birr
937606fd25 Removed update of FileOffset from IoReadWriteCompletion().
svn path=/trunk/; revision=2280
2001-10-10 21:58:40 +00:00
Hartmut Birr
535721b797 Added a new parameter to IoPageWrite().
svn path=/trunk/; revision=2279
2001-10-10 21:57:00 +00:00
Hartmut Birr
93742336bb Added CcRosFreeCacheSegment(), ReadCacheSegment() and WriteCacheSegment().
svn path=/trunk/; revision=2278
2001-10-10 21:55:13 +00:00
Hartmut Birr
74be6cd705 Added some initializations in CcRosInitializeCache().
svn path=/trunk/; revision=2277
2001-10-10 21:50:15 +00:00
Hartmut Birr
a92ab23917 Implemented CcMapdata(), CcUnpinData() and CsSetDirtyPinnedData().
svn path=/trunk/; revision=2276
2001-10-10 21:49:15 +00:00
Hartmut Birr
4bda2fbdb1 Implemented CcSetFileSizes().
svn path=/trunk/; revision=2275
2001-10-10 21:48:09 +00:00
Hartmut Birr
4fd4a97760 Implemented CcCopyRead(), CcCopyWrite() and some other functions.
svn path=/trunk/; revision=2274
2001-10-10 21:46:13 +00:00
Eric Kohl
a1d321e7b8 Added _abnormal_termination() stub.
svn path=/trunk/; revision=2273
2001-10-10 19:41:35 +00:00
Hartmut Birr
767a20760d Fixed a dead lock in GetNextCluster.
Fixed a bug in FAT32FindAvailableCluster.

svn path=/trunk/; revision=2268
2001-10-07 08:58:29 +00:00
Eric Kohl
d3a9cfe663 Fixed __doserrno type.
svn path=/trunk/; revision=2267
2001-10-04 16:06:36 +00:00
Hartmut Birr
ae6141ba18 Fixed the 'higher 4 bit fat32'-bug.
svn path=/trunk/; revision=2266
2001-10-03 18:23:02 +00:00
Eric Kohl
0f0199f381 Implemented _doserrno().
svn path=/trunk/; revision=2265
2001-10-03 02:15:55 +00:00
Rex Jolliff
9df4133568 some changes to support load of LiteStep
svn path=/trunk/; revision=2264
2001-10-01 16:36:27 +00:00
Rex Jolliff
e446466964 fix to work around dlltool not supporting specified ordinals in export list
svn path=/trunk/; revision=2263
2001-10-01 16:31:12 +00:00
Phillip Susi
3c655e1278 Do not bugcheck on ExFreePool( 0 )
svn path=/trunk/; revision=2262
2001-09-29 19:40:49 +00:00
David Welch
decca5781a Fixes.
svn path=/trunk/; revision=2261
2001-09-27 02:14:35 +00:00
David Welch
387d128462 APplied MiReadPage fix
svn path=/trunk/; revision=2260
2001-09-25 19:52:28 +00:00
David Welch
c0589a9fec Fixes.
svn path=/trunk/; revision=2259
2001-09-25 19:41:38 +00:00
Casper Hornstrup
6e4a29babf Fix for compile error
svn path=/trunk/; revision=2258
2001-09-24 10:19:58 +00:00
Casper Hornstrup
9a6d677db3 Initial OS level SEH support.
svn path=/trunk/; revision=2257
2001-09-24 01:09:51 +00:00
Casper Hornstrup
0948ab6596 Initial OS level SEH support.
svn path=/trunk/; revision=2256
2001-09-24 00:51:17 +00:00
Casper Hornstrup
2eb7adef67 Compile using gcc 3.0
Fixed alot of warnings when using gcc 3.0

svn path=/trunk/; revision=2255
2001-09-23 22:14:10 +00:00
Casper Hornstrup
09237b9213 Enumerate legacy devices
svn path=/trunk/; revision=2254
2001-09-16 13:19:32 +00:00
Casper Hornstrup
9baaca2418 Added PCI bus driver skeleton
svn path=/trunk/; revision=2253
2001-09-16 13:18:24 +00:00
Eric Kohl
1ea7189ed9 Added new atapi driver. It can only scan the pci busses and create scsi port devices for identified ide channels.
svn path=/trunk/; revision=2252
2001-09-09 21:32:28 +00:00
Eric Kohl
dcc3b51487 Added pci bus scanner to find ide controllers. Hardware reset is used when no controller was found.
svn path=/trunk/; revision=2251
2001-09-09 21:28:05 +00:00
David Welch
c4cd9be8de Fixed all no-FPU bugs
svn path=/trunk/; revision=2250
2001-09-09 13:32:20 +00:00
Hartmut Birr
3ad515a2de Change the size of the kernel page table from 1 to 8 pages.
ROS can now boot with up to 4 GB real memory (tested with a modified bochs and 1.5GB).

svn path=/trunk/; revision=2249
2001-09-09 12:26:05 +00:00
Hartmut Birr
a8a4e37cba Change the return value in CreateFileW() from FALSE to INVALID_HANDLE_VALUE.
svn path=/trunk/; revision=2248
2001-09-09 12:21:37 +00:00
Hartmut Birr
1689533ef4 Fixed a bug, that will add a '.' when the ext string is empty.
svn path=/trunk/; revision=2247
2001-09-09 12:13:15 +00:00
Hartmut Birr
5ee0bf283e Fixed a bug in KdpPrintString().
When serial debug was enabled, than the bochs debug dosn't work.

svn path=/trunk/; revision=2246
2001-09-09 09:47:18 +00:00
Jason Filby
aebc047c8c Small fixes
svn path=/trunk/; revision=2245
2001-09-09 09:20:06 +00:00
David Welch
d9975bf64a Try again; enable MP and NE and disable EM
svn path=/trunk/; revision=2244
2001-09-09 00:08:39 +00:00
Emanuele Aliberti
ef3bb24149 Added skeleton for PSXX.DLL, the X11 client library for the POSIX+ subsystem.
svn path=/trunk/; revision=2243
2001-09-08 22:13:16 +00:00
David Welch
8fd176384c Hopefully initialize FPU properly
svn path=/trunk/; revision=2242
2001-09-08 20:08:08 +00:00
Jason Filby
9e9c096bed more freetype cleanup
svn path=/trunk/; revision=2241
2001-09-08 12:12:41 +00:00
Jason Filby
0c257f84a5 More freetype cleanup
svn path=/trunk/; revision=2240
2001-09-08 12:11:48 +00:00
Eric Kohl
3920464d8e Implemented LdrFindEntryForAddress() and LdrQueryProcessModuleInformation().
svn path=/trunk/; revision=2239
2001-09-08 12:06:59 +00:00
Jason Filby
bdea50f54c Cleaning up FreeType library
svn path=/trunk/; revision=2238
2001-09-08 11:55:35 +00:00
Eric Kohl
0c901951af Create mandatory keys for resource management.
svn path=/trunk/; revision=2237
2001-09-08 09:02:08 +00:00
Eric Kohl
b62d5e3184 Return a better status code in ObReferenceObjectByPointer().
svn path=/trunk/; revision=2236
2001-09-08 08:57:59 +00:00
Emanuele Aliberti
cf1883980d Added some Job related info and little cleanup.
svn path=/trunk/; revision=2235
2001-09-07 21:38:44 +00:00
Emanuele Aliberti
fc64f4511b Added CVS Id.
svn path=/trunk/; revision=2234
2001-09-07 21:37:47 +00:00
Emanuele Aliberti
64fe62dd6d Minor changes.
svn path=/trunk/; revision=2233
2001-09-07 21:35:45 +00:00
David Welch
008868b972 Implemented NtQueryTime
svn path=/trunk/; revision=2232
2001-09-06 22:47:39 +00:00
David Welch
6cb5e548e2 Fixed problem with __NTOSKRNL__ not being defined by the compiler
Implemented some APIs

svn path=/trunk/; revision=2231
2001-09-06 20:26:36 +00:00
Eric Kohl
1701b0b02f Implemented IoReportHalUsage().
svn path=/trunk/; revision=2230
2001-09-05 09:21:47 +00:00
Eric Kohl
3fa6827bcd Fixed hive import bug.
svn path=/trunk/; revision=2229
2001-09-04 21:06:27 +00:00
Eric Kohl
0cb3991a23 Implemented RegSaveKey[A/W]().
Added missing calls to MapDefaultKey().

svn path=/trunk/; revision=2228
2001-09-03 23:11:59 +00:00
Emanuele Aliberti
63d1ecea6e LsaXXX stubs added.
svn path=/trunk/; revision=2227
2001-09-03 20:42:44 +00:00
Casper Hornstrup
c997de334b Fixed compilation error.
svn path=/trunk/; revision=2226
2001-09-02 19:48:19 +00:00
Emanuele Aliberti
df39763241 KERNEL32.GetPriorityClass fixed.
svn path=/trunk/; revision=2225
2001-09-02 17:59:44 +00:00
David Welch
750b45e5a3 Added generic capture functions.
svn path=/trunk/; revision=2224
2001-09-02 17:31:00 +00:00
David Welch
97771b1487 Implemented NtSetEnvironmentVariable
svn path=/trunk/; revision=2223
2001-09-02 17:29:52 +00:00
David Welch
0bb08690eb Implemented NtQuerySystemEnvironmentValue
svn path=/trunk/; revision=2222
2001-09-02 15:38:46 +00:00
Casper Hornstrup
145dc8c01d Removed dbgprints
svn path=/trunk/; revision=2221
2001-09-02 12:19:34 +00:00
Casper Hornstrup
c6548b080f Ported 32-bit OLE32 functions from WINE.
svn path=/trunk/; revision=2220
2001-09-02 09:16:23 +00:00
Casper Hornstrup
247c229fc0 Ported 32-bit OLE32 functions from WINE.
svn path=/trunk/; revision=2219
2001-09-02 09:10:47 +00:00
Rex Jolliff
301b03bb9b LiteStep needs GetUserName aliased
svn path=/trunk/; revision=2218
2001-09-01 19:39:23 +00:00
Rex Jolliff
787bcc5f53 add current directory to default search path so programs can find their own dlls
svn path=/trunk/; revision=2217
2001-09-01 19:36:30 +00:00
Casper Hornstrup
b83d417811 Implemented many console & registry functions to get registry explorer running.
Load services from registry - part 1 (disabled due to bug in registry).

svn path=/trunk/; revision=2216
2001-09-01 15:36:45 +00:00
David Welch
17897f7c03 Use the directory tree created by the install target for Linux
installation
Print an informative message in all instances where CreateSystemRootLink
fails
Corrected tools/helper.mk, use the right dll name when building an import
library but also give the target the same name as the import library.
Corrected bad target directory for install target in apps/test

svn path=/trunk/; revision=2215
2001-09-01 11:55:38 +00:00
Casper Hornstrup
e9276ee142 Reverting last change, because MK_IMPLIB is used to determine if an import library should be generated.
svn path=/trunk/; revision=2214
2001-09-01 10:38:49 +00:00
Emanuele Aliberti
b837fe0841 NTDLL.CsrClientCallServer: more info on the interface.
svn path=/trunk/; revision=2212
2001-08-31 20:06:17 +00:00
David Welch
6ad77c02b3 More Linux compilation fixes
svn path=/trunk/; revision=2211
2001-08-31 19:30:16 +00:00
Eric Kohl
a28f736301 Fixed calling conventions
svn path=/trunk/; revision=2210
2001-08-30 23:51:08 +00:00
David Welch
68ceda5ada More Linux compilation fixes.
svn path=/trunk/; revision=2209
2001-08-30 23:35:06 +00:00
David Welch
7cd6d8936d More fixes for Linux compilation.
svn path=/trunk/; revision=2208
2001-08-30 23:23:16 +00:00
David Welch
bb328ae107 Fixes for compilation on Linux
svn path=/trunk/; revision=2207
2001-08-30 23:01:30 +00:00
David Welch
a5d8a7ac82 Don't remake import libraries unnecessarily, use the same extension for
the target as the file which is actually built.

svn path=/trunk/; revision=2206
2001-08-30 22:20:11 +00:00
David Welch
dffb0e9a7a Changed internal/config.h -> roscfg.h in a number of files.
Use a proper prefix for executing programs in tools/Makefile.

svn path=/trunk/; revision=2205
2001-08-30 20:38:20 +00:00
David Welch
888fe38dca Added some more descriptive comments.
svn path=/trunk/; revision=2204
2001-08-30 19:48:21 +00:00
Rex Jolliff
0c52657980 preliminary implementation of boot hive import. exposes memory problem in registry routines
svn path=/trunk/; revision=2203
2001-08-29 05:06:31 +00:00
Jason Filby
5a73b65484 Remove ugly hack for the current display DC
svn path=/trunk/; revision=2202
2001-08-28 18:16:32 +00:00
Eric Kohl
b3ab3efa96 Fixed callback calling conventions (part 2).
svn path=/trunk/; revision=2201
2001-08-27 01:29:07 +00:00
Eric Kohl
20f65a3fb9 Fixed callback calling conventions (part 1).
svn path=/trunk/; revision=2200
2001-08-26 17:30:21 +00:00
Eric Kohl
a9a6bae87b Added partinfo application.
svn path=/trunk/; revision=2199
2001-08-25 17:03:30 +00:00
Eric Kohl
c276551b2b No longer in use
svn path=/trunk/; revision=2198
2001-08-23 21:44:15 +00:00
Eric Kohl
9934c830e0 Moved buildno into tools directory
svn path=/trunk/; revision=2197
2001-08-23 21:43:32 +00:00
Casper Hornstrup
d094202f91 Boot script for ACPI target
svn path=/trunk/; revision=2196
2001-08-23 17:35:17 +00:00
Casper Hornstrup
a50141ac65 Pass ACPI driver on command line
svn path=/trunk/; revision=2195
2001-08-23 17:34:00 +00:00
Casper Hornstrup
5d518a1695 Fixes for APCI bus driver.
svn path=/trunk/; revision=2194
2001-08-23 17:32:04 +00:00
Casper Hornstrup
c5d8547022 Compile correctly when target is ACPI.
svn path=/trunk/; revision=2193
2001-08-23 16:31:27 +00:00
Casper Hornstrup
aa20d5b1d5 Integrated winhello into new build system
svn path=/trunk/; revision=2192
2001-08-23 16:14:57 +00:00
Eric Kohl
b36ed4b1fc Copy ntoskrnl and boot drivers to new location.
Copy hall.dll too.

svn path=/trunk/; revision=2191
2001-08-23 15:37:10 +00:00
Eric Kohl
1b9adb989a Don't use msvcrt as default runtime library for console apps. Let the linker use its default runtime library.
svn path=/trunk/; revision=2190
2001-08-23 15:34:00 +00:00
Eric Kohl
356f44b7de Forward exports to HAL.DLL after splitting HAL.
svn path=/trunk/; revision=2189
2001-08-23 15:26:57 +00:00
Rex Jolliff
d6107fdbb1 DriverEntry is now called with correct parameters
Minor Fix to new build logic

svn path=/trunk/; revision=2188
2001-08-22 03:53:53 +00:00
Casper Hornstrup
be1ee02554 Global configuration moved to include/roscfg.h
svn path=/trunk/; revision=2187
2001-08-21 21:51:43 +00:00
Casper Hornstrup
36402e5aa4 Module wide .cvsignore for:
*.sys, *.exe, *.dll, *.a, *.o, *.coff

Seperated the HALs from ntoskrnl.exe

Added template HAL

svn path=/trunk/; revision=2186
2001-08-21 20:18:27 +00:00
Casper Hornstrup
3f69ca4cc4 Major update of the build system:
- Created helper makefile for all targets
- Made most makefiles simpler by using the helper makefile
- Moved build tools into ./tools

Updated installation instructions

svn path=/trunk/; revision=2185
2001-08-21 20:13:17 +00:00
Emanuele Aliberti
aaada25107 Preliminary directory tree for the "development kits".
svn path=/trunk/; revision=2184
2001-08-21 18:06:43 +00:00
Jason Filby
ec838a6880 Win32 GUI Hello World
svn path=/trunk/; revision=2183
2001-08-20 19:50:21 +00:00
Emanuele Aliberti
a004822e63 Definition of LPC_DEBUG_MESSAGE added in napi/lpc.h.
svn path=/trunk/; revision=2182
2001-08-16 20:56:05 +00:00
Jason Filby
5b66798cd7 Change versioning infor for 0.0.18
svn path=/trunk/; revision=2181
2001-08-16 19:42:15 +00:00
Eric Kohl
bf4cedbfce Removed useless file.
This one caused too much trouble.

svn path=/trunk/; revision=2180
2001-08-16 15:11:02 +00:00
Eric Kohl
55000d5cf0 Fixed compiler warnings.
svn path=/trunk/; revision=2179
2001-08-16 15:09:35 +00:00
Hartmut Birr
73cbc9cc37 There was the wrong file handle in a call to FindClose().
svn path=/trunk/; revision=2178
2001-08-16 10:07:42 +00:00
Emanuele Aliberti
3869ce90e5 Minor fixes in KERNEL32.TerminateThread() and in
KERNEL32.TerminateProcess().

svn path=/trunk/; revision=2177
2001-08-15 20:35:39 +00:00
Emanuele Aliberti
5a9b7bebbc Minor fix in CSR.GetTitle().
svn path=/trunk/; revision=2176
2001-08-14 22:00:21 +00:00
Hartmut Birr
f293bda38a Restoring 1.1
There was a mistake by commiting share.c.

svn path=/trunk/; revision=2175
2001-08-14 21:14:05 +00:00
Hartmut Birr
7ee896cad1 ReadAccess and DeleteAcces was initialized with wrong values (in IoCheckShareAccess() and IoSetShareAccess()). share.c
svn path=/trunk/; revision=2174
2001-08-14 21:05:10 +00:00
Hartmut Birr
41e8ef1540 Change the attribute from FILE_DIRECTORY_FILE to
FILE_NON_DIRECTORY_FILE in DeleteFileW().

svn path=/trunk/; revision=2173
2001-08-14 20:50:47 +00:00
Hartmut Birr
d0f2100e07 Enabled the call to ObDereferenceObject for some
IRP_MJ_xxx functions in IoSecondStageCompletion().

svn path=/trunk/; revision=2172
2001-08-14 20:49:05 +00:00
Hartmut Birr
cc2e3f0806 Added support for directory/file removing/deleting.
Fixed the overwriting bug between addEntry() and updEntry().
Change FindFile() from serach with a sector and index to search with a single index.

svn path=/trunk/; revision=2171
2001-08-14 20:47:30 +00:00
Emanuele Aliberti
52a23385a1 CSR.GetTitle implemented.
Some cleanup in the csrss.exe code.

svn path=/trunk/; revision=2170
2001-08-14 12:57:16 +00:00
Hartmut Birr
1f36dc8a8a Fixed the return value in Fat12GetNextCluster().
svn path=/trunk/; revision=2169
2001-08-14 08:06:26 +00:00
Eric Kohl
b0c7df1b9a Implemented IOCTL_DISK_GET_DRIVE_LAYOUT.
svn path=/trunk/; revision=2168
2001-08-13 16:43:36 +00:00
Eric Kohl
25f3f80f1e Fixed interpretation of BIOS memory map.
Patch by Hartmut Birr.

svn path=/trunk/; revision=2167
2001-08-13 16:39:01 +00:00
Brian Palmer
9dd23174c8 Fixed nasm calling bug.
svn path=/trunk/; revision=2166
2001-08-10 06:44:31 +00:00
Hartmut Birr
8eeb1a96b8 VfatReadBigCluster()/VfatReadSmallCluster()/
VfatWriteBigCluster()/VfatWriteSmallCluster():
- Fixed a bug, that will read data over the end
  of the given buffer or write wrong data to
  the disk, when there is a read without caching
  and the start is on the cluster boundery and
  the end not.
VfatReadSmallCluster()/VfatWriteSmallCluster():
- A cache segment is set to valid, when all clusters
  in the segment are readed or written.
VfatWriteSmallCluster():
- The Parameter Extend is set to TRUE (overwritten),
  when the data need a new cluster.
VfatReadFile()/VfatWriteFile():
- Added special handling for the root directory on
  fat12/fat16, so that a read or write operation
  does not touche the cluster area.
- Added some error handling.

svn path=/trunk/; revision=2165
2001-08-08 19:04:13 +00:00
Eric Kohl
c0cbc28359 Fixed incorrect calling conventions.
svn path=/trunk/; revision=2164
2001-08-07 15:44:40 +00:00
Hartmut Birr
0af72b1ead Fixed a bug in VfatWriteFile().
For partitions with clusters < 4k,
there was calculated the wrong start cluster.

svn path=/trunk/; revision=2163
2001-08-07 15:38:04 +00:00
Eric Kohl
65d55d8863 Changed stack allocation.
Fixed bugs in NtAllocateVirtualMemory().
Disabled NtProtectVirtualMemory().

svn path=/trunk/; revision=2162
2001-08-07 14:13:45 +00:00
Eric Kohl
2e249e1b26 Changed stack allocation.
Fixed bugs in NtAllocateVirtualMemory().
Disabled NtProtectVirtualMemory().

svn path=/trunk/; revision=2161
2001-08-07 14:01:42 +00:00
Eric Kohl
cc7a62391e Fixed nasm calling bug.
svn path=/trunk/; revision=2160
2001-08-07 07:15:24 +00:00
Brian Palmer
d32f7b5e5b Added support for debug prints over a RS232 line.
svn path=/trunk/; revision=2159
2001-08-07 06:19:43 +00:00
Brian Palmer
1b761836a3 Simple Win32 boot sector installer. Will not work under Win9x.
svn path=/trunk/; revision=2158
2001-08-07 05:37:13 +00:00
Hartmut Birr
e163d9c89c Fixed a bug in FindCloseFile().
The return value was allways FALSE.
Cmd's 'dir /s' will now work.

svn path=/trunk/; revision=2157
2001-08-06 18:37:23 +00:00
Hartmut Birr
6167160a26 Fixed a bug in SetFilePointer(),
when the starting point is the end of the file.
test-fseek will now work.

svn path=/trunk/; revision=2156
2001-08-06 18:35:15 +00:00
Eric Kohl
6d07d7107b Fixed stupid typo.
svn path=/trunk/; revision=2155
2001-08-05 21:48:25 +00:00
Hartmut Birr
8fa2bb273a Removed changes 1.26/1.27
svn path=/trunk/; revision=2154
2001-08-05 16:35:52 +00:00
Hartmut Birr
ae35912b3a Disabled debug message in VfatReadFile()/VfatWriteFile().
svn path=/trunk/; revision=2153
2001-08-04 11:10:36 +00:00
Hartmut Birr
34b4c8f40b Added updating of FileObject->CurrentByteOffset in VfatRead()/VfatWrite.
svn path=/trunk/; revision=2152
2001-08-04 11:02:47 +00:00
Hartmut Birr
b4a4e5c0be Fixed a bug in CopyFileExW().
The write count is set to the previous returned read length.

svn path=/trunk/; revision=2151
2001-08-04 10:40:38 +00:00
Emanuele Aliberti
4073da2472 Minor fix.
svn path=/trunk/; revision=2149
2001-08-03 21:49:14 +00:00
Eric Kohl
4b420ec7f6 Fixed stack allocation for initial process (smss.exe).
svn path=/trunk/; revision=2148
2001-08-03 19:52:12 +00:00
Hartmut Birr
27346f997d Fixed a bug in addEntry().
The short names are generated and validated correctly.

svn path=/trunk/; revision=2147
2001-08-03 19:01:17 +00:00
Hartmut Birr
de97756973 Added support for file/directory finding by short names.
svn path=/trunk/; revision=2146
2001-08-03 19:00:41 +00:00
Emanuele Aliberti
6fc5560247 I implemented KERNEL32.RaiseException().
svn path=/trunk/; revision=2145
2001-08-03 17:39:09 +00:00
Eric Kohl
e183b6028f Rewrote stack allocation.
svn path=/trunk/; revision=2144
2001-08-03 17:21:38 +00:00
Eugene Ingerman
e2e13b71ce Lock address space before calling MmCreateMemoryArea.
svn path=/trunk/; revision=2143
2001-08-03 09:36:19 +00:00
Phillip Susi
3208a93c26 Some more simple etags make rules
svn path=/trunk/; revision=2142
2001-08-02 20:25:17 +00:00
Phillip Susi
10b469cbd4 Added missing ascii/unicode defines for GetDiskFreeSpaceEx
svn path=/trunk/; revision=2141
2001-08-02 20:24:13 +00:00
Phillip Susi
933eb642dd Added rule to make etags files... cheap hack right now, should be cleaned up later
svn path=/trunk/; revision=2140
2001-08-02 20:22:24 +00:00
Phillip Susi
1c6b3f753a Added SetWindowOrgEx and SetViewportOrgEx
svn path=/trunk/; revision=2139
2001-08-02 20:20:17 +00:00
Phillip Susi
a33633bdad Changed debug print of WSTR from %wZ to %S, was causing crash
svn path=/trunk/; revision=2138
2001-08-02 15:55:15 +00:00
Hartmut Birr
a252566666 Fixed a minor bug in __getmainargs()/__GetMainArgs().
The parser for argc/argv inserts '\0'-characters in the buffer (CommandLineA).
The next call to GetCommandLineA() returns only the first parameter (program name).

svn path=/trunk/; revision=2137
2001-08-02 12:39:35 +00:00
Eric Kohl
7e4a551cd5 Added .cvsignore
svn path=/trunk/; revision=2135
2001-08-02 08:09:11 +00:00
Hartmut Birr
5e85eb7d8e Fixed a minor bug in _filbuf().
When there was returned a character from stream,
the counter wasn't decremented.

svn path=/trunk/; revision=2134
2001-08-02 07:26:30 +00:00
Hartmut Birr
f1a3075ad7 Fixed a bug in FindFirstFileW() and FindNextFileW().
The lengs of the copied strings was wrong.

svn path=/trunk/; revision=2133
2001-08-01 19:26:41 +00:00
Emanuele Aliberti
a798ec1a86 I added a rule for .cpp source files.
svn path=/trunk/; revision=2132
2001-08-01 17:40:02 +00:00
Hartmut Birr
130bddfe9f Fixed a bug in vfatGetNextDirEntry().
A valid file name was generated from a deleted LFN entry.
An overrun occurred, when a directory has more then 19 deleted LFN entries.

svn path=/trunk/; revision=2131
2001-08-01 15:59:24 +00:00
Eric Kohl
cad3eb8c42 Added CMOS configuration space handler.
svn path=/trunk/; revision=2130
2001-08-01 10:39:50 +00:00
Hartmut Birr
4032632974 Fixed a minor bug in vfat8Dot3ToString,
that expands a short name from 'test.x' to 'test.x  '.

svn path=/trunk/; revision=2129
2001-08-01 10:12:33 +00:00
Emanuele Aliberti
7034b49d22 \t processing in SCREEN_BUFFER bugged.
Partial fix.

svn path=/trunk/; revision=2128
2001-07-31 20:47:44 +00:00
Emanuele Aliberti
d87b450266 Removed the bugged conio.c:ComputeOffsetBuffer()
(Phillip noted it). Restored the inline offset
computation in conio.c:CsrpWriteConsole().
Added \t and \r processing in conio.c:CsrpWriteConsole()
which leads to formatted SCREEN_BUFFERS to
be restored when you switch console.
Please test it.

svn path=/trunk/; revision=2127
2001-07-31 20:28:43 +00:00
Emanuele Aliberti
a44f8b0d7a Little CsrpWriteConsole() cleanup.
(WIP) Restoring a non active screen buffer is bugged:
control characters are NOT processed.

svn path=/trunk/; revision=2126
2001-07-30 11:56:54 +00:00
Emanuele Aliberti
e439100646 Minor changes.
svn path=/trunk/; revision=2125
2001-07-30 11:50:44 +00:00
Emanuele Aliberti
aaa8d41666 \r processing.
svn path=/trunk/; revision=2124
2001-07-30 11:49:38 +00:00
Rex Jolliff
fe1d0d581a some changes to support loading actual drivers
svn path=/trunk/; revision=2123
2001-07-30 03:05:30 +00:00
Rex Jolliff
5d5aba0812 added rdel to all rule
svn path=/trunk/; revision=2122
2001-07-30 01:02:51 +00:00
Eric Kohl
f478c3bb18 Major npfs update, missing typedefs.
svn path=/trunk/; revision=2121
2001-07-29 23:52:49 +00:00
Eric Kohl
8d40c0f964 Fixed more %Z / %wZ bugs.
svn path=/trunk/; revision=2120
2001-07-29 16:47:11 +00:00
Eric Kohl
a305fad232 Fixed msvcrt startup bug.
svn path=/trunk/; revision=2119
2001-07-29 16:42:35 +00:00
Eric Kohl
a600af1a27 Major npfs update.
svn path=/trunk/; revision=2118
2001-07-29 16:41:25 +00:00
Eric Kohl
ab405511d9 Fixed buggy 'install' rule.
svn path=/trunk/; revision=2117
2001-07-29 16:39:12 +00:00
Hartmut Birr
4ae9a4b859 Fixed a bug in _vsnprintf() with formats %wZ and %Z.
svn path=/trunk/; revision=2116
2001-07-29 12:42:40 +00:00
Phillip Susi
0d7487a18c Removed non existant header file include so it will compile
svn path=/trunk/; revision=2115
2001-07-28 15:24:04 +00:00
Emanuele Aliberti
ab529dfd67 Fixed makefile (missing specs).
svn path=/trunk/; revision=2114
2001-07-28 14:46:27 +00:00
Hartmut Birr
818f6c4bfc Fixed a bug FsdGetFsVolumeInformation().
The returned length was wrong.

svn path=/trunk/; revision=2113
2001-07-28 10:12:36 +00:00
Emanuele Aliberti
920ae420ee Make gditest draw a background.
Mostly PR to show we can do graphics...

svn path=/trunk/; revision=2112
2001-07-28 10:05:36 +00:00
Emanuele Aliberti
2f5809598e cmd, more, tee, y, notevil, sysutils linked to msvcrt.dll.
svn path=/trunk/; revision=2111
2001-07-28 08:02:05 +00:00
Emanuele Aliberti
3de844a224 *** empty log message ***
svn path=/trunk/; revision=2110
2001-07-28 07:57:24 +00:00
Hartmut Birr
28f723e21e Fixed the 'REACTOS' volume label bug.
svn path=/trunk/; revision=2109
2001-07-28 07:05:56 +00:00
Eric Kohl
85a1907ad6 Disabled a function-call that crashes all msvcrt-based apps.
Further investigation will be done.

svn path=/trunk/; revision=2108
2001-07-27 23:54:05 +00:00
Eric Kohl
d50f7d2496 Fixed a warning.
svn path=/trunk/; revision=2107
2001-07-27 10:15:48 +00:00
Eric Kohl
5cd5457f10 Removed specs files.
svn path=/trunk/; revision=2106
2001-07-26 16:52:53 +00:00
Eric Kohl
db88524e4f Fixed broken rule.
svn path=/trunk/; revision=2105
2001-07-26 12:36:33 +00:00
Eric Kohl
c98b85ff40 Updated .cvsignore and makefile.
svn path=/trunk/; revision=2104
2001-07-26 11:44:04 +00:00
Eric Kohl
c0333e56cd Vidport did not have an export table because of broken rule.
svn path=/trunk/; revision=2103
2001-07-26 11:40:59 +00:00
Hartmut Birr
2da14243ee Fixed bug in vfatMakeRootFCB().
svn path=/trunk/; revision=2102
2001-07-25 17:39:34 +00:00
Eric Kohl
6bad760721 Fixed bug in ReadVolumeLabel().
svn path=/trunk/; revision=2101
2001-07-25 08:58:21 +00:00
Eric Kohl
5844ee0a81 Updated driver list.
svn path=/trunk/; revision=2100
2001-07-25 08:31:22 +00:00
Eric Kohl
cf6085206f Remove unusable 'driver'.
svn path=/trunk/; revision=2099
2001-07-25 08:30:01 +00:00
Eric Kohl
8d6a03b3eb Added missing .cvsignore files.
Updated makefiles.

svn path=/trunk/; revision=2098
2001-07-25 08:29:15 +00:00
Eric Kohl
74893f61fb Minor update
svn path=/trunk/; revision=2097
2001-07-25 08:26:06 +00:00
Eric Kohl
b8cfaa435e Added missing .cvsignore files.
Updated makefiles.

svn path=/trunk/; revision=2096
2001-07-25 06:21:38 +00:00
Eric Kohl
7b23bdc4ac Documentation update.
Added preliminary road-map.

svn path=/trunk/; revision=2095
2001-07-24 20:49:57 +00:00
Eric Kohl
6c6bb5f62e More cleanups
svn path=/trunk/; revision=2094
2001-07-24 18:39:02 +00:00
Eric Kohl
72a83f69ee Updated makefile
svn path=/trunk/; revision=2093
2001-07-24 16:32:16 +00:00
Eric Kohl
1a42d9ea1c Minor updates.
svn path=/trunk/; revision=2092
2001-07-24 10:22:18 +00:00
Eric Kohl
e604d7b0fe Added disk class driver skeleton.
svn path=/trunk/; revision=2091
2001-07-24 10:21:15 +00:00
Eric Kohl
c0eef82d19 Moved lsass out of the way.
svn path=/trunk/; revision=2090
2001-07-24 10:18:39 +00:00
Eric Kohl
2f246b69d1 Added typedef for PCCHAR.
svn path=/trunk/; revision=2089
2001-07-23 12:54:35 +00:00
Eric Kohl
066d5b9dda Added storage drivers to the build process.
svn path=/trunk/; revision=2088
2001-07-23 06:15:27 +00:00
Eric Kohl
3df0bbbfce Added scsi class driver skeleton.
svn path=/trunk/; revision=2087
2001-07-23 06:13:48 +00:00
Emanuele Aliberti
9859f23c21 Skeleton for KERNEL32.GlobalMemoryStatus
svn path=/trunk/; revision=2086
2001-07-22 19:55:21 +00:00
Emanuele Aliberti
062243bc91 Minor path parametrization.
svn path=/trunk/; revision=2085
2001-07-21 20:16:09 +00:00
Eric Kohl
6429b16f0a Fixed dll build order
svn path=/trunk/; revision=2084
2001-07-21 20:08:42 +00:00
Emanuele Aliberti
97aa97fdd0 Minor fix.
svn path=/trunk/; revision=2083
2001-07-21 15:45:20 +00:00
Emanuele Aliberti
5e6df71477 Added version resource script.
svn path=/trunk/; revision=2082
2001-07-21 15:40:04 +00:00
Emanuele Aliberti
5cb7155212 Added version resource script.
svn path=/trunk/; revision=2081
2001-07-21 15:34:08 +00:00
Emanuele Aliberti
4ed1b71717 Ops! Target of a forwarded exported symbol should be as
decorated as the target itself.

svn path=/trunk/; revision=2080
2001-07-21 08:43:59 +00:00
Emanuele Aliberti
b4a32f4a4c Added forwarded exports to KERNEL32.
svn path=/trunk/; revision=2079
2001-07-21 08:41:12 +00:00
Emanuele Aliberti
ee0e06c2c1 Added version resource script.
svn path=/trunk/; revision=2078
2001-07-21 08:37:06 +00:00
Eric Kohl
b8ec1f6a56 Added scsiport driver skeleton.
svn path=/trunk/; revision=2077
2001-07-21 07:30:26 +00:00
Eric Kohl
75d57b4fa1 Enabled caching for FAT32 partitions.
Enabled FAT32 write code.
Various smaller fixes.
Patch by Hartmut Birr (part 2).

svn path=/trunk/; revision=2076
2001-07-20 08:00:21 +00:00
Eric Kohl
7192939c7d Restored _wmakepath(). Grrr. :-/
svn path=/trunk/; revision=2075
2001-07-19 18:53:29 +00:00
Eric Kohl
d24d5849fe Fixed bug in SetFileTime().
Patch by Hartmut Birr.

svn path=/trunk/; revision=2074
2001-07-19 18:42:02 +00:00
Eric Kohl
20a0131534 Fixed bug in _makepath().
Patch by Hartmut Birr.

svn path=/trunk/; revision=2073
2001-07-19 18:41:09 +00:00
Eric Kohl
e6063f185b Various fixes by Hartmut Birr.
svn path=/trunk/; revision=2072
2001-07-18 12:04:52 +00:00
Eric Kohl
1481663f41 Added mbstring functions.
svn path=/trunk/; revision=2071
2001-07-18 10:44:18 +00:00
Eric Kohl
c65dea5060 Added process and mbstring functions.
svn path=/trunk/; revision=2070
2001-07-18 09:23:02 +00:00
Eric Kohl
3edae5c9c1 Added process functions.
svn path=/trunk/; revision=2069
2001-07-18 09:22:04 +00:00
Eric Kohl
5cb6979b1a Added mbstring functions.
svn path=/trunk/; revision=2068
2001-07-18 09:20:23 +00:00
Eric Kohl
ccf31892a1 Fixed a tiny bug.
svn path=/trunk/; revision=2067
2001-07-18 09:18:10 +00:00
Eric Kohl
f488ede562 Fixed crash while mounting a FAT32 partition.
svn path=/trunk/; revision=2066
2001-07-17 07:48:06 +00:00
Rex Jolliff
5c2ae92c47 Added a stubbed oleaut32.dll and a little work on ole32.dll
svn path=/trunk/; revision=2065
2001-07-16 01:45:44 +00:00
Rex Jolliff
1f7f2ec88f move work on clean rule
svn path=/trunk/; revision=2064
2001-07-15 21:19:02 +00:00
Rex Jolliff
5ce255ed4c some work on clean rule
svn path=/trunk/; revision=2063
2001-07-15 18:06:23 +00:00
Eric Kohl
ac38bc6706 Named pipes and mail slots need a valid file object.
svn path=/trunk/; revision=2062
2001-07-15 15:36:31 +00:00
Eric Kohl
8e8502cc51 Create symbolic links for dos devices.
svn path=/trunk/; revision=2061
2001-07-15 13:46:16 +00:00
Casper Hornstrup
20da260a3c Temporary fix to prevent a crash when running in VMware (and possibly bochs too)
svn path=/trunk/; revision=2060
2001-07-14 21:10:31 +00:00
Eric Kohl
5b04ae25a4 Fixed a string overrun.
Patch by Hartmut Birr.

svn path=/trunk/; revision=2059
2001-07-14 18:21:23 +00:00
Nedko Arnaudov
372a3cc161 "Because of changes in winnt.h, some of security definitions must be used from there."
svn path=/trunk/; revision=2058
2001-07-14 07:01:38 +00:00
Eric Kohl
889f9e3c01 Added support for FAT16 partition with clustersize greater than page size.
Patch by Hartmut Birr.

svn path=/trunk/; revision=2057
2001-07-13 10:31:14 +00:00
Eric Kohl
6d64efee46 Moved interlocked and locale functions.
Implemented basic locale support.
Added some missing interlocked functions.

svn path=/trunk/; revision=2056
2001-07-12 17:23:42 +00:00
Eric Kohl
b03d2d1155 Added more functions to msvcrt.
svn path=/trunk/; revision=2055
2001-07-12 16:31:03 +00:00
Eric Kohl
562836fa81 Fixed a warning.
svn path=/trunk/; revision=2054
2001-07-12 11:59:51 +00:00
Eric Kohl
e9f2e019b1 Fixed warnings and errors.
svn path=/trunk/; revision=2053
2001-07-12 11:58:57 +00:00
Eric Kohl
577c72f5b0 Fixed compiling bug for gcc-2.95.3.
svn path=/trunk/; revision=2052
2001-07-11 20:26:58 +00:00
Casper Hornstrup
6f0b5babc4 Use fastcall in NDIS header.
svn path=/trunk/; revision=2050
2001-07-06 23:05:11 +00:00
Brian Palmer
17dc9b5270 Full memory management support (memory.c & memory.h & mem.S)
Preliminary debug code (debug.c & debug.h)
Reworked .ini file code (parseini.c & parseini.h)
Size optimizations (fat.asm & fat32.asm)
FAT12/16 boot sector now fully understands the FAT (fat.asm)

svn path=/trunk/; revision=2049
2001-07-06 22:05:05 +00:00
Eric Kohl
e575ed9544 Enabled FASTCALL calling convention
svn path=/trunk/; revision=2048
2001-07-06 21:32:43 +00:00
Eric Kohl
af1605f6f6 Added _wasctime() and _wctime().
svn path=/trunk/; revision=2047
2001-07-06 21:17:36 +00:00
Eric Kohl
4eca28a7a6 Fixed a windres warning
svn path=/trunk/; revision=2046
2001-07-06 21:15:20 +00:00
Eric Kohl
aa234d8870 Added missing _wmktemp().
svn path=/trunk/; revision=2045
2001-07-06 14:33:19 +00:00
Eric Kohl
10cde64c1f Added more missing functions
svn path=/trunk/; revision=2044
2001-07-06 12:53:03 +00:00
Rex Jolliff
131f7804ab some corrections to the stubs
svn path=/trunk/; revision=2043
2001-07-06 04:01:27 +00:00
Rex Jolliff
d152260ffa Added a stubbed shell32.dll
svn path=/trunk/; revision=2042
2001-07-06 02:47:17 +00:00
Eric Kohl
e5e74911b3 Added missing math and stdio functions
svn path=/trunk/; revision=2041
2001-07-06 00:58:15 +00:00
Eric Kohl
3bba37d64a Added missing math functions
svn path=/trunk/; revision=2040
2001-07-06 00:54:39 +00:00
Rex Jolliff
0e53a7424f added object handling routines for user objects in win32k.sys
svn path=/trunk/; revision=2039
2001-07-06 00:05:05 +00:00
Rex Jolliff
208eecc0f4 Partial directory caching (create calls cached, but dir info calls
still use non cached routines).

svn path=/trunk/; revision=2038
2001-07-05 01:51:53 +00:00
Casper Hornstrup
52ead14335 Fixed ne2000 driver so it will link correctly.
svn path=/trunk/; revision=2037
2001-07-04 21:24:02 +00:00
Casper Hornstrup
3a9de284ad Updated clean rules.
Implemented sequenced lists and lookaside lists.
Started on TCP/IP connection endpoints.
Save process window station in EPROCESS instead of PEB.
NOTICE: please do a make win32k_clean or you might experience a crash

svn path=/trunk/; revision=2036
2001-07-04 20:40:24 +00:00
Rex Jolliff
df84ec15d8 Fix for error in reading next extended partition when partition contains slack
or more than one non container partition.

svn path=/trunk/; revision=2035
2001-07-04 16:42:37 +00:00
Eric Kohl
eed177f191 Added conio functions
svn path=/trunk/; revision=2034
2001-07-04 16:39:37 +00:00
Rex Jolliff
d46de4a28a added some test cases to fsd tests
svn path=/trunk/; revision=2033
2001-07-04 03:07:54 +00:00
Eric Kohl
bd74b6b30a Added missing io functions from crtdll and implemented wide and 64 bit functions.
svn path=/trunk/; revision=2032
2001-07-03 22:18:42 +00:00
Eric Kohl
357a89921a Untangled crtdll/msvcrt header mess.
svn path=/trunk/; revision=2031
2001-07-03 13:21:22 +00:00
Eric Kohl
a6f8fd2f79 Oooops! This should not have heppened
svn path=/trunk/; revision=2030
2001-07-03 13:14:18 +00:00
Eric Kohl
83e63dc11b Untangled crtdll/msvcrt header mess.
svn path=/trunk/; revision=2029
2001-07-03 13:07:12 +00:00
Eric Kohl
0bbf23c333 Untangled crtdll/msvcrt header mess.
svn path=/trunk/; revision=2028
2001-07-03 12:56:48 +00:00
Eric Kohl
49ad46d964 Added some float and stdlib functions
svn path=/trunk/; revision=2027
2001-07-02 21:52:25 +00:00
Phillip Susi
8dacbd3ab0 Fixed LdrShutdownProcess() to only detach static dlls, any dynamically loaded ones should be FreeLibrary()d from the static dlls and then they will be detached
svn path=/trunk/; revision=2026
2001-07-02 20:27:41 +00:00
Eric Kohl
8cd4cde19c Added some code to map more predefined keys (like HKCU).
Implemented some ansi functions

svn path=/trunk/; revision=2025
2001-07-01 17:54:07 +00:00
Jason Filby
a9be5303eb Fixed warnings
svn path=/trunk/; revision=2024
2001-07-01 14:34:45 +00:00
Jason Filby
e9ff4263ca Wide characters to conform to LOGFONTW definition
svn path=/trunk/; revision=2023
2001-07-01 14:32:47 +00:00
Jason Filby
b7239a157c Defined LOGFONTW and now use it in DEVINFO
svn path=/trunk/; revision=2022
2001-07-01 14:31:46 +00:00
Jason Filby
93bd949df5 Bug fix
svn path=/trunk/; revision=2021
2001-06-30 17:43:05 +00:00
Emanuele Aliberti
b1cc45efd9 Fixed includes to compile.
svn path=/trunk/; revision=2020
2001-06-29 21:08:50 +00:00
Eric Kohl
965c424c85 Prepared loading of .nls files
svn path=/trunk/; revision=2019
2001-06-29 20:43:55 +00:00
Eric Kohl
b6da4ac7a1 Prepared loading of .nls files
svn path=/trunk/; revision=2018
2001-06-29 20:31:03 +00:00
Eric Kohl
29b5ab4122 Started moving common gdi32/w32k types into common header file.
svn path=/trunk/; revision=2017
2001-06-29 19:34:35 +00:00
Eric Kohl
8a477f58d7 Read partition tables only once while assigning drive letters.
svn path=/trunk/; revision=2016
2001-06-29 11:09:48 +00:00
Rex Jolliff
c967887093 oops, left in some debugging statements
svn path=/trunk/; revision=2015
2001-06-28 02:56:27 +00:00
Rex Jolliff
5eb89e0c5a fixed problem with extended partitions that contain only Linux logical partitions
svn path=/trunk/; revision=2014
2001-06-28 02:42:27 +00:00
Eric Kohl
b8e0d46292 Fixed typos and warnings.
svn path=/trunk/; revision=2013
2001-06-26 12:54:58 +00:00
Eric Kohl
edd3aa06a7 Fixed a lot of warnings.
svn path=/trunk/; revision=2012
2001-06-25 23:48:20 +00:00
Eric Kohl
25138c970a Oooops. Still something missing!
svn path=/trunk/; revision=2011
2001-06-25 18:57:41 +00:00
Eric Kohl
3454082412 Fixed a lot of warnings.
svn path=/trunk/; revision=2010
2001-06-25 18:51:31 +00:00
Eric Kohl
d450a93214 Fixed a lot of warnings.
svn path=/trunk/; revision=2009
2001-06-25 14:22:45 +00:00
Eric Kohl
6e9bf90969 Fixed a lot of warnings.
svn path=/trunk/; revision=2008
2001-06-25 12:32:56 +00:00
Eric Kohl
b9689b04fa Fixed a lot of warnings.
svn path=/trunk/; revision=2007
2001-06-25 09:30:45 +00:00
Phillip Susi
4a45379380 Added missing extern "C"
svn path=/trunk/; revision=2006
2001-06-24 17:58:13 +00:00
Phillip Susi
b5686dbcd2 Treat STATUS_PORT_DISCONNECTED as full error, now that LPC ports correctly deliver the LPC_PORT_CLOSED message.
svn path=/trunk/; revision=2005
2001-06-23 19:20:01 +00:00
Phillip Susi
db9f10747e Handles should be closed in the context of the dead process, not the system process.
For now, I just used KeAttachProcess() to do this, but this should be moved so it is called by the last thread of the process before it dies.

svn path=/trunk/; revision=2004
2001-06-23 19:15:14 +00:00
Phillip Susi
71f7e0cad5 Fixed LPC port implementation to use an internal semaphore, rather than an
event.  When using the event, if multiple messages were queued to the port
at once, the client would only get the first one, and then block rather than
read the next message.

I think that the port object should have a DISPATCHER_HEADER to make it a
full blown dispatcher object, allowing clients to wait on the port object.

svn path=/trunk/; revision=2003
2001-06-23 19:13:33 +00:00
Eric Kohl
1dfc10a465 Added protection against inclusion of conflicting prototypes.
svn path=/trunk/; revision=2002
2001-06-22 12:40:45 +00:00
Eric Kohl
a4356344c9 Minor fixes.
svn path=/trunk/; revision=2001
2001-06-22 12:36:23 +00:00
Eric Kohl
0514d0e92b Added symbol __NTDRIVER__ to identify drivers.
svn path=/trunk/; revision=2000
2001-06-22 12:30:02 +00:00
Eric Kohl
a25e9783d7 Replaced call to KeBugCheck().
svn path=/trunk/; revision=1999
2001-06-22 12:19:45 +00:00
Eric Kohl
770c504a74 Fixed 'clean' rule.
svn path=/trunk/; revision=1998
2001-06-22 12:17:24 +00:00
Phillip Susi
3e22e847c2 Implemented support for console titles
Display console title while swapping consoles with alt-tab
Use alt-tab now instead of alt-q

svn path=/trunk/; revision=1997
2001-06-22 02:11:44 +00:00
Phillip Susi
4eb1d89866 Set console title to "Winlogon"
svn path=/trunk/; revision=1996
2001-06-22 02:10:11 +00:00
Eric Kohl
932eaef816 Added missing directories to 'clean' rule.
svn path=/trunk/; revision=1995
2001-06-21 17:25:35 +00:00
Eric Kohl
294fa73123 Added missing io status blocks.
Fixed some warnings.

svn path=/trunk/; revision=1994
2001-06-21 13:14:41 +00:00
Rex Jolliff
9a56bea334 command line parse changed to not stop after first instance of each argument found
svn path=/trunk/; revision=1993
2001-06-21 04:12:19 +00:00
Brian Palmer
5efafbf03e Win2k FAT32 Boot Sector Disassembly
svn path=/trunk/; revision=1992
2001-06-20 20:31:35 +00:00
Eric Kohl
c280651aa2 Some more fixes for 'fastcall' support.
svn path=/trunk/; revision=1991
2001-06-20 20:00:36 +00:00
Eric Kohl
93eeaf2b3e First fixes to support fastcall:
- moved FILETIME
- removed inclusion of <windows.h> from ntoskrnl
- fixed typos

svn path=/trunk/; revision=1990
2001-06-20 13:00:53 +00:00
Eric Kohl
c79b121347 Implemented some more registry functions.
svn path=/trunk/; revision=1989
2001-06-19 15:09:16 +00:00
Eric Kohl
76f1b8fa3c Implemented RtlOpenCurrentUser().
svn path=/trunk/; revision=1988
2001-06-18 18:37:12 +00:00
Phillip Susi
439bc219e0 Enhanced floppy driver to read up to an entire track at a time
Not sure if I did this correctly, but it seems to work:

By accident, I noticed that it seems to return more than the sector you requested if you program the DMAC to transfer more than one sector of bytes, so I decided to go with it.

Minor fixes.

svn path=/trunk/; revision=1987
2001-06-18 03:14:24 +00:00
Phillip Susi
d28ae7e82f Check in of new ram disk driver, loads floppy image into ram on boot
svn path=/trunk/; revision=1986
2001-06-18 03:10:00 +00:00
Phillip Susi
a504708d4e Fixed console mode behavior with processed input but not line buffered mode
svn path=/trunk/; revision=1985
2001-06-18 03:07:37 +00:00
Phillip Susi
16588f8362 Put LoadString code back that was removed by someone...
svn path=/trunk/; revision=1984
2001-06-18 03:05:54 +00:00
Phillip Susi
a49c07b8f2 Fixed CreateProcess() to use the command line parameter like NT does
This still needs quite a bit more work to fix bugs and be 100% compatible with NT

svn path=/trunk/; revision=1983
2001-06-18 03:02:43 +00:00
Phillip Susi
045f617089 Corrected CreateProcess() command line parameter to be more compatible with NT
Fixed minor bugs with console mode being set incorrectly

svn path=/trunk/; revision=1982
2001-06-18 02:55:47 +00:00
Phillip Susi
35b12b3d8c Added .cvsignore to ignore cmd.coff
svn path=/trunk/; revision=1981
2001-06-17 23:10:07 +00:00
Eric Kohl
c4b00c80d8 Implemented some registry functions.
svn path=/trunk/; revision=1980
2001-06-17 22:54:36 +00:00
Emanuele Aliberti
ab5917c0c7 Fixed a typo.
svn path=/trunk/; revision=1979
2001-06-17 20:36:35 +00:00
Eric Kohl
fdbabc8ad9 Implemented AllocateLocallyUniqueId().
svn path=/trunk/; revision=1978
2001-06-17 20:20:21 +00:00
Emanuele Aliberti
1731f27560 NTDLL/csr: some more stubs; code split;
NTDLL/rtl: some more stubs; RtlRaiseStatus() implemented;
Minor changes.

svn path=/trunk/; revision=1977
2001-06-17 20:05:10 +00:00
Eric Kohl
c4bb1e256b Some csr additions
svn path=/trunk/; revision=1976
2001-06-17 09:25:03 +00:00
Eric Kohl
5a58cc8836 Changed ObCreateObject() to a more nt-compatible format.
Now it returns a status value.

svn path=/trunk/; revision=1975
2001-06-16 14:11:31 +00:00
Eric Kohl
ae8ba926ce Added unstripped driver to .cvsignore.
svn path=/trunk/; revision=1974
2001-06-16 09:54:43 +00:00
Eric Kohl
9d72cf785d Added some error checks.
svn path=/trunk/; revision=1973
2001-06-16 09:49:45 +00:00
Eric Kohl
9d04225d93 Fixed linker error.
svn path=/trunk/; revision=1972
2001-06-15 18:32:25 +00:00
Casper Hornstrup
a3ba68ae58 More work on winsock stack (ping is now working)
svn path=/trunk/; revision=1971
2001-06-15 17:48:43 +00:00
Eric Kohl
ae87e6af46 Fixes for gcc-2.95.3-4
Fixed typos

svn path=/trunk/; revision=1970
2001-06-15 11:15:32 +00:00
Jason Filby
2f3eb30871 From Eugene Ingerman:
Create default registry files is they don't exist
Modularized registry.c into more files, more manageable
Bug fix in IoCreateFile that didn't return IoStatusBlock
'dir' now works in Bochs - corrected parsing in VfatOpenFile

svn path=/trunk/; revision=1969
2001-06-14 21:05:08 +00:00
Eric Kohl
e180745ffa Added some error checks.
svn path=/trunk/; revision=1968
2001-06-14 10:02:59 +00:00
Eric Kohl
d8f25b3cb8 Implemented access to PCI configuration space
svn path=/trunk/; revision=1967
2001-06-13 22:17:01 +00:00
Eric Kohl
dbb696c65d Mostly STDCALL fixes.
svn path=/trunk/; revision=1966
2001-06-13 10:59:50 +00:00
Casper Hornstrup
8eba21d917 Window stations and desktops
svn path=/trunk/; revision=1965
2001-06-12 17:51:51 +00:00
Casper Hornstrup
db931ec021 Removed old wine code
svn path=/trunk/; revision=1964
2001-06-12 17:44:50 +00:00
Casper Hornstrup
bc8b4c3210 Removed old wine code
svn path=/trunk/; revision=1963
2001-06-12 17:35:46 +00:00
Casper Hornstrup
b0f6cfbe69 Removed old wine code
svn path=/trunk/; revision=1962
2001-06-12 17:30:27 +00:00
Brian Palmer
4750bc0160 Implemented memory detection & BIOS memory map
Added memory management prototypes

svn path=/trunk/; revision=1961
2001-06-12 16:12:50 +00:00
Eric Kohl
35850562c1 Added missing STDCALLs.
svn path=/trunk/; revision=1960
2001-06-12 12:36:58 +00:00
Eric Kohl
e8c61143ed Fixed some NT compatibility issues in Nt[Query/Set]InformationFile().
Fixed buffer size issues in volume functions.
Fixed several minor bugs.

svn path=/trunk/; revision=1959
2001-06-12 12:35:42 +00:00
Emanuele Aliberti
d1c18ff4e4 *** empty log message ***
svn path=/trunk/; revision=1958
2001-06-11 20:36:44 +00:00
Eric Kohl
4c892bc4e7 Implemented SetVolumeLabelW().
svn path=/trunk/; revision=1957
2001-06-11 19:54:05 +00:00
Eric Kohl
bf1b360a1e Fixed some NT compatibility issues in Nt[Query/Set]VolumeInformationFile().
svn path=/trunk/; revision=1956
2001-06-11 19:52:22 +00:00
Eric Kohl
80f8038f24 Fixed MaxRootEntries. This caused disk corruption.
svn path=/trunk/; revision=1955
2001-06-09 15:51:23 +00:00
Brian Palmer
dc36f333cf Forgot to add a semi-colon at end of statement
svn path=/trunk/; revision=1954
2001-06-08 23:20:14 +00:00
Brian Palmer
1d9101d6ea Separated multiboot kernel loader and reactos kernel loader so that support for other operating systems can be added
svn path=/trunk/; revision=1953
2001-06-08 23:12:40 +00:00
Eric Kohl
4c1911c2ca Use ARC-Path to boot ReactOS
svn path=/trunk/; revision=1952
2001-06-08 17:46:52 +00:00
Eric Kohl
18b431ed17 Added stubs for missing partition functions
svn path=/trunk/; revision=1951
2001-06-08 15:11:04 +00:00
Eric Kohl
624e3335e1 Implemented the most simple functions.
svn path=/trunk/; revision=1950
2001-06-07 21:27:45 +00:00
Eric Kohl
a68d65df79 Fixes to build win32k.sys again.
svn path=/trunk/; revision=1949
2001-06-07 21:22:32 +00:00
Eric Kohl
77fa055814 Replaced IDEGetPartitionTable() by call to IoReadPartitionTable()
Several minor fixes

svn path=/trunk/; revision=1948
2001-06-07 21:18:01 +00:00
Emanuele Aliberti
6d96f0e0cc Fixed includes to compile.
svn path=/trunk/; revision=1947
2001-06-07 20:38:53 +00:00
Jason Filby
51c0ed06fe Updated definition
svn path=/trunk/; revision=1946
2001-06-06 14:25:13 +00:00
Brian Palmer
4531d3752a Multiboot Kernel Compliance
svn path=/trunk/; revision=1945
2001-06-05 21:45:51 +00:00
Jason Filby
49e30c043c Bug fixes
svn path=/trunk/; revision=1944
2001-06-04 14:54:40 +00:00
Casper Hornstrup
f105303a7b Win32k native user stubs
svn path=/trunk/; revision=1943
2001-06-04 14:39:43 +00:00
Casper Hornstrup
465823fcc7 Default is screen debug output
svn path=/trunk/; revision=1942
2001-06-04 11:27:54 +00:00
Casper Hornstrup
514cb6a689 Raw IP and ICMP fixes
More work on winsock stack (not usable yet though)
Support for loading symbols for user mode modules

svn path=/trunk/; revision=1941
2001-06-04 11:26:13 +00:00
Jason Filby
3d24d1f443 Small fixes
svn path=/trunk/; revision=1940
2001-06-03 10:48:41 +00:00
Jason Filby
b6af1f6bab Prevent mouse from interfering with GDI drawing
svn path=/trunk/; revision=1939
2001-06-03 10:47:29 +00:00
Eric Kohl
c3b862d61d Fixed partition table bug
svn path=/trunk/; revision=1938
2001-06-02 15:53:26 +00:00
Jason Filby
4ce8aabb3c Faster moving mouse cursor
svn path=/trunk/; revision=1937
2001-06-02 08:44:46 +00:00
Jason Filby
a9d9714a23 Better looking mouse cursor
svn path=/trunk/; revision=1936
2001-06-02 08:43:48 +00:00
Eric Kohl
7d15b82aa0 Implemented RtlFindMessage() and Rtl[Query/Set]TimeZoneInformation().
svn path=/trunk/; revision=1935
2001-06-01 17:14:40 +00:00
Eric Kohl
efe6366a22 Implemented RtlFindMessage().
Implemented Rtl[Query/Set]TimeZoneInformation().
Implemented RtlQueryRegistryValues() partially.

svn path=/trunk/; revision=1933
2001-05-30 20:03:28 +00:00
Eric Kohl
553aab4bb7 Fixed a crash in NtCreateKey() when an existing key is opened
svn path=/trunk/; revision=1932
2001-05-30 14:40:36 +00:00
Eric Kohl
2c92d6e39b Fixed potential crash when empty ANSI_STRING or UNICODE_STRING is printed
svn path=/trunk/; revision=1931
2001-05-30 14:38:14 +00:00
Jason Filby
8c8de10906 Improve mouse driver stability a bit
svn path=/trunk/; revision=1930
2001-05-30 08:07:48 +00:00
Eric Kohl
5a12816c16 Fixed a typo
svn path=/trunk/; revision=1929
2001-05-27 23:03:51 +00:00
Casper Hornstrup
f821d295ad Double makefile in cvs
svn path=/trunk/; revision=1928
2001-05-27 16:37:24 +00:00
Casper Hornstrup
94fe75aeb4 Full make
svn path=/trunk/; revision=1927
2001-05-27 16:23:20 +00:00
Eric Kohl
eb7f6b07c8 Rewrote atom functions in kernel32
svn path=/trunk/; revision=1926
2001-05-27 15:40:31 +00:00
Eric Kohl
4790ca37b0 Implemented atoms in ntoskrnl and fixed a few bugs
svn path=/trunk/; revision=1925
2001-05-27 11:17:01 +00:00
Eric Kohl
803636da4a Implemented handle table and atom table
svn path=/trunk/; revision=1924
2001-05-26 17:49:18 +00:00
Eric Kohl
f9384f3cf8 Implemented handle table and atom table
svn path=/trunk/; revision=1923
2001-05-26 16:52:31 +00:00
Jason Filby
4c125c3021 Was not clearing screen on some cards
svn path=/trunk/; revision=1922
2001-05-26 10:25:22 +00:00
Jason Filby
2262d67ef2 Build mouclass and psaux
svn path=/trunk/; revision=1921
2001-05-26 10:20:07 +00:00
Jason Filby
c6287c59d3 Load PS/2 mouse and mouse class drivers on startup
svn path=/trunk/; revision=1920
2001-05-26 10:05:40 +00:00
Jason Filby
9726e9950b Minor update
svn path=/trunk/; revision=1919
2001-05-26 10:04:06 +00:00
Jason Filby
a91a0d77da VGA software cursor
svn path=/trunk/; revision=1918
2001-05-26 08:21:03 +00:00
Jason Filby
02e9af8bda Mouse driver improvements; callback between mouse class and GDI
svn path=/trunk/; revision=1917
2001-05-26 08:19:03 +00:00
Jason Filby
73b9ac6994 Initial GDI Mouse support, small DC fix
svn path=/trunk/; revision=1916
2001-05-26 08:15:40 +00:00
Eric Kohl
caae64da4b Fixed duplicate DELETE
svn path=/trunk/; revision=1915
2001-05-25 08:51:41 +00:00
Eric Kohl
0f9dfab704 Implemented file access/sharing check functions
svn path=/trunk/; revision=1914
2001-05-24 22:19:25 +00:00
Eric Kohl
ca61cc2444 Implemented resource (multiple-reader-single-writer) lock
svn path=/trunk/; revision=1913
2001-05-24 11:28:54 +00:00
Jurgen van Gael
56ab538abe Added the definition files for ole32.dll
svn path=/trunk/; revision=1912
2001-05-19 21:23:20 +00:00
Nedko Arnaudov
1d63ef67f5 added #ifdefs for clipboard feature
svn path=/trunk/; revision=1911
2001-05-16 21:19:06 +00:00
Jurgen van Gael
5fda84ce39 Put the CLSID definition between the ifdef statement for the guid, otherwise compiling ole32 would generate multiple definition error messages
svn path=/trunk/; revision=1910
2001-05-15 21:04:09 +00:00
Jurgen van Gael
079339b3b8 Sourc code for the first ole32.dll COM implementation
svn path=/trunk/; revision=1909
2001-05-15 12:22:18 +00:00
Jurgen van Gael
48da1fcf14 Added header files for ole32.dll COM implementation
svn path=/trunk/; revision=1908
2001-05-15 11:53:23 +00:00
Brian Palmer
afdf923c65 Initial revision
svn path=/trunk/; revision=1904
2001-05-15 03:50:25 +00:00
Casper Hornstrup
bbf48f20aa Removed the assertion
svn path=/trunk/; revision=1903
2001-05-13 13:35:37 +00:00
Eric Kohl
7d0f1e3433 Some named pipe improvements (not usable yet!).
svn path=/trunk/; revision=1902
2001-05-10 23:38:31 +00:00
Rex Jolliff
4c5a154f4d a few more changes to vfat driver
svn path=/trunk/; revision=1901
2001-05-10 06:30:23 +00:00
Rex Jolliff
9cfc87e333 extracted a few more FCB funcs
svn path=/trunk/; revision=1900
2001-05-10 04:02:21 +00:00
Eric Kohl
3c986c6d3a Use MinGW startup code (crt0)
svn path=/trunk/; revision=1899
2001-05-08 11:19:43 +00:00
Casper Hornstrup
432ae66313 oops...back to default configuration
svn path=/trunk/; revision=1898
2001-05-08 09:43:55 +00:00
Casper Hornstrup
fc6a12de18 Preparations for 32-bit/64-bit architectures
Added stubs for most user32.dll functions

svn path=/trunk/; revision=1897
2001-05-07 22:03:27 +00:00
Eric Kohl
3694ebf507 Cleanup
svn path=/trunk/; revision=1896
2001-05-06 22:39:13 +00:00
Eric Kohl
7398918d11 Fixed bootable partition bug
svn path=/trunk/; revision=1895
2001-05-06 22:32:34 +00:00
Emanuele Aliberti
cbcc365a25 Added dist rule.
svn path=/trunk/; revision=1894
2001-05-06 19:28:50 +00:00
Carl Nettelblad
a975142a8d Last change stop CD from working. That's fixed now.
svn path=/trunk/; revision=1893
2001-05-06 17:27:50 +00:00
Carl Nettelblad
96a0d04b3b Removed support for current directories on several drives at once from cmd.exe. Now in NTDLL.
svn path=/trunk/; revision=1892
2001-05-06 17:12:44 +00:00
Carl Nettelblad
8efef1784a Moving support for current dir on several drives from cmd.exe to NTDLL.
svn path=/trunk/; revision=1891
2001-05-06 16:09:03 +00:00
Casper Hornstrup
ba2a8ca045 Added ACPI bus manager
Added ACPI button driver

svn path=/trunk/; revision=1890
2001-05-05 19:15:44 +00:00
Casper Hornstrup
efc93e5ae8 Added runtime configuration of debug prints from kernel debugger (on a per file basis)
svn path=/trunk/; revision=1889
2001-05-05 19:13:10 +00:00
Nedko Arnaudov
6fb7445d87 added optional parameter to specify destination directory
svn path=/trunk/; revision=1888
2001-05-05 19:11:29 +00:00
Phillip Susi
a0fe0d14a0 Removed a bunch of junk from wine and fixed crash on loading
svn path=/trunk/; revision=1887
2001-05-05 18:09:30 +00:00
Eric Kohl
3f98a7dd14 Added makefile
svn path=/trunk/; revision=1886
2001-05-05 18:01:07 +00:00
Eric Kohl
4304c92e6e Fixed silly 'off by one' bug
svn path=/trunk/; revision=1885
2001-05-05 18:00:33 +00:00
Eric Kohl
d13046ca0f Added mailslot fs driver
svn path=/trunk/; revision=1884
2001-05-05 15:21:05 +00:00
Emanuele Aliberti
f7d5d08e6e PORT_MESSAGE_TYPE(m) macro added.
svn path=/trunk/; revision=1883
2001-05-05 12:52:49 +00:00
Eric Kohl
7c469f9c46 Added attributes to object parse method.
svn path=/trunk/; revision=1882
2001-05-05 09:33:16 +00:00
Emanuele Aliberti
ab494baccd Fixed NtQueryDirectoryObject.
svn path=/trunk/; revision=1881
2001-05-04 21:44:21 +00:00
Rex Jolliff
ac9d3e30fb Changed Cc interface func names to CcRos.
Changed CcReleaseFileCache to use and dereference FileObject in BCB
instead of the one passed.

svn path=/trunk/; revision=1880
2001-05-04 01:21:45 +00:00
Nedko Arnaudov
d9776acd0c Added detection of redirection. GetStdHandle() used instead of CreateFile(). Error message is shown to user when it tries to redirect.
svn path=/trunk/; revision=1879
2001-05-03 22:41:16 +00:00
Casper Hornstrup
278ce6bf50 Removed debug code
Compile correctly with pool validation enabled

svn path=/trunk/; revision=1878
2001-05-03 17:24:00 +00:00
Jason Filby
53de047b71 Truetype files from OpenOffice
svn path=/trunk/; revision=1877
2001-05-03 07:17:38 +00:00
Jason Filby
87f05689bc *** empty log message ***
svn path=/trunk/; revision=1876
2001-05-03 07:16:33 +00:00
Eric Kohl
96a826ad92 Moved some heap stubs
svn path=/trunk/; revision=1875
2001-05-03 06:13:05 +00:00
Eric Kohl
973bed37c6 Implemented missing mailslot functions
svn path=/trunk/; revision=1874
2001-05-03 06:10:29 +00:00
Eric Kohl
4be50fdc7e Implemented mailslot functions
svn path=/trunk/; revision=1873
2001-05-02 22:29:18 +00:00
Eric Kohl
9f1e5ac42c Implemented CsrNewThread()
Added some registry functions

svn path=/trunk/; revision=1872
2001-05-02 22:25:58 +00:00
Emanuele Aliberti
ff2adbb728 Added -r switch to objdir to recurse the system name space.
svn path=/trunk/; revision=1871
2001-05-02 20:50:06 +00:00
Eric Kohl
7de8ff7c3c Fixed typo
svn path=/trunk/; revision=1870
2001-05-02 19:04:25 +00:00
Jason Filby
a4a7d78546 Truetype fonts from OpenOffice
svn path=/trunk/; revision=1869
2001-05-02 17:27:00 +00:00
Jason Filby
ce4ce9b5e9 Files incorrectly committed in ASCII
svn path=/trunk/; revision=1868
2001-05-02 17:25:47 +00:00
Jason Filby
66044c37fd reverted to proper makefile
svn path=/trunk/; revision=1867
2001-05-02 15:11:19 +00:00
Jason Filby
98fc0115be accidental commit
svn path=/trunk/; revision=1866
2001-05-02 15:10:24 +00:00
Jason Filby
f5a5752043 minor fix
svn path=/trunk/; revision=1865
2001-05-02 13:46:29 +00:00
Jason Filby
02184a83d4 Update install files
svn path=/trunk/; revision=1864
2001-05-02 12:37:06 +00:00
Jason Filby
979adb975e Update to test new GDI functions
svn path=/trunk/; revision=1863
2001-05-02 12:35:48 +00:00
Jason Filby
5ee6fc75ae GDI32 support for new win32k functions
svn path=/trunk/; revision=1862
2001-05-02 12:35:06 +00:00
Jason Filby
c84d5016d1 Initial font and text support. Fixes to color palette support. Mask and transparent blt support.
svn path=/trunk/; revision=1861
2001-05-02 12:33:42 +00:00
Jason Filby
b27e3264a9 Updates to GDI include files
svn path=/trunk/; revision=1860
2001-05-02 12:31:04 +00:00
Jason Filby
1a4b287958 VGA driver support for TransparentBlt
svn path=/trunk/; revision=1859
2001-05-02 12:29:51 +00:00
Jason Filby
69a45c48b1 Correct palette info. Initial support for bitblt masks
svn path=/trunk/; revision=1858
2001-05-02 12:29:08 +00:00
Jason Filby
6be44d6e81 Correctly configure palette registers
svn path=/trunk/; revision=1857
2001-05-02 12:27:32 +00:00
Jason Filby
4167bc8912 Initial TrueType fonts
svn path=/trunk/; revision=1856
2001-05-02 12:26:15 +00:00
Jason Filby
83352970a1 Freetype 2 includes
svn path=/trunk/; revision=1855
2001-05-02 12:24:36 +00:00
Jason Filby
be9bb3fb3c Freetype 2
svn path=/trunk/; revision=1854
2001-05-02 12:21:38 +00:00
Rex Jolliff
38afc0ac8b Extracted vfat8dot3ToFilename from GetEntryName
Extracted vfatMakeAbsoluteFilename from vfatOpenFile
Extracted vfatGrabFCBFromTable from vfatOpenFile
Extracted vfatNewFCB from vfatOpenFile
Extracted vfatAddFCBToTable from vfatOpenFile
Removed RtlAnsiToUnicode, RtlCatAnsiToUnicode

svn path=/trunk/; revision=1853
2001-05-02 03:18:03 +00:00
Casper Hornstrup
87589daf4e Preparations for checked/free like builds (CPRINT == DbgPrint when DBG is defined).
Modified loadros to support loading symbol files early at startup.
Modified loadros to convey BIOS memory map to the kernel if available.
Began building PnP manager device tree.
Added shutdown command to shell.exe

svn path=/trunk/; revision=1852
2001-05-01 23:08:21 +00:00
Phillip Susi
58e60b3092 Don't crash if win32k.sys isn't there.. it's ok..
svn path=/trunk/; revision=1851
2001-05-01 23:06:25 +00:00
Casper Hornstrup
f98bbb1df7 Ported ACPI CA (from the nice guys at Intel) to ReactOS (ACPI bus driver).
Started on ISA PnP bus driver.

svn path=/trunk/; revision=1850
2001-05-01 23:00:05 +00:00
Casper Hornstrup
1debf1a12d Work on winsock stack and indentation corrections.
svn path=/trunk/; revision=1849
2001-05-01 22:44:07 +00:00
Casper Hornstrup
72c2af4ca7 Better RawIP support.
Minor fixes.

svn path=/trunk/; revision=1848
2001-05-01 22:34:01 +00:00
Emanuele Aliberti
8d5c635a36 NtQueryDirectoryObject rewritten.
apps/objdir.c fixed to work under nt4sp6a AND reactos.

svn path=/trunk/; revision=1847
2001-05-01 21:43:45 +00:00
Nedko Arnaudov
1afd43b049 ^ is used for escape sequences
svn path=/trunk/; revision=1846
2001-05-01 20:53:24 +00:00
Nedko Arnaudov
13eef5cc24 now it compiles
svn path=/trunk/; revision=1845
2001-05-01 19:42:56 +00:00
Rex Jolliff
d73834ea4f added a few more fsd tests
svn path=/trunk/; revision=1844
2001-05-01 17:36:04 +00:00
Eric Kohl
b76211b20a Mailslot and named pipe preparations
svn path=/trunk/; revision=1843
2001-05-01 11:09:01 +00:00
Rex Jolliff
dabd23ba77 added test set for fsd driver
svn path=/trunk/; revision=1842
2001-05-01 04:35:08 +00:00
Rex Jolliff
fdfb9053d9 BUGFIX: Primary partitions that appeared after extended in table were incorrectly mounted
changed some error messages from DPRINT to DbgPrint

svn path=/trunk/; revision=1841
2001-04-30 05:28:17 +00:00
Carl Nettelblad
7e0bfac662 This change shouldn't mess things up, if used together with latest vfat version.
NtQueryInformationFile is required to return valid name information for this to work.

svn path=/trunk/; revision=1840
2001-04-29 21:09:20 +00:00
Carl Nettelblad
59e33e46af Probably getting fcb.PathName handling right this time.
svn path=/trunk/; revision=1839
2001-04-29 21:08:14 +00:00
David Welch
8701c47012 Removed .dbg target
svn path=/trunk/; revision=1838
2001-04-28 22:59:16 +00:00
Phillip Susi
56d6a0c2b1 Undo last change removing config.h, which is now correctly auto generated
svn path=/trunk/; revision=1837
2001-04-26 14:26:23 +00:00
Phillip Susi
39b80bfefd Fixed definition of EPROCESS to work with the forward declaration in ketypes.h
svn path=/trunk/; revision=1836
2001-04-26 13:29:58 +00:00
David Welch
a1f93462d3 Explicitly create config.h
svn path=/trunk/; revision=1835
2001-04-26 13:23:38 +00:00
Phillip Susi
51ca2e3c1a Removed reference to kernel private header internal/ps.h
svn path=/trunk/; revision=1834
2001-04-26 13:23:01 +00:00
Phillip Susi
4420d9e0cb Added forward declaration for EPROCESS
svn path=/trunk/; revision=1833
2001-04-26 13:22:24 +00:00
Eric Kohl
18f8e8da80 Some minor cleanup
svn path=/trunk/; revision=1832
2001-04-26 11:31:33 +00:00
Phillip Susi
af3325ef66 Undo last change
svn path=/trunk/; revision=1831
2001-04-26 04:01:54 +00:00
Phillip Susi
6de9186661 Removed references to obsolete config.h preventing compilation
svn path=/trunk/; revision=1830
2001-04-26 03:58:33 +00:00
Phillip Susi
dff9686ea0 Close handles to shell process/thread
svn path=/trunk/; revision=1829
2001-04-26 01:36:32 +00:00
Phillip Susi
50f5d0807c Added Tail.Overlay.DriverContext to IRP structure
svn path=/trunk/; revision=1828
2001-04-26 01:31:35 +00:00
Phillip Susi
9b3a488664 Fixed bug in IoFlushAdapterBuffers
svn path=/trunk/; revision=1827
2001-04-26 01:30:17 +00:00
Phillip Susi
595a5bad20 Added a check for end of fat chain before end of recorded length
svn path=/trunk/; revision=1826
2001-04-26 01:28:54 +00:00
Phillip Susi
21cbb4fcc1 FAT12GetNextCluster still needs fixed to not assume entire FAT fits in one cache page
Fixed minor typos
Temporary fix for FAT12GetNextCluster to at least not overflow the cache page

svn path=/trunk/; revision=1825
2001-04-26 01:28:15 +00:00
Phillip Susi
dc3c360885 Floppy driver updates, managed to boot system from floppy
svn path=/trunk/; revision=1824
2001-04-26 01:24:31 +00:00
Nedko Arnaudov
197fe0acf4 escape char when setting string value changed to ^
svn path=/trunk/; revision=1823
2001-04-24 23:05:56 +00:00
Nedko Arnaudov
05a5575ff1 minor changes
svn path=/trunk/; revision=1822
2001-04-24 22:53:00 +00:00
Nedko Arnaudov
5ac5ed1e37 quotation handling bug fixed
svn path=/trunk/; revision=1821
2001-04-24 22:32:31 +00:00
Emanuele Aliberti
f57fc2af90 Some FsRtl API updated (stubs) to sync with ntifs.h v25 by Bo Branten.
Added a new DDK header file to group any symbol definition related to
NTIFS: ddk/fstypes.h. Now ddk/ntifs.h includes fstypes and fsfuncs.

svn path=/trunk/; revision=1820
2001-04-24 18:36:39 +00:00
Emanuele Aliberti
a9dc0b739e Compilation bug fixed (due to having used an "unknown" field in the
SYSTEM_MODULE_ENTRY object I updated yesterday).

svn path=/trunk/; revision=1819
2001-04-23 22:00:28 +00:00
Emanuele Aliberti
4fc0783845 Query/SetSystemInformation: added stubs for information classes 0-53 (up to nt5/w2k).
Updated the SYSTEM_INFORMATION_CLASS enumeration with members names from the Net, Dabak and Nebbett.

svn path=/trunk/; revision=1818
2001-04-22 23:06:57 +00:00
Casper Hornstrup
fa71c1ff6c Added kernel debugger help (type help for a list of commands)
svn path=/trunk/; revision=1817
2001-04-22 14:47:00 +00:00
David Welch
40ef0ef8e2 Set the fs register properly on entry to the kernel from an irq
svn path=/trunk/; revision=1816
2001-04-21 22:39:42 +00:00
Eric Kohl
cb2396496c Implemented PsCreateSystemProcess()
svn path=/trunk/; revision=1815
2001-04-21 12:39:33 +00:00
David Welch
71d0b655ac Ignore config.h
svn path=/trunk/; revision=1814
2001-04-20 12:59:59 +00:00
David Welch
6b9f511801 Remove config.h
svn path=/trunk/; revision=1813
2001-04-20 12:59:13 +00:00
Casper Hornstrup
f0e807621f Call KiUpdateSystemTime from KiInterruptDispatch if on first processor.
Mask correct interrupts at each IRQ level
Fixed APIC error on initialization

svn path=/trunk/; revision=1812
2001-04-20 12:42:23 +00:00
David Welch
e344bc3faa UP fixes, was enabling interrupts too early
svn path=/trunk/; revision=1811
2001-04-18 03:31:19 +00:00
David Welch
6dd0418c50 Forgot to test compilation under UP
UP is default

svn path=/trunk/; revision=1810
2001-04-17 23:53:16 +00:00
David Welch
d41145488c SMP scheduling fixes
Obey thread affinity
Fix bogus invariant in KeAcquireSpinLockAtDpcLevel
Protect display with spinlock

svn path=/trunk/; revision=1809
2001-04-17 23:39:26 +00:00
David Welch
f29036d97b Further SMP work (associate an idle thread with each processor)
svn path=/trunk/; revision=1808
2001-04-17 04:11:01 +00:00
David Welch
2cfadf3b41 per processor TSS
svn path=/trunk/; revision=1807
2001-04-16 23:29:55 +00:00
David Welch
2dfc5cfcd4 Missing file
svn path=/trunk/; revision=1806
2001-04-16 18:06:29 +00:00
David Welch
85f85e8462 Further SMP initialization work (now boots all processors on SMP bochs)
Preparation for per-processor GDT

svn path=/trunk/; revision=1805
2001-04-16 16:29:03 +00:00
Nedko Arnaudov
add5e2d89f Added base support for user settings.
svn path=/trunk/; revision=1804
2001-04-16 05:11:54 +00:00
Nedko Arnaudov
2957aa4ce5 Added support for escape sequences when setting string value.
svn path=/trunk/; revision=1803
2001-04-16 05:09:51 +00:00
Nedko Arnaudov
368db861e4 unexpected declaration removed :}
svn path=/trunk/; revision=1802
2001-04-16 05:07:23 +00:00
Nedko Arnaudov
7f0a6dcd48 Implemented: default settings, loading settings from registry key, settings for prompt, normal text colors and command text colors.
svn path=/trunk/; revision=1801
2001-04-16 05:03:29 +00:00
Nedko Arnaudov
2b246092f3 Argument parser now ignores escape sequences.
svn path=/trunk/; revision=1800
2001-04-16 04:58:31 +00:00
Nedko Arnaudov
616e4d5242 Prompt now supports customization. Implementation is based on customization string with escape sequences. The prompt currently recognizes only one sequence in the customization string, \w - the current path.
svn path=/trunk/; revision=1799
2001-04-16 04:53:31 +00:00
David Welch
aeb62db2e8 Default config
svn path=/trunk/; revision=1798
2001-04-16 02:02:43 +00:00
David Welch
65b55ec6c6 SMP detection work
Changed initialization back
Changed to NT IRQLs
Check for return from main

svn path=/trunk/; revision=1797
2001-04-16 02:02:07 +00:00
Casper Hornstrup
bdfcd5630a Fixes for NE2000 driver
svn path=/trunk/; revision=1796
2001-04-16 01:16:36 +00:00
Casper Hornstrup
8c8d19c080 Added PnP and Power structures
svn path=/trunk/; revision=1795
2001-04-16 00:52:12 +00:00
Casper Hornstrup
262859736d Added PnP and Power stubs
svn path=/trunk/; revision=1794
2001-04-16 00:51:19 +00:00
Casper Hornstrup
e8fc884c37 Added PnP and Power structures
svn path=/trunk/; revision=1793
2001-04-16 00:44:54 +00:00
Nedko Arnaudov
1648d6ba62 gdb2\Makefile
svn path=/trunk/; revision=1792
2001-04-15 23:43:12 +00:00
Nedko Arnaudov
2c11752216 RegistryExplorer.cpp
svn path=/trunk/; revision=1791
2001-04-15 22:17:50 +00:00
Nedko Arnaudov
a70a5e92d0 INSTALL
svn path=/trunk/; revision=1790
2001-04-15 22:08:23 +00:00
Casper Hornstrup
94309de6e4 Added Intel MultiProcessor Specification support
svn path=/trunk/; revision=1789
2001-04-13 16:12:26 +00:00
David Welch
33408fe398 Reduced the size of the kernel disk image by moving the initial page
tables and page directory to the bss and initializing them at runtime.

svn path=/trunk/; revision=1788
2001-04-12 00:56:04 +00:00
David Welch
c21076a36c buildno doesn't rewrite the include/reactos/buildno.h
Discard relocations and import table from ntoskrnl
Reorganise multiboot.S

svn path=/trunk/; revision=1787
2001-04-11 22:13:21 +00:00
Casper Hornstrup
db0d247af0 Added loading of symbols when modules are loaded.
Print symbols on stack frame dump.
Put symbols in \SystemRoot\Symbols.

svn path=/trunk/; revision=1786
2001-04-11 12:46:05 +00:00
David Welch
33267a7bd2 More sensible dependencies scheme for configuration
svn path=/trunk/; revision=1785
2001-04-10 22:13:23 +00:00
Eric Kohl
78232dab8b Added functions to run MS VC++ 5/6 apps
svn path=/trunk/; revision=1784
2001-04-10 19:20:37 +00:00
Eric Kohl
6a0be77508 Fixed crash if exported function does not exist
svn path=/trunk/; revision=1783
2001-04-10 19:14:27 +00:00
David Welch
3a788d44ee Trace facility
svn path=/trunk/; revision=1782
2001-04-10 18:15:22 +00:00
David Welch
e40a4953f2 .cvsignore file
svn path=/trunk/; revision=1781
2001-04-10 18:12:51 +00:00
David Welch
bd5d1d2adf Correct problem with keyboard input not being accepted
Added kernel debugger
Kernel configuration

svn path=/trunk/; revision=1780
2001-04-10 17:48:17 +00:00
David Welch
db0e348770 Reorganised cache segment data structure
svn path=/trunk/; revision=1779
2001-04-09 02:45:04 +00:00
jean
de935b3cf0 undo replacement of FILETIME by LARGE_INTEGER.
indeed LARGE_INTEGER cause bad alignement.

svn path=/trunk/; revision=1778
2001-04-07 15:06:17 +00:00
Phillip Susi
9b90a6532b Fixed IoCompleteRequest() to directly call completion function, rather than queue an APC, if the target thread == current thread, because the APC code doesn't seem to correctly handle queueing an APC to the current thread
svn path=/trunk/; revision=1777
2001-04-06 04:29:16 +00:00
Eric Kohl
b2a5aa012c Fixed global and local memory functions
svn path=/trunk/; revision=1776
2001-04-05 01:54:42 +00:00
David Welch
b7437fe01a Fix longstanding bug in keyboard driver
svn path=/trunk/; revision=1775
2001-04-04 22:21:32 +00:00
Eric Kohl
8d1e0c87b3 Fixed a severe typo
svn path=/trunk/; revision=1774
2001-04-03 20:18:21 +00:00
David Welch
b63d768a18 Keep DPC queue size correct
Share section pages with cache if possible
If doing a read direct from disk (not via the cache) don't copy the data
MDL fixes

svn path=/trunk/; revision=1773
2001-04-03 17:25:50 +00:00
Phillip Susi
0858e6f0fb Oops... forgot to use physical address when programming the dma controller
svn path=/trunk/; revision=1772
2001-04-02 23:54:37 +00:00
Phillip Susi
9dfa505536 Fixed DPC bug: when the DPC is run, it has been removed from the queue and therefore can be queued again, the old code did not allow the dpc to be queued again until after the first one returned
svn path=/trunk/; revision=1771
2001-04-02 04:07:49 +00:00
Jason Filby
da6d4130c3 fixed a stupid bug
svn path=/trunk/; revision=1770
2001-04-01 15:18:35 +00:00
David Welch
6ca8f2a32b Use unix style path seperators
svn path=/trunk/; revision=1769
2001-04-01 14:44:40 +00:00
David Welch
c53353dfcb Reverted previous change, unnecessary
svn path=/trunk/; revision=1768
2001-03-31 17:02:17 +00:00
Jason Filby
fd1d23c72f reference moved hal.h
svn path=/trunk/; revision=1767
2001-03-31 16:46:59 +00:00
Phillip Susi
c48815ca85 Moved header
svn path=/trunk/; revision=1766
2001-03-31 16:36:46 +00:00
Jason Filby
0d87c04fdb last typo, really!
svn path=/trunk/; revision=1765
2001-03-31 16:12:13 +00:00
Jason Filby
c321566c86 *** empty log message ***
svn path=/trunk/; revision=1764
2001-03-31 16:09:17 +00:00
Jason Filby
fac82fed75 typo
svn path=/trunk/; revision=1763
2001-03-31 16:05:55 +00:00
Phillip Susi
57dfac271e Added declaration for MmAllocateContiguousAlignedMemory
svn path=/trunk/; revision=1762
2001-03-31 16:02:07 +00:00
Phillip Susi
a758924464 Added FILE_XXX_ALIGNMENT defines
svn path=/trunk/; revision=1761
2001-03-31 16:01:42 +00:00
Phillip Susi
137c93f9c6 DMA support added
svn path=/trunk/; revision=1760
2001-03-31 16:01:03 +00:00
Jason Filby
f56e6b7e9e oops
svn path=/trunk/; revision=1759
2001-03-31 16:00:24 +00:00
Jason Filby
f22ea77911 disable freetype for now
svn path=/trunk/; revision=1758
2001-03-31 15:56:57 +00:00
Phillip Susi
d8538e9795 Massive floppy work
svn path=/trunk/; revision=1757
2001-03-31 15:53:56 +00:00
Phillip Susi
6b46ea08e7 Go back to stripping only debug syms, not everything, from ntoskrnl because the boot loader doesn't correctly process the image and create a BSS, so the BSS overwrites the debug info if it is there, or the first driver loaded if it is not.
svn path=/trunk/; revision=1756
2001-03-31 15:46:08 +00:00
Jason Filby
f3b6ab3603 Indentation corrected, new tests
svn path=/trunk/; revision=1755
2001-03-31 15:43:22 +00:00
Jason Filby
389375c4ee Indentation corrected, minor fixes
svn path=/trunk/; revision=1754
2001-03-31 15:40:34 +00:00
Jason Filby
14c634ca97 Identation corrected, many fixes and minor improvements, initial DIB support
svn path=/trunk/; revision=1753
2001-03-31 15:35:08 +00:00
David Welch
a934fd1c24 Fix for not valid PE module bug
svn path=/trunk/; revision=1752
2001-03-31 12:56:37 +00:00
David Welch
4e81d099cf Check for failed allocation
Split up kernel32 stubs
Print proper stack trace for user mode exceptions

svn path=/trunk/; revision=1751
2001-03-31 01:17:30 +00:00
Phillip Susi
5907d91e41 apps/uitest does not seem to exist, don't try to make it
svn path=/trunk/; revision=1750
2001-03-30 22:10:47 +00:00
David Welch
d135a77c67 Enable atom functions
Don't load NOLOAD sections
Print additional debugging information about module loading

svn path=/trunk/; revision=1749
2001-03-30 17:26:42 +00:00
David Welch
381057612c Don't map NOLOAD sections
svn path=/trunk/; revision=1748
2001-03-30 15:14:53 +00:00
Jason Filby
74412de062 Initialize the VGA to work with display driver's vgavideo.c
svn path=/trunk/; revision=1747
2001-03-29 17:45:50 +00:00
David Welch
fbb680dffd Strip everything from ntoskrnl
svn path=/trunk/; revision=1746
2001-03-29 17:24:43 +00:00
David Welch
877f965575 Remove debugging code
svn path=/trunk/; revision=1745
2001-03-29 02:25:10 +00:00
David Welch
ca5d9b1a2d Fixed int 10 problems
Guard pages for all thread stacks

svn path=/trunk/; revision=1744
2001-03-29 01:14:00 +00:00
David Welch
d9925196f3 Catch stack over/underflows
svn path=/trunk/; revision=1743
2001-03-28 14:24:05 +00:00
David Welch
bde0898ab5 Fixed page list initialization
svn path=/trunk/; revision=1742
2001-03-28 11:57:51 +00:00
Phillip Susi
eca8ca8582 Also removed call to ExAllocatePool from DPRINT1
Why the heck was this in DPRINT1 and not DPRINT?

svn path=/trunk/; revision=1741
2001-03-28 04:43:02 +00:00
Phillip Susi
b20a5f12ed Removed call to ExAllocatePool from CHECKPOINT1
svn path=/trunk/; revision=1740
2001-03-28 03:06:55 +00:00
David Welch
09ad24f08c Print addresses in stack frames even early in the boot
svn path=/trunk/; revision=1739
2001-03-27 21:43:43 +00:00
David Welch
634bb6b997 Set the io bitmap pointer beyond the TSS limit
svn path=/trunk/; revision=1738
2001-03-26 23:01:39 +00:00
Emanuele Aliberti
988ec8cb30 This is really a bare bones counter. It works with the last build.
Not really useful, but lets you watch ROS working for hours.
Counters slow down dramatically (486/66) when many instances are
running (3+). Also a subtle CSR console support bug appears: when
you switch console, if the restored one wrote below the bottom line,
current Y is not the bottom line anymore.

svn path=/trunk/; revision=1737
2001-03-26 21:30:20 +00:00
David Welch
8c86bcfe89 Fixes for page list initialization
V86 mode fixes

svn path=/trunk/; revision=1736
2001-03-26 20:46:53 +00:00
David Welch
51a205bc71 Fixed bug with calling RtlFreeUnicodeString too early in LdrFixupForward
svn path=/trunk/; revision=1735
2001-03-26 16:33:10 +00:00
Phillip Susi
b1601c09d8 Fixed incorrect assertion in IoAllocateController: assert_irql() seems to check for IRQL <= current IRQL, but this function must be called with current IRQL == DISPATCH_LEVEL, not <= DISPATCH_LEVEL.
svn path=/trunk/; revision=1734
2001-03-26 05:03:54 +00:00
Phillip Susi
cf4a06ff33 fixed bug in MmAllocateContiguousAlignedMemory due to uninitialized BaseAddress local
svn path=/trunk/; revision=1733
2001-03-26 04:38:39 +00:00
David Welch
e065bf41ff Bug fixes
svn path=/trunk/; revision=1732
2001-03-26 00:56:53 +00:00
David Welch
9b95a9991c Disable debug prints
svn path=/trunk/; revision=1731
2001-03-25 19:05:30 +00:00
David Welch
99a644a366 Further fixes
svn path=/trunk/; revision=1730
2001-03-25 18:56:13 +00:00
David Welch
c2d9004a56 Oops, forget this file
svn path=/trunk/; revision=1729
2001-03-25 11:48:18 +00:00
David Welch
51f1b4ac50 V86 mode fixes
Preparation for paging support

svn path=/trunk/; revision=1728
2001-03-25 03:34:30 +00:00
David Welch
9b3c1a2a1d Make the trap handlers work early in the boot process
svn path=/trunk/; revision=1727
2001-03-22 11:14:22 +00:00
Casper Hornstrup
5bbfcbdcde Pass RemainingPath for device type FILE_DEVICE_NETWORK
svn path=/trunk/; revision=1726
2001-03-21 23:30:20 +00:00
Casper Hornstrup
61c860daf7 Set FileObject in stack location in NtDeviceIoControlFile
svn path=/trunk/; revision=1725
2001-03-21 23:27:18 +00:00
Casper Hornstrup
547f4b4197 Fix for MmBuildMdlForNonPagedPool
svn path=/trunk/; revision=1724
2001-03-21 23:06:08 +00:00
Casper Hornstrup
0f3822bfb9 Added script for creating binary distribution
svn path=/trunk/; revision=1723
2001-03-21 22:34:24 +00:00
Casper Hornstrup
0b3adffd26 Added classes for cabinet handling
Added a cabinet manager

svn path=/trunk/; revision=1722
2001-03-21 22:32:33 +00:00
David Welch
591d955230 Bug fixes
svn path=/trunk/; revision=1721
2001-03-20 16:09:44 +00:00
Eric Kohl
7a86200cdc Use vidport-functions instead of ntdll-functions
svn path=/trunk/; revision=1720
2001-03-20 15:11:51 +00:00
Eric Kohl
04c0aa0853 Established forwarded exports in vidport.sys
svn path=/trunk/; revision=1719
2001-03-20 15:09:02 +00:00
Eric Kohl
e3b61f2e00 Established forwarded exports in win32k.sys
svn path=/trunk/; revision=1718
2001-03-20 15:06:22 +00:00
Phillip Susi
486ce0ad1a apps/exp does not seem to exist, prevents full make, removing
svn path=/trunk/; revision=1717
2001-03-20 03:09:01 +00:00
David Welch
32e24ab35e User exception handling doesn't work yet
svn path=/trunk/; revision=1716
2001-03-20 00:52:21 +00:00
David Welch
cebfcd7c5e One more bug in MmAllocateContiguousPages
Removed debugging code

svn path=/trunk/; revision=1715
2001-03-18 21:28:30 +00:00
David Welch
ffca6e4a0a Typo
svn path=/trunk/; revision=1714
2001-03-18 20:30:22 +00:00
Emanuele Aliberti
f8ad495ac2 Really simple application that displays how much time elaped.
svn path=/trunk/; revision=1713
2001-03-18 20:20:13 +00:00
Emanuele Aliberti
f907dc6e87 KERNEL32.GetSystemTimeAsFileTime prototype added.
svn path=/trunk/; revision=1712
2001-03-18 20:18:34 +00:00
David Welch
7e2c26824a Beginnings of user-mode debugging support.
svn path=/trunk/; revision=1711
2001-03-18 19:52:38 +00:00
David Welch
1e02a7d8d9 Allocate pages beginning from the top of memory
svn path=/trunk/; revision=1710
2001-03-18 19:37:54 +00:00
David Welch
d60628a01b Fixes for APC handling
Fixes for exceptions
Remove KeAddTimeoutThread
Beginnings of debug handling
Fixes for contiguous memory allocation
Cancel the thread timer before termination

svn path=/trunk/; revision=1709
2001-03-18 19:35:14 +00:00
Emanuele Aliberti
01846dd237 Stubs for LookupPrivilege* added.
svn path=/trunk/; revision=1708
2001-03-17 22:05:25 +00:00
David Welch
5d2401e39c More missing files
svn path=/trunk/; revision=1707
2001-03-17 12:20:13 +00:00
David Welch
1a0448a35b Bug fixes
Started work on exception handling

svn path=/trunk/; revision=1706
2001-03-17 11:11:11 +00:00
David Welch
58fc2c8cf8 Oops, missing files
svn path=/trunk/; revision=1705
2001-03-17 09:43:27 +00:00
David Welch
6fbeba1e7c Moved microkernel to the architecture specific directory
svn path=/trunk/; revision=1704
2001-03-16 23:05:00 +00:00
David Welch
2a613a30c4 Removed obsolete header files
Updated copyright notices

svn path=/trunk/; revision=1703
2001-03-16 18:11:24 +00:00
David Welch
9926c78c7f Removed obsolete file
svn path=/trunk/; revision=1702
2001-03-16 16:23:05 +00:00
David Welch
18015b2244 * include/ddk/zw.h: Corrected declarations of NtCreateProfile,
NtQueryIntervalProfile, NtSetIntervalProfile.
* include/ddk/zwtypes.h: Added definitions of KPROFILE_SOURCE.
* ntoskrnl/include/internal/ke.h: Added the interrupted EIP as a
parameter to KiUpdateSystemTime for profiling purposes.
* ntoskrnl/include/internal/nt: Added declaration for profiling
support initialization.
* ntoskrnl/ke/timer.c (KiUpdateSystemTime, KeExpireTimers): Call
the profiling code on a timer interrupt with the interrupt EIP.
* ntoskrnl/ke/i386/irq.c (KiDispatchInterrupt): Pass the
interrupted EIP to KiUpdateSystemTime.
* ntoskrnl/mm/virtual.c (NtReadVirtualMemory, NtWriteVirtualMemory):
Release the MDLs used properly.
* ntoskrnl/nt/nt.c: Call the profiling support initialization.
* ntoskrnl/nt/ntevent.c (NtCreateEvent): Don't try copying the
ObjectAttributes parameter if it is NULL.
* ntoskrnl/nt/profile.c: Implemented profiling.

svn path=/trunk/; revision=1701
2001-03-16 16:05:34 +00:00
David Welch
18f3b6c58b * ntoskrnl/include/internal/safe.h: Corrected typo.
* ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtQueryEvent):
  Corrected typos.
* ntoskrnl/rtl/mem.c: Missing header file.

svn path=/trunk/; revision=1700
2001-03-16 10:58:47 +00:00
David Welch
22dc9e2a5e * ntoskrnl/include/internal/safe.h: Add definitions for handling
potentially unsafe pointers.

svn path=/trunk/; revision=1699
2001-03-16 09:53:28 +00:00
David Welch
3744b5d4cf * ntoskrnl/include/internal/mm.h: Removed MmSafeCopyToUser and
MmSafeCopyFromUser as source files need these but don't want internal
  mm definitions.
* ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtPulseEvent,
  NtQueryEvent, NtResetEvent, NtSetEvent): Copy data to and from user mode
  safely.
* ntoskrnl/rtl/mem.c (MmCopyToCaller, MmCopyFromCaller): Helper functions
  for copying data to and from potentially unsafe pointers.

svn path=/trunk/; revision=1698
2001-03-16 09:50:38 +00:00
David Welch
549cb5b03d Further fixes
svn path=/trunk/; revision=1697
2001-03-16 00:00:47 +00:00
David Welch
2eb05bdbc5 Further dependency fixes
svn path=/trunk/; revision=1696
2001-03-15 23:41:31 +00:00
David Welch
7244e5bac9 Hopefully final dependencies fixes
svn path=/trunk/; revision=1695
2001-03-15 22:13:50 +00:00
David Welch
e7f98c9000 Missing file
svn path=/trunk/; revision=1694
2001-03-15 20:15:05 +00:00
David Welch
be2ca4fccd Oops, missing files
svn path=/trunk/; revision=1693
2001-03-15 18:52:45 +00:00
David Welch
a068c65d79 Oops, cope if the dependency list is empty
svn path=/trunk/; revision=1692
2001-03-15 18:49:17 +00:00
David Welch
c3c30d0692 Further dependency tracking fixes
svn path=/trunk/; revision=1691
2001-03-15 18:37:29 +00:00
David Welch
6fc1bdc912 Merge adjacent free blocks in the non-paged pool
Don't print the timer tick count to the screen

svn path=/trunk/; revision=1690
2001-03-14 23:19:14 +00:00
David Welch
d12635ff66 Remove part of the script
svn path=/trunk/; revision=1689
2001-03-14 16:36:26 +00:00
David Welch
5e5862c7fe More dependency fixes
svn path=/trunk/; revision=1688
2001-03-14 16:30:08 +00:00
David Welch
fc5f4ae9a5 Some work on portabilitity
svn path=/trunk/; revision=1687
2001-03-14 00:21:22 +00:00
David Welch
f7186d4cc3 Disable pool validation by default
svn path=/trunk/; revision=1686
2001-03-13 21:46:43 +00:00
David Welch
fba831e913 Reenable pool validation
svn path=/trunk/; revision=1685
2001-03-13 21:39:47 +00:00
Jason Filby
efbd594370 OLE32 header files from Jurgen Van Gael
svn path=/trunk/; revision=1684
2001-03-13 19:00:13 +00:00
David Welch
33702a0775 Retain reference to file objects so cached data isn't automatically loss
when the last handle is closed

svn path=/trunk/; revision=1683
2001-03-13 17:47:47 +00:00
David Welch
47ea39add9 Represent page-in operations by descriptors
svn path=/trunk/; revision=1682
2001-03-13 16:25:55 +00:00
David Welch
c20f2479b6 Further dependency tracking fixes
svn path=/trunk/; revision=1681
2001-03-12 19:23:48 +00:00
David Welch
7853be9c86 Escape '\' on UNIX
svn path=/trunk/; revision=1680
2001-03-12 17:32:54 +00:00
David Welch
6ea1527cfc Fixes for dependency tracking
svn path=/trunk/; revision=1679
2001-03-12 16:10:57 +00:00
David Welch
d520a12907 Close section handle after NtCreateProces in KERNEL32.CreateProcess
Cleanup after file object dereference
Cleanup after section object dereference

svn path=/trunk/; revision=1678
2001-03-09 14:40:28 +00:00
David Welch
6e9d388644 Reverted broken code
svn path=/trunk/; revision=1677
2001-03-08 22:48:42 +00:00
David Welch
6e89a9d21c Proper cleanup after processes
svn path=/trunk/; revision=1676
2001-03-08 22:06:02 +00:00
Carl Nettelblad
03e327f37f Current directory now always with correct casing.
svn path=/trunk/; revision=1675
2001-03-07 22:29:09 +00:00
David Welch
c5cdaa420a More .cvsignore files
svn path=/trunk/; revision=1674
2001-03-07 16:55:42 +00:00
David Welch
c706428a2b Added tagging of most allocates
Added facility to print out newly allocated blocks from the non paged pool

svn path=/trunk/; revision=1673
2001-03-07 16:48:45 +00:00
Eric Kohl
05428a2fea Added request routine for IRP_MJ_CLEANUP
svn path=/trunk/; revision=1672
2001-03-07 13:44:41 +00:00
David Welch
3073e95ed9 Print out the contents of the non-paged pool on SysRq+'A'
Bug fixes

svn path=/trunk/; revision=1671
2001-03-07 08:57:09 +00:00
Carl Nettelblad
f665b3f2f4 FILE_NAME_INFORMATION, returning correct casing thanks to changes in create.c
svn path=/trunk/; revision=1670
2001-03-06 23:36:35 +00:00
Carl Nettelblad
29552067b3 NtQueryObject in early test version and reorganization of NtQueryInformationFile.
svn path=/trunk/; revision=1669
2001-03-06 23:34:39 +00:00
Carl Nettelblad
870a302f96 Restoring NDEBUG flag again.
svn path=/trunk/; revision=1668
2001-03-06 23:31:44 +00:00
Carl Nettelblad
9e66717a35 Storing the real casing of names internally.
svn path=/trunk/; revision=1667
2001-03-06 23:28:42 +00:00
David Welch
43038e9c15 Hide dependency files
Wildcard characters are illegal in filenames

svn path=/trunk/; revision=1666
2001-03-06 17:28:25 +00:00
David Welch
e87e6d58ee And again.
svn path=/trunk/; revision=1665
2001-03-06 14:52:58 +00:00
David Welch
971b171d02 Minor dependency tracking fixes
svn path=/trunk/; revision=1664
2001-03-06 14:51:07 +00:00
David Welch
044ab2b0df Automatic dependency tracking
svn path=/trunk/; revision=1663
2001-03-06 14:41:18 +00:00
Eric Kohl
2d5f3d1c74 Fixed typos
Added more safety checks
Minor cleanup

svn path=/trunk/; revision=1662
2001-03-06 08:19:58 +00:00
Carl Nettelblad
de10767975 Additional fixes.
svn path=/trunk/; revision=1661
2001-03-06 06:20:36 +00:00
Eric Kohl
2ec9eaf736 Increased number of busy retries
svn path=/trunk/; revision=1660
2001-03-04 00:46:46 +00:00
Carl Nettelblad
d5d8d819b8 Reflecting changes in crtdll.
svn path=/trunk/; revision=1659
2001-03-03 13:28:28 +00:00
Carl Nettelblad
afe0e9f601 Fragmented directories and crosslinking related fixes.
svn path=/trunk/; revision=1658
2001-03-02 15:59:16 +00:00
Carl Nettelblad
d3e61a64dd Fixes for cmd copy command.
svn path=/trunk/; revision=1657
2001-03-02 15:45:31 +00:00
Eric Kohl
5149f0d29a Some atom prototype fixes
svn path=/trunk/; revision=1656
2001-03-01 15:36:34 +00:00
Eric Kohl
bf9d9a12e7 Fix for RtlUnicodeStringToInteger
svn path=/trunk/; revision=1655
2001-03-01 15:30:36 +00:00
David Welch
574a1b82f4 Changed wildcare handling (Carl Nettelblad)
svn path=/trunk/; revision=1654
2001-03-01 13:46:22 +00:00
David Welch
a2329a46e9 Fixed from Carl Nettelblad
svn path=/trunk/; revision=1653
2001-03-01 07:48:17 +00:00
Phillip Susi
c9a6908fb9 Fixed crash on help command, due to a buffer overflow. Thanks to jim4
svn path=/trunk/; revision=1652
2001-02-28 23:51:58 +00:00
Eric Kohl
ea6cacb6ed Various improvements by Carl Nettelblad.
svn path=/trunk/; revision=1651
2001-02-28 22:33:23 +00:00
David Welch
80ec0821f8 Allow allocating aligned, contiguous memory
svn path=/trunk/; revision=1650
2001-02-28 18:23:32 +00:00
Casper Hornstrup
327980fe31 Return affinity in HalpGetSystemInterruptVector
svn path=/trunk/; revision=1649
2001-02-25 12:54:37 +00:00
Casper Hornstrup
85e1649fc4 Fix for RtlUnicodeStringToInteger
svn path=/trunk/; revision=1648
2001-02-25 12:51:43 +00:00
Eric Kohl
c3dc053ba2 Fixed a horrible typo :-)
svn path=/trunk/; revision=1647
2001-02-22 23:46:45 +00:00
Eric Kohl
3121974d42 Implemented forwarded exports in kernel-mode
svn path=/trunk/; revision=1646
2001-02-21 18:19:19 +00:00
David Welch
c1c75ffd5e Fix from Mike Lerwill for KeStallExecutionProcessor
svn path=/trunk/; revision=1645
2001-02-20 14:43:46 +00:00
David Welch
15445cf1c8 Corrected va_arg bugs
Don't require c++ for compilation
Make sure the various stddef.h headers are kept seperate

svn path=/trunk/; revision=1644
2001-02-19 15:04:51 +00:00
David Welch
ac82b90278 Fix for memory management issue.
svn path=/trunk/; revision=1643
2001-02-18 22:16:05 +00:00
Phillip Susi
24fea578c1 Updated instructions
svn path=/trunk/; revision=1642
2001-02-18 21:35:21 +00:00
David Welch
209d2a0bdd Removed timer app
svn path=/trunk/; revision=1641
2001-02-18 21:04:09 +00:00
Phillip Susi
835e5e69e5 Ignore csrss.coff
svn path=/trunk/; revision=1640
2001-02-18 20:15:14 +00:00
Phillip Susi
dae0efdd4a Ignore keyboard.coff, keyboard.sys.unstripped
svn path=/trunk/; revision=1639
2001-02-18 20:11:41 +00:00
Phillip Susi
fd25f6dae0 Ignore vfatfs.coff
svn path=/trunk/; revision=1638
2001-02-18 20:10:32 +00:00
Phillip Susi
c57a9b4991 Ignore vidport.coff
svn path=/trunk/; revision=1637
2001-02-18 20:07:41 +00:00
Phillip Susi
2b3a1f40c1 Ignore vgamp.coff
svn path=/trunk/; revision=1636
2001-02-18 19:58:41 +00:00
Phillip Susi
689a632cf7 Ignore vgaddi.coff, vgaddi.dll
svn path=/trunk/; revision=1635
2001-02-18 19:56:14 +00:00
Phillip Susi
b65738db8d Ignore ide.sys.unstripped
svn path=/trunk/; revision=1634
2001-02-18 19:55:17 +00:00
Phillip Susi
4546061999 Ignore floppy.sys.unstripped
svn path=/trunk/; revision=1633
2001-02-18 19:54:37 +00:00
Phillip Susi
20612fed4c Ignore blue.sys.unstripped
svn path=/trunk/; revision=1632
2001-02-18 19:53:37 +00:00
Phillip Susi
99529fbb93 Missing .cvsignore
svn path=/trunk/; revision=1631
2001-02-18 19:47:42 +00:00
Phillip Susi
e9143b26d7 Fixes to waitable timer implementation
svn path=/trunk/; revision=1630
2001-02-18 19:43:15 +00:00
Phillip Susi
3d4886b292 Switched to using waitable timers instead of Sleep(), gives more accurate time cycles, also added some small optimizations
svn path=/trunk/; revision=1629
2001-02-18 19:31:38 +00:00
Emanuele Aliberti
349ae0c799 CMD: implemented IF [NOT] DEFINED variable command
CMD: fixed IF NOT EXIST file command

svn path=/trunk/; revision=1628
2001-02-18 18:51:46 +00:00
David Welch
f827a8f124 Fixed reference counting of page tables
Don't print addresses that aren't in the text segment of a module

svn path=/trunk/; revision=1627
2001-02-18 17:43:32 +00:00
Eric Kohl
d458692c89 Removed obsolete code
svn path=/trunk/; revision=1626
2001-02-17 17:42:46 +00:00
Eric Kohl
65a803db11 Added missing RtlGetProcessHeaps() prototype
svn path=/trunk/; revision=1625
2001-02-17 17:40:05 +00:00
Eric Kohl
0e40521339 Fixed timer access right
svn path=/trunk/; revision=1624
2001-02-17 00:07:49 +00:00
Eric Kohl
9f2db0a1d2 Established forwarded exports and removed superfluous functions
svn path=/trunk/; revision=1623
2001-02-17 00:02:32 +00:00
David Welch
beae346469 Changed irq handler from C to assembler
Began work on holding information about active page operations

svn path=/trunk/; revision=1622
2001-02-16 18:32:20 +00:00
David Welch
727b62c27f Fixed MmProbeAndLockPages issues pointed out by Philip Susi
svn path=/trunk/; revision=1621
2001-02-14 02:53:54 +00:00
Phillip Susi
07142de752 Darnit, don't override the rules.mak rule for building resources
svn path=/trunk/; revision=1620
2001-02-12 03:50:00 +00:00
Eric Kohl
933ff9a467 Changed version information for 0.0.17
svn path=/trunk/; revision=1619
2001-02-11 15:02:48 +00:00
Eric Kohl
b91cda60d8 RtlInitializeCriticalSection() returns NTSTATUS
svn path=/trunk/; revision=1618
2001-02-11 00:15:56 +00:00
David Welch
9359db14a0 Section and general memory manager enhancements including COW
svn path=/trunk/; revision=1617
2001-02-10 22:51:11 +00:00
Eric Kohl
29c4727f7a Preliminary command line fix
svn path=/trunk/; revision=1616
2001-02-10 22:30:21 +00:00
Eric Kohl
6922d2a9e5 GetModuleFileName[A/W] must cope with NULL module handles
svn path=/trunk/; revision=1615
2001-02-10 22:29:35 +00:00
Eric Kohl
af68ad91d4 Preparations for use of forwarded exports
svn path=/trunk/; revision=1614
2001-02-10 22:26:26 +00:00
Eric Kohl
03fd77240f Fixed typos
svn path=/trunk/; revision=1613
2001-02-10 22:23:30 +00:00
Emanuele Aliberti
b611b79b36 KERNEL32.GetProcessVersion partial implementation.
KERNEL32.GetSystemInfo about finished.

svn path=/trunk/; revision=1612
2001-02-10 22:01:50 +00:00
Emanuele Aliberti
37361ed1e8 GetProcessVersion prototype missing.
svn path=/trunk/; revision=1611
2001-02-10 22:00:20 +00:00
Eric Kohl
41280eeeb5 Implemented handling of forwarded exports
svn path=/trunk/; revision=1610
2001-02-10 10:04:39 +00:00
David Welch
c87bd2d365 More FAT32 fixes
svn path=/trunk/; revision=1609
2001-02-06 20:17:35 +00:00
David Welch
c93d52a405 Use import hint if present
svn path=/trunk/; revision=1608
2001-02-06 05:50:50 +00:00
Phillip Susi
ae14d5ffc6 If APC routines are supposed to be STDCALL, then they should all be, and a lot of code needs fixed. Because all of the existing code seems to not use STDCALL, neither should the normal routine. This was causing ntoskrnl to fail to compile
svn path=/trunk/; revision=1607
2001-02-06 05:12:42 +00:00
Phillip Susi
501fee0d15 Fixed makefile to use default rule for building resources, and fixed resource includes to use paths relative to the include dir given to windres by rules.mak
svn path=/trunk/; revision=1606
2001-02-06 03:58:34 +00:00
David Welch
bcc1b4e9a5 Implemented binary search of the export tables
svn path=/trunk/; revision=1605
2001-02-06 02:03:35 +00:00
David Welch
b2fe7525bf Reads of the FAT on FAT32 filesystems go through the cache, writes are
disabled

svn path=/trunk/; revision=1604
2001-02-06 00:41:19 +00:00
David Welch
076c1c6ac3 Fixed timer code
Fixed NtClose return in case of error
Added new APC-like primitive for terminating threads
Fixed restriction on size of working set

svn path=/trunk/; revision=1603
2001-02-06 00:11:20 +00:00
Phillip Susi
ae6b859854 Fixed clock increment for 10ms clock, and bug in computing relative time
svn path=/trunk/; revision=1602
2001-02-05 02:31:04 +00:00
Eric Kohl
fef0ed0d35 Implemented KeRemoveQueueApc() (not exported).
Implemented timer object.

svn path=/trunk/; revision=1601
2001-02-04 17:28:13 +00:00
Eric Kohl
543839bcee Implemented ObOpenObjectByPointer().
svn path=/trunk/; revision=1600
2001-02-03 23:25:06 +00:00
Eric Kohl
2a2b027dc1 Fixed command line size
Added workaround for broken command line support

svn path=/trunk/; revision=1599
2001-02-03 10:40:19 +00:00
Eric Kohl
62d9e11763 Reduced command line size in ReactOS mode
svn path=/trunk/; revision=1598
2001-02-03 10:37:51 +00:00
Eric Kohl
a7772a9954 Fixed command line size
svn path=/trunk/; revision=1597
2001-02-03 10:36:11 +00:00
Jason Filby
a34348ef4e *** empty log message ***
svn path=/trunk/; revision=1596
2001-02-03 10:29:54 +00:00
jean
47f77fa056 oops! leave make a pop, and caller of alloca make esp = esp +16.
svn path=/trunk/; revision=1595
2001-02-03 10:28:28 +00:00
Jason Filby
766ded4e0f Corrected line feeds so that DOS can run the .bat
svn path=/trunk/; revision=1594
2001-02-03 10:28:14 +00:00
Eric Kohl
ec9ef6951c Added access right mapping
Fixed access rights

svn path=/trunk/; revision=1593
2001-02-02 20:49:40 +00:00
jean
5f529d5a90 *** empty log message ***
svn path=/trunk/; revision=1592
2001-02-01 16:51:03 +00:00
jean
65249c23ae correct some bugs in spawn... functions
svn path=/trunk/; revision=1591
2001-02-01 16:44:19 +00:00
jean
c8f92d26a9 changes in alloca because gcc push only ebp at begin of function
svn path=/trunk/; revision=1590
2001-02-01 16:37:08 +00:00
jean
51c7c6091a fourth argument of WriteConsoleA is mandatory
svn path=/trunk/; revision=1589
2001-02-01 16:30:46 +00:00
Phillip Susi
3c5287c859 Forgot to commit bug fix for LoadString()
svn path=/trunk/; revision=1588
2001-02-01 00:04:44 +00:00
Phillip Susi
ed2b81a1b5 Minor fix
svn path=/trunk/; revision=1587
2001-01-31 03:03:20 +00:00
Phillip Susi
2965b6c9d7 Had to rearange some structure members
svn path=/trunk/; revision=1586
2001-01-31 02:27:04 +00:00
Phillip Susi
79c82716fa Bug fixes and redesign of a few ioctls
svn path=/trunk/; revision=1585
2001-01-31 02:24:46 +00:00
Phillip Susi
20916cab69 A few bug fixes
svn path=/trunk/; revision=1584
2001-01-31 02:23:52 +00:00
Phillip Susi
b93435c7db Bug fixes and speedup
svn path=/trunk/; revision=1583
2001-01-31 02:22:09 +00:00
Eric Kohl
1416a36841 Corrected unknown parameter
Added ObOpenObjectByPointer() stub

svn path=/trunk/; revision=1582
2001-01-29 00:32:13 +00:00
Emanuele Aliberti
7bfcc9b94c Stubs for some new LPC functions (w2k).
Added some base checking in NtCreatePort's parameters.

svn path=/trunk/; revision=1581
2001-01-29 00:13:22 +00:00
Eric Kohl
17b93d7d9b Added mapping of access rights
Removed user-mode types

svn path=/trunk/; revision=1580
2001-01-28 21:37:37 +00:00
Eric Kohl
c06ef435fb Added mapping of access rights
svn path=/trunk/; revision=1579
2001-01-28 17:42:56 +00:00
Eric Kohl
6c726dfe40 Added mapping of access rights
Improved 'open' function

svn path=/trunk/; revision=1578
2001-01-28 15:17:52 +00:00
Eric Kohl
9331d6391e Added mapping of access rights
svn path=/trunk/; revision=1577
2001-01-28 15:13:11 +00:00
Eric Kohl
d4850da19d Fixed a compiler warning
svn path=/trunk/; revision=1576
2001-01-28 01:20:20 +00:00
Emanuele Aliberti
ff1de6a212 Simple W32 telnet client.
Version resource added to ping and roshttpd.

svn path=/trunk/; revision=1575
2001-01-27 22:38:43 +00:00
Eric Kohl
5786d70e39 Fixed _iob bug
svn path=/trunk/; revision=1574
2001-01-27 20:56:44 +00:00
Eric Kohl
dc0568827a Fixed timer issues
svn path=/trunk/; revision=1573
2001-01-27 19:35:04 +00:00
Phillip Susi
2d87dedf3e OOps... that was already defined elsewhere...
svn path=/trunk/; revision=1572
2001-01-26 05:24:17 +00:00
jean
fb75aa1293 changes in _iob
svn path=/trunk/; revision=1571
2001-01-25 19:01:16 +00:00
jean
03832de6e4 *** empty log message ***
svn path=/trunk/; revision=1570
2001-01-25 18:59:49 +00:00
jean
12e9069480 correct some arguments for CreateFile
svn path=/trunk/; revision=1569
2001-01-25 18:55:33 +00:00
jean
98414449d5 *** empty log message ***
svn path=/trunk/; revision=1568
2001-01-25 18:51:26 +00:00
Phillip Susi
dee175afca Added LoadString() stringtable resource support
svn path=/trunk/; revision=1567
2001-01-25 05:39:31 +00:00
Phillip Susi
74e0c4a781 A few more console fixes
svn path=/trunk/; revision=1566
2001-01-25 05:37:03 +00:00
Phillip Susi
a6a0f5ae18 Added declarations for waitable timer functions
svn path=/trunk/; revision=1565
2001-01-25 05:36:21 +00:00
Phillip Susi
1ec1a6741c Fixed backwards parameters in FindResource()
svn path=/trunk/; revision=1564
2001-01-25 02:20:05 +00:00
Phillip Susi
a9527291d6 Fixed backspace handling
svn path=/trunk/; revision=1563
2001-01-24 05:13:12 +00:00
Phillip Susi
3943df51ea Fixed broken console code
svn path=/trunk/; revision=1562
2001-01-24 05:11:21 +00:00
Phillip Susi
89e2e7a616 Fixed kernel loader code also to handle uninitialized sections
svn path=/trunk/; revision=1561
2001-01-24 04:43:54 +00:00
Phillip Susi
207393f045 Both GetModuleHandleA and GetModuleHandleW need to handle NULL module name
svn path=/trunk/; revision=1560
2001-01-24 04:41:58 +00:00
Eric Kohl
42d7089e72 Removed fixed stack base address
svn path=/trunk/; revision=1559
2001-01-23 09:58:12 +00:00
Phillip Susi
6579aafa03 Undoing last commit, causes kernel to crash on boot. David, any idea why?
svn path=/trunk/; revision=1558
2001-01-23 04:46:08 +00:00
Phillip Susi
b6593ffc1b Fixed loader bug with uninitialized sections
svn path=/trunk/; revision=1557
2001-01-23 04:37:13 +00:00
Casper Hornstrup
e6c8459347 no message
svn path=/trunk/; revision=1556
2001-01-21 21:04:53 +00:00
Phillip Susi
782b28151b Applied David Welsh's fix for getting physical address from specified process instead of current one here as well
svn path=/trunk/; revision=1555
2001-01-21 19:00:59 +00:00
David Welch
10f230ae0a Fixed bug in NtFreeVirtualMemory reported by Philip Susi
Added all thread information classes
Began work on fixing suspend/resume

svn path=/trunk/; revision=1554
2001-01-21 14:54:30 +00:00
Phillip Susi
3f694e507f Keyboard driver should not translate \r to \n
svn path=/trunk/; revision=1553
2001-01-21 00:13:41 +00:00
Phillip Susi
f353289fba Reworked console code to use frame buffers and input queues
svn path=/trunk/; revision=1552
2001-01-21 00:11:54 +00:00
Phillip Susi
5d6f1d7dfa Added InterlockedXXX functions, probobly should use a different name
svn path=/trunk/; revision=1551
2001-01-21 00:09:05 +00:00
Phillip Susi
5c0fb84170 New console client support
svn path=/trunk/; revision=1550
2001-01-21 00:07:03 +00:00
Phillip Susi
b360ee177d Fixed a few bugs and enhanced performance
svn path=/trunk/; revision=1549
2001-01-21 00:05:53 +00:00
Eric Kohl
0f09a6d59c Added services.exe to boot sequence
svn path=/trunk/; revision=1548
2001-01-20 19:01:37 +00:00
Eric Kohl
03be08974e Added services.exe to boot sequence
svn path=/trunk/; revision=1547
2001-01-20 18:40:27 +00:00
Eric Kohl
300201892a Fixed severe bug in CreateEventW()
Implemented use of "\BaseNamedObjects" directory

svn path=/trunk/; revision=1546
2001-01-20 18:37:58 +00:00
Eric Kohl
86c7503953 Implemented ObOpenObjectByName()
svn path=/trunk/; revision=1545
2001-01-20 18:34:34 +00:00
Eric Kohl
3676b49d28 Completed mutex and semaphore implementation
Enabled some global memory functions

svn path=/trunk/; revision=1544
2001-01-20 12:20:43 +00:00
David Welch
703924d130 (Finally) implemented Philip Susi's suggestion for non-counting block
Moved suspend/resume code to seperate file

svn path=/trunk/; revision=1543
2001-01-19 15:09:01 +00:00
Eric Kohl
e443f083f2 Implemented system module Information
Got rid of cryptic driver names

svn path=/trunk/; revision=1542
2001-01-18 16:55:00 +00:00
jean
fd4c82a289 suppress use of FILE_READ_xx and FILE_WRITE_xxx defines.
not available for CreateFile ?

svn path=/trunk/; revision=1541
2001-01-18 15:04:06 +00:00
David Welch
a8660c1f02 Fixes for problems with NtReplyWaitReceive and KeWaitForSingleObject
svn path=/trunk/; revision=1540
2001-01-18 15:00:09 +00:00
jean
3116ca9df2 correct _environ assignment, because it's an array of pointers
and GetEnvironmentString return a pointer.

svn path=/trunk/; revision=1539
2001-01-18 14:43:25 +00:00
jean
d2833af32c incorrect use of FILE_xxx defines, not avalaible for CreateFile ?
svn path=/trunk/; revision=1538
2001-01-18 13:54:03 +00:00
jean
20ee4eb9a7 changes due to correction in ../misc/dllmain.c
for update of environ when calling putenv.

svn path=/trunk/; revision=1537
2001-01-18 13:25:33 +00:00
jean
7863eef29d *** empty log message ***
svn path=/trunk/; revision=1536
2001-01-18 13:23:26 +00:00
jean
d6e19c5407 correct environ affectation : it's an array of pointers
, and GetEnvironmentStrings return a pointer.

svn path=/trunk/; revision=1535
2001-01-18 13:21:51 +00:00
jean
a1da8a3ac2 *** empty log message ***
svn path=/trunk/; revision=1534
2001-01-18 13:18:05 +00:00
Emanuele Aliberti
efd7d3cbd8 Bootstrap title and short licence banner reformatted.
Please say your opinion about it.
Should the title line ("Starting ReactOS...") be the 1st line on the blue screen?

svn path=/trunk/; revision=1533
2001-01-17 19:07:13 +00:00
Emanuele Aliberti
394b6b568c Log file names macros added.
svn path=/trunk/; revision=1532
2001-01-17 19:04:15 +00:00
jean
824df27238 ibetter clean
svn path=/trunk/; revision=1531
2001-01-17 17:14:34 +00:00
jean
fcca9be111 better clean
svn path=/trunk/; revision=1530
2001-01-17 17:01:38 +00:00
David Welch
7a3409d80c Multiboot fixes
svn path=/trunk/; revision=1529
2001-01-17 15:38:03 +00:00
Eric Kohl
695a57cff6 Implemented SystemDeviceInformation info class
svn path=/trunk/; revision=1528
2001-01-17 02:02:39 +00:00
David Welch
0d8b4e3da6 FAT12 fixes
svn path=/trunk/; revision=1527
2001-01-16 23:22:03 +00:00
Phillip Susi
7b0b7c5396 Fixed bug with screen buffers larger than console window ( i.e. scrollback buffers )
svn path=/trunk/; revision=1526
2001-01-16 20:58:58 +00:00
David Welch
643441de17 Removed debugging prints
svn path=/trunk/; revision=1525
2001-01-16 15:43:42 +00:00
David Welch
25dc208536 Fix bug in MmAllocateContinuousPages spotted by Philip Susi
Fixed compilation bugs in roshttpd
Work on write support (still not working)

svn path=/trunk/; revision=1524
2001-01-16 09:55:02 +00:00
jean
7887cc9965 *** empty log message ***
svn path=/trunk/; revision=1523
2001-01-15 15:46:04 +00:00
jean
352d348f09 correct crash when running DllMain
svn path=/trunk/; revision=1522
2001-01-15 15:40:58 +00:00
Emanuele Aliberti
2faa9c1b95 Copyright string updated.
svn path=/trunk/; revision=1521
2001-01-14 23:27:36 +00:00
Emanuele Aliberti
db38d666da SYSTEMTIME type replaced by TIME.
svn path=/trunk/; revision=1520
2001-01-14 20:56:48 +00:00
Emanuele Aliberti
a04660d2b0 tz command fixed (info class 44).
svn path=/trunk/; revision=1519
2001-01-14 20:16:37 +00:00
Emanuele Aliberti
01531797b4 SYSTEM_TIME_ZONE_INFORMATION added.
svn path=/trunk/; revision=1518
2001-01-14 20:06:20 +00:00
Emanuele Aliberti
4a354f1128 FLG decoding added.
svn path=/trunk/; revision=1517
2001-01-14 19:59:43 +00:00
Emanuele Aliberti
a3a116651b FLG macros added.
svn path=/trunk/; revision=1516
2001-01-14 19:58:58 +00:00
Casper Hornstrup
52f51dc4b9 Small HTTP daemon
svn path=/trunk/; revision=1515
2001-01-14 18:35:17 +00:00
Casper Hornstrup
05ccbb2696 Some work on winsock stack
svn path=/trunk/; revision=1514
2001-01-14 17:44:38 +00:00
Eric Kohl
2dd3473a90 Added some hal functions
svn path=/trunk/; revision=1513
2001-01-14 15:36:55 +00:00
Eric Kohl
eaeab91ab2 Print driver names on initialization
svn path=/trunk/; revision=1512
2001-01-14 15:30:47 +00:00
Eric Kohl
7efa62275f Added shutdown description
svn path=/trunk/; revision=1511
2001-01-14 15:28:50 +00:00
Eric Kohl
36c7b523ee Fixed 'clean' rule
svn path=/trunk/; revision=1510
2001-01-14 15:27:15 +00:00
David Welch
eda06227b3 More small cluster size fixes
svn path=/trunk/; revision=1509
2001-01-14 15:05:53 +00:00
Emanuele Aliberti
51772d486a ADVAPI32.LookupAccountSidA and ADVAPI32.LookupAccountSidW stubs added.
svn path=/trunk/; revision=1508
2001-01-14 12:15:19 +00:00
Nedko Arnaudov
bf1b057da3 no message
svn path=/trunk/; revision=1507
2001-01-13 23:55:37 +00:00
David Welch
15491f14dd Fix for vfatfs on volumes with smaller cluster sizes
svn path=/trunk/; revision=1506
2001-01-13 18:38:09 +00:00
Emanuele Aliberti
df75bd846f PE image file dumper, by Sang Cho, adapted to ROS (wip).
svn path=/trunk/; revision=1505
2001-01-13 18:19:23 +00:00
Emanuele Aliberti
5d04b18c15 Obsolete regnav removed.
qsi updated (still wip).
Minor changes.

svn path=/trunk/; revision=1504
2001-01-13 18:17:17 +00:00
David Welch
d2b9b6d912 Removed use of intermediate buffering when reading from the cache
svn path=/trunk/; revision=1503
2001-01-13 12:40:21 +00:00
David Welch
e371c33d76 Removed debugging code from NTDLL loader
Make sure there is a space between the boot device and the kernel command
line
Vfat fixes

svn path=/trunk/; revision=1502
2001-01-12 21:00:08 +00:00
Phillip Susi
1c655ae05a Fixed compilation error with symbols _environ/_environ_dll
svn path=/trunk/; revision=1501
2001-01-11 02:38:34 +00:00
Nedko Arnaudov
1688a8d7c5 no message
svn path=/trunk/; revision=1500
2001-01-10 01:25:29 +00:00
David Welch
48b5533bd5 Some memory manager cleanups
Hopefully fixed vfat fsd reported by Philip Susi
FAT lookups go through cache

svn path=/trunk/; revision=1499
2001-01-08 02:14:06 +00:00
Eric Kohl
21c3a954d0 Updated 'clean' rule (added missing directories)
svn path=/trunk/; revision=1498
2001-01-07 18:45:21 +00:00
Eric Kohl
624869c3c3 Added some more runtime functions
svn path=/trunk/; revision=1497
2001-01-07 03:00:32 +00:00
Eric Kohl
8fe6e74b25 Indicate loading process by dots (in non-debug mode only)
svn path=/trunk/; revision=1496
2001-01-07 02:56:20 +00:00
Rex Jolliff
b12b25cd3d Fixed a bug in partition chain handling
svn path=/trunk/; revision=1495
2001-01-06 23:25:35 +00:00
Rex Jolliff
e4b73aa914 Fixed a problem with command line parsing
svn path=/trunk/; revision=1494
2001-01-06 21:40:13 +00:00
Eric Kohl
66aa4c41db Added some more functions
Got rid of spec file

svn path=/trunk/; revision=1493
2001-01-06 15:49:53 +00:00
Phillip Susi
83463a35cc Export SetLastErrorByStatus()
svn path=/trunk/; revision=1492
2001-01-05 05:39:18 +00:00
Eric Kohl
58f7f41275 Implemented NtSignalAndWaitForSingleObject()
svn path=/trunk/; revision=1491
2001-01-02 00:47:08 +00:00
David Welch
240c9da1da The VFAT filesystem driver now goes through the cache for reads, writing
is disabled.

svn path=/trunk/; revision=1490
2001-01-01 04:42:12 +00:00
David Welch
9e386e114c Fix for compilation bug
svn path=/trunk/; revision=1489
2000-12-30 04:19:42 +00:00
Eric Kohl
138b30dd40 Added HalAllocateAdapterChannel()
svn path=/trunk/; revision=1488
2000-12-30 01:41:52 +00:00
David Welch
ed20b9b6ba Implemented MmAllocateContinuousMemory
VFAT driver cleanups

svn path=/trunk/; revision=1487
2000-12-29 23:17:12 +00:00
Eric Kohl
1f1ae27105 Added / moved exception support functions
svn path=/trunk/; revision=1486
2000-12-29 13:49:15 +00:00
Eric Kohl
380b1db222 Implemented shutdown routine dummy
svn path=/trunk/; revision=1485
2000-12-29 13:45:01 +00:00
Eric Kohl
65c77b52d6 Implemented fsd shutdown support
svn path=/trunk/; revision=1484
2000-12-29 13:43:13 +00:00
Eric Kohl
66f91ccbf9 Fixed some undocumented functions and types
svn path=/trunk/; revision=1483
2000-12-28 20:38:28 +00:00
jean
7bd40a855a copy some functions from crtdll
svn path=/trunk/; revision=1482
2000-12-28 11:57:10 +00:00
jean
43999c2a2d copy of some functions from crtdll
svn path=/trunk/; revision=1481
2000-12-28 11:43:07 +00:00
jean
7a974c0294 *** empty log message ***
svn path=/trunk/; revision=1480
2000-12-28 11:39:33 +00:00
David Welch
0fc13a01ee Implemented /Device/PhysicalMemory
Corrected an LPC bug when terminating a process with threads waiting for
LPC messages

svn path=/trunk/; revision=1479
2000-12-28 03:38:08 +00:00
David Welch
7f10630ab4 Disable testing code
svn path=/trunk/; revision=1478
2000-12-26 05:34:27 +00:00
David Welch
390fd4f1fb Added support for calling BIOS functions
Partially implemented VideoPortInt10

svn path=/trunk/; revision=1477
2000-12-26 05:32:44 +00:00
David Welch
3b50cd9ca9 Fixed compilation bug
svn path=/trunk/; revision=1476
2000-12-24 03:35:54 +00:00
David Welch
8445b12452 All task switching is done in software.
Beginnings of v86 mode support.
Corrected locking bug when terminating multithreaded process.

svn path=/trunk/; revision=1475
2000-12-23 02:37:41 +00:00
Emanuele Aliberti
b6c91b703e _itow, _ltow, _ultow added to crtdll.
*** TO BE TESTED ***

svn path=/trunk/; revision=1474
2000-12-22 23:20:15 +00:00
Eric Kohl
91bcb7413f Implemented NtResumeThread() and NtSuspendThread()
Cleanup

svn path=/trunk/; revision=1473
2000-12-22 13:37:41 +00:00
Eric Kohl
64ba922c19 Implemented NtResumeThread() and NtSuspendThread()
Cleanup

svn path=/trunk/; revision=1472
2000-12-22 13:32:06 +00:00
jean
90beca63cb begin implementation of memory detection
svn path=/trunk/; revision=1471
2000-12-20 18:44:20 +00:00
Emanuele Aliberti
c6010e401e Version resource added to the command line utilities more, tee, and y.
svn path=/trunk/; revision=1470
2000-12-19 23:06:20 +00:00
Rex Jolliff
72e967e710 Fixed a problem with install rule
svn path=/trunk/; revision=1469
2000-12-19 20:20:16 +00:00
Eric Kohl
a391eec94c Implemented some verify functions.
svn path=/trunk/; revision=1468
2000-12-11 18:20:02 +00:00
David Welch
488f0ac078 Some work on file caching
Some work on the minix filesystem
Some work on v86 mode support
Implemented NtGetContextThread

svn path=/trunk/; revision=1467
2000-12-10 23:42:01 +00:00
Eric Kohl
4ac4987dd2 Implemented some verify functions.
svn path=/trunk/; revision=1466
2000-12-10 19:15:45 +00:00
Emanuele Aliberti
6d9f357735 Cleaning up before moving psxss to subsys/psx/server .
svn path=/trunk/; revision=1465
2000-12-10 16:57:07 +00:00
Emanuele Aliberti
1439a96e69 Cleaning up before moving psxdll in subsys/psx/client .
svn path=/trunk/; revision=1464
2000-12-10 16:44:50 +00:00
Emanuele Aliberti
7235c776e4 I added the -p option to make buildno simply print the current build number,
but not generate the reactos/buildno.h file.

svn path=/trunk/; revision=1463
2000-12-10 16:23:15 +00:00
Emanuele Aliberti
6faae58d64 Updated to be a proper secur32.dll version resource.
Still missing a proper description: where is secur32.dll from?

svn path=/trunk/; revision=1462
2000-12-09 22:37:14 +00:00
Phillip Susi
b2b12a1d09 Opps... can't just return from a native thread proc, have to TerminateProcess()
svn path=/trunk/; revision=1461
2000-12-09 06:29:29 +00:00
Phillip Susi
8bdd137c8f RtlCreateUserProcess was not checking for failure of mapping the executable file and returning that error
svn path=/trunk/; revision=1460
2000-12-09 04:34:52 +00:00
Casper Hornstrup
af9693f4da Fixed typo.
svn path=/trunk/; revision=1459
2000-12-08 22:09:17 +00:00
Casper Hornstrup
d3f5f7862f Fixed bug that caused a crash when creating an unnamed semaphore.
svn path=/trunk/; revision=1458
2000-12-08 22:08:02 +00:00
jean
4dc42b4202 SUPERSEDE implemented
svn path=/trunk/; revision=1457
2000-12-08 17:12:43 +00:00
Eric Kohl
2af149a27c Replaced hard-coded paths
svn path=/trunk/; revision=1456
2000-12-08 00:45:04 +00:00
Eric Kohl
07127c18af Fixed floppy driver bug!
The floppy controler is now recognized properly!!

svn path=/trunk/; revision=1455
2000-12-08 00:43:45 +00:00
jean
3d521d0a20 LdrFixupImports more verbose when DLL not found.
svn path=/trunk/; revision=1454
2000-12-07 17:00:12 +00:00
jean
02d3c2cb72 bug corrected in updating fat16
erase clusters before use.

svn path=/trunk/; revision=1453
2000-12-07 16:58:42 +00:00
Eric Kohl
d8748695f2 Run winlogon.exe instead of shell.exe
Replaced hard-coded paths

svn path=/trunk/; revision=1452
2000-12-05 18:14:07 +00:00
Eric Kohl
3ab0b1f9a2 Minor fixes
svn path=/trunk/; revision=1451
2000-12-05 18:11:51 +00:00
Eric Kohl
e69d5f4655 Fixed forwarding of current directory string
svn path=/trunk/; revision=1450
2000-12-05 18:08:24 +00:00
jean
a7d8f1c9ab corrected bugs in create operations
svn path=/trunk/; revision=1449
2000-12-05 17:12:16 +00:00
Eric Kohl
564101ab11 Moved system applications
svn path=/trunk/; revision=1448
2000-12-05 02:40:51 +00:00
Eric Kohl
c40c9f88c1 no message
svn path=/trunk/; revision=1447
2000-12-03 20:31:03 +00:00
Eric Kohl
d4ae36c1c5 no message
svn path=/trunk/; revision=1446
2000-12-03 20:29:44 +00:00
Eric Kohl
f01dd17793 Added some functions to msvcrt
svn path=/trunk/; revision=1445
2000-12-03 18:00:07 +00:00
Eric Kohl
a9828950fe Added some functions to msvcrt
svn path=/trunk/; revision=1444
2000-12-03 17:49:41 +00:00
Eric Kohl
b7a9c63dad Some minor fixes
svn path=/trunk/; revision=1443
2000-12-03 17:43:46 +00:00
Eric Kohl
9deb8f01da Fixed compiler warnings
svn path=/trunk/; revision=1442
2000-12-02 02:25:30 +00:00
jean
55feb47d30 added test arg in NtFlushKey
svn path=/trunk/; revision=1441
2000-12-01 12:44:15 +00:00
jean
45fcd58321 corrected bug in writing files : extend files before needed
svn path=/trunk/; revision=1440
2000-12-01 12:41:08 +00:00
jean
7cdd9a1c62 *** empty log message ***
svn path=/trunk/; revision=1439
2000-12-01 12:39:17 +00:00
jean
bd1cb1e820 many bugs corrected
now pass OK tests 1,2,3 and 5 of regtest

svn path=/trunk/; revision=1438
2000-11-27 14:54:28 +00:00
jean
c07ef00211 added test for NtFlushKey
added a loop, allowing to make several tests before exiting.

svn path=/trunk/; revision=1437
2000-11-27 14:21:04 +00:00
jean
e53fb528db correct bug in write operations
svn path=/trunk/; revision=1436
2000-11-23 15:53:37 +00:00
jean
565277e563 *** empty log message ***
svn path=/trunk/; revision=1435
2000-11-21 15:10:15 +00:00
jean
cf1b2d1b6c some changes to prepare write in hive files
svn path=/trunk/; revision=1434
2000-11-21 11:12:27 +00:00
Eric Kohl
716fa2a717 Modified makefiles for use with rcopy
Added a missing prototype

svn path=/trunk/; revision=1433
2000-11-20 19:59:14 +00:00
Eric Kohl
d456e5b838 Fixed bug (or better: typo)
svn path=/trunk/; revision=1432
2000-11-19 22:15:03 +00:00
Eric Kohl
a703d88253 Fixed tls code
svn path=/trunk/; revision=1431
2000-11-19 16:01:29 +00:00
Eric Kohl
41ac59fb91 Added tls bitmap initialization
svn path=/trunk/; revision=1430
2000-11-19 15:59:46 +00:00
Eric Kohl
885e8a3344 Fixed bitmap bug
svn path=/trunk/; revision=1429
2000-11-19 15:58:58 +00:00
Eric Kohl
bd08f2070e Fixed tiny display buglet
svn path=/trunk/; revision=1428
2000-11-19 15:57:27 +00:00
Jason Filby
4b0dec4293 minor fix
svn path=/trunk/; revision=1427
2000-11-16 21:45:54 +00:00
Eric Kohl
143ef3c5b1 Fixed a compiler warning
svn path=/trunk/; revision=1426
2000-11-16 00:32:12 +00:00
jean
575c0c896a bugs corrected
svn path=/trunk/; revision=1425
2000-11-10 15:41:46 +00:00
jean
fb51b0f647 reference/dereference of objects corrected
update time of heap when data changed
some other bugs corrected

svn path=/trunk/; revision=1424
2000-11-10 15:35:40 +00:00
Eric Kohl
93647509cc Fixed some system information stuff
svn path=/trunk/; revision=1423
2000-11-04 13:52:12 +00:00
Eric Kohl
3f82e28a32 Fixed compiler warning
svn path=/trunk/; revision=1422
2000-11-04 13:48:11 +00:00
Eric Kohl
e7f86f45fb Fixed linker warning about missing _NtProcessStartup()
svn path=/trunk/; revision=1421
2000-11-01 12:45:53 +00:00
Jason Filby
55a9a7623e minor fixes
svn path=/trunk/; revision=1420
2000-10-25 13:09:05 +00:00
Nedko Arnaudov
a248f1e7c3 GPL sync + delete value implemented
svn path=/trunk/; revision=1419
2000-10-24 20:17:42 +00:00
jean
2a81cebc82 fixed bugs
load registry file entirely

svn path=/trunk/; revision=1418
2000-10-24 12:13:12 +00:00
Eric Kohl
b60489a76a Removed obsolete linux header files
svn path=/trunk/; revision=1417
2000-10-22 16:36:53 +00:00
Eric Kohl
1c236a2886 Replaced linux io calls
Removed references to linux io headers

svn path=/trunk/; revision=1416
2000-10-22 13:30:19 +00:00
Eric Kohl
dab151f2f1 Implemented event pair
svn path=/trunk/; revision=1415
2000-10-22 11:30:00 +00:00
Eric Kohl
9267a79b9e Replaced linux io calls
svn path=/trunk/; revision=1414
2000-10-22 02:02:28 +00:00
Eric Kohl
1db1c12cf3 Fixed prototype
svn path=/trunk/; revision=1413
2000-10-22 02:01:42 +00:00
Eric Kohl
382d5a76c2 Removed duplicate code and replaced linux io calls
svn path=/trunk/; revision=1412
2000-10-22 01:59:51 +00:00
Eric Kohl
a83fd9fd73 Fixed warnings and indentation
svn path=/trunk/; revision=1411
2000-10-22 01:58:11 +00:00
Jason Filby
201009ddd9 *** empty log message ***
svn path=/trunk/; revision=1410
2000-10-18 10:42:07 +00:00
Jason Filby
14b2a471ce *** empty log message ***
svn path=/trunk/; revision=1409
2000-10-18 09:39:32 +00:00
Jason Filby
77d9f6fb99 *** empty log message ***
svn path=/trunk/; revision=1408
2000-10-18 09:11:01 +00:00
jean
bb44d63a00 add management of free blocks
svn path=/trunk/; revision=1407
2000-10-16 15:22:45 +00:00
jean
3f76d0e8a9 remove unimplemented functions
test more verbose

svn path=/trunk/; revision=1406
2000-10-16 15:05:19 +00:00
Jason Filby
76ba7eadb1 Improved bitblt and painting performance
Initial mouse pointer code

svn path=/trunk/; revision=1405
2000-10-14 22:58:24 +00:00
Jason Filby
06bf88e073 Minor fixes
svn path=/trunk/; revision=1404
2000-10-14 22:42:11 +00:00
Jason Filby
d17678ebd0 *** empty log message ***
svn path=/trunk/; revision=1403
2000-10-14 22:40:18 +00:00
David Welch
e9b7a9a972 Corrected typos in the minix driver
svn path=/trunk/; revision=1402
2000-10-11 20:57:19 +00:00
David Welch
9ab512dafc Correct implementation of user-mode APCs
svn path=/trunk/; revision=1401
2000-10-11 20:50:35 +00:00
jean
e7214e13b1 remove code for tests
svn path=/trunk/; revision=1400
2000-10-11 15:06:31 +00:00
jean
3199989397 added tests in apps/regtest
work on write hive registry
read tests successful for volatile and non volatile keys
write tests successful for volatile keys

svn path=/trunk/; revision=1399
2000-10-11 13:20:39 +00:00
Eric Kohl
3b8acca85c Minor update
svn path=/trunk/; revision=1398
2000-10-09 00:18:00 +00:00
Eric Kohl
e224120546 Fixed compiler warning
svn path=/trunk/; revision=1397
2000-10-09 00:12:01 +00:00
David Welch
d996724891 Fixed compilation bugs
Removed useless spec files

svn path=/trunk/; revision=1396
2000-10-08 23:44:46 +00:00
Eric Kohl
26aa5fb4dd Fixed a typo
svn path=/trunk/; revision=1395
2000-10-08 19:13:01 +00:00
Eric Kohl
69afd5910f Added nameless struct/union support for [U]LARGE_INTEGER
svn path=/trunk/; revision=1394
2000-10-08 19:11:28 +00:00
David Welch
8a74f96a65 Additional bug fixes
Removed spec file
Removed libgcc.a
Set FS register in thread contexts

svn path=/trunk/; revision=1393
2000-10-08 16:32:53 +00:00
Eric Kohl
8d1034c5fa Added atom table stubs
Implemented NtQuerySemaphore()
Implemented RtlConvertSidToUnicode()
Replaced more calls to Linux io functions
Some minor fixes

svn path=/trunk/; revision=1392
2000-10-08 12:56:45 +00:00
Eric Kohl
9e2f41853a Added atom table stubs
Implemented NtQuerySemaphore()
Implemented RtlConvertSidToUnicode()
Replaced more calls to Linux io functions
Some minor fixes

svn path=/trunk/; revision=1391
2000-10-08 12:51:25 +00:00
Nedko Arnaudov
4e21487a31 In GNU make, Variables and functions in all parts of a makefile are expanded when read, so include of rules.mak must be done before using variable defined in it.
svn path=/trunk/; revision=1390
2000-10-08 10:48:10 +00:00
Eric Kohl
a2d079723b Implemented missing KeRaiseIrqlToXxLevel() functions
svn path=/trunk/; revision=1389
2000-10-07 21:06:19 +00:00
Eric Kohl
5bea9979e8 Added check for existing 'SystemRoot' link target
svn path=/trunk/; revision=1388
2000-10-07 20:55:15 +00:00
David Welch
f1096bb7f0 Some bug fixes
svn path=/trunk/; revision=1387
2000-10-07 18:44:08 +00:00
David Welch
fe87b12edd Renamed makefile to Makefile
svn path=/trunk/; revision=1386
2000-10-07 13:44:24 +00:00
David Welch
a254e64d73 Added multiboot support to ntoskrnl
Updated loadros to boot new kernel
Corrected thread priority bugs
Removed Linux port io
Added system call entry/exit that updates PreviousMode
Changes to allow ntoskrnl to be built without optimization
Updated make system
Added PCR
Most components can be built without special spec file

svn path=/trunk/; revision=1385
2000-10-07 13:41:58 +00:00
Eric Kohl
15b935ba7c Implemented NtPulseEvent() and NtQueryEvent()
svn path=/trunk/; revision=1384
2000-10-06 22:54:58 +00:00
Eric Kohl
4a5bc9edc8 Minor fix
svn path=/trunk/; revision=1383
2000-10-06 22:54:41 +00:00
Eric Kohl
bd44cd188f obsolete
svn path=/trunk/; revision=1382
2000-10-06 16:54:38 +00:00
Eric Kohl
0a2b580710 Implemented IoCreateNotificationEvent() and IoCreateSynchronizationEvent()
svn path=/trunk/; revision=1381
2000-10-06 16:54:04 +00:00
Eric Kohl
6e63676205 Added missing STDCALLs
svn path=/trunk/; revision=1380
2000-10-05 19:17:25 +00:00
Eric Kohl
aa5a575bd0 Added registry shutdown function CmShutdownRegistry()
Updated shutdown sequence

svn path=/trunk/; revision=1379
2000-10-05 19:15:50 +00:00
Eric Kohl
beaf6eac44 Implmented NtFlushWriteBuffer()
svn path=/trunk/; revision=1378
2000-10-05 19:10:55 +00:00
jean
619ad3483b add some tests
svn path=/trunk/; revision=1377
2000-10-05 14:55:55 +00:00
jean
a1b7c80868 correct bugs
svn path=/trunk/; revision=1376
2000-10-05 14:55:25 +00:00
Emanuele Aliberti
ae69a8e1e4 Registry Explorer (console tool) by Nedko Arnaoudov added to the system utilities subtree.
Also here: http://www.geocities.com/registryexplorer/

svn path=/trunk/; revision=1375
2000-10-04 21:04:31 +00:00
Eric Kohl
f3632d15b8 Implemented GetFileType()
Some cleanup

svn path=/trunk/; revision=1374
2000-10-01 19:54:57 +00:00
jean
31f697ce8f work on registry
svn path=/trunk/; revision=1373
2000-09-29 15:03:21 +00:00
Eric Kohl
bd6afcb8ba Implemented CreatePipe()
svn path=/trunk/; revision=1372
2000-09-27 01:24:37 +00:00
Eric Kohl
99434057af Implemented some ascii functions
svn path=/trunk/; revision=1371
2000-09-27 01:22:31 +00:00
Phillip Susi
0ea51977f6 Fixed crash due to thread priority out of bonuds bug... not sure if I did this right, but it seems to fix the crash. Someone should probobly look at this.
svn path=/trunk/; revision=1370
2000-09-24 23:55:21 +00:00
jean
08982a387e read functions on file SYSTEM implemented
svn path=/trunk/; revision=1369
2000-09-22 15:08:55 +00:00
jean
572b3bf901 work on ntopenkey forkeys insystem hive
svn path=/trunk/; revision=1368
2000-09-21 13:45:42 +00:00
jean
56cd5f816c type of Name in KEY_BLOCK corrected
svn path=/trunk/; revision=1367
2000-09-18 09:39:18 +00:00
Casper Hornstrup
37d6d2f97f Added WinSock 2 DLL Stubs
svn path=/trunk/; revision=1366
2000-09-17 09:41:15 +00:00
Casper Hornstrup
7ec7480d5c Added ping application (won't work on ReactOS yet)
svn path=/trunk/; revision=1365
2000-09-17 09:40:33 +00:00
Casper Hornstrup
734dbaddef Small change in tdikrnl.h
svn path=/trunk/; revision=1364
2000-09-17 09:38:46 +00:00
Casper Hornstrup
b7eaee833c Added WinSock 2 Headers
svn path=/trunk/; revision=1363
2000-09-17 09:37:04 +00:00
Casper Hornstrup
ab2b4e0924 Added WinSock 2 DLL Stubs
svn path=/trunk/; revision=1362
2000-09-17 09:36:01 +00:00
Casper Hornstrup
2a734dfd02 Added WinSock 2 Helper DLL for TCP/IP (Stubs only)
svn path=/trunk/; revision=1361
2000-09-17 09:33:44 +00:00
jean
b0a3240f8e work on registry files
svn path=/trunk/; revision=1360
2000-09-14 14:45:06 +00:00
jean
522110434e report changes from 1.29
svn path=/trunk/; revision=1359
2000-09-13 11:46:35 +00:00
jean
ad66ea993a work on registry
svn path=/trunk/; revision=1358
2000-09-13 10:29:48 +00:00
jean
ee426ef891 work on registry
svn path=/trunk/; revision=1357
2000-09-13 09:51:58 +00:00
Rex Jolliff
79753f70ea added some book references
svn path=/trunk/; revision=1356
2000-09-13 03:54:09 +00:00
Emanuele Aliberti
192a6b11b4 Added Casper to the coders parade.
svn path=/trunk/; revision=1355
2000-09-12 23:21:20 +00:00
Emanuele Aliberti
f452b24998 Updated years in version info.
svn path=/trunk/; revision=1354
2000-09-12 23:20:15 +00:00
jean
380f53e057 remove ctrl-M
svn path=/trunk/; revision=1353
2000-09-12 10:43:56 +00:00
jean
7a86d15add declaration of NtLoadKey2 corrected.
svn path=/trunk/; revision=1352
2000-09-12 10:43:28 +00:00
jean
cfa0bfd3f1 changes in IRP for compatibility
svn path=/trunk/; revision=1351
2000-09-12 10:12:13 +00:00
Emanuele Aliberti
28d86222cd Version resource added to the system utilities.
svn path=/trunk/; revision=1350
2000-09-11 20:17:02 +00:00
Emanuele Aliberti
e7a0c9b4eb Little change to make version resource linked in ne2000.sys.
svn path=/trunk/; revision=1349
2000-09-10 20:00:13 +00:00
Eric Kohl
f6975e3ad4 Implemented driver shutdown registration
svn path=/trunk/; revision=1348
2000-09-10 13:54:01 +00:00
Emanuele Aliberti
18fb33cd77 RC script updated.
svn path=/trunk/; revision=1347
2000-09-10 10:14:39 +00:00
Eric Kohl
4b34e5c2de Implemented basic registry functions
svn path=/trunk/; revision=1346
2000-09-08 22:55:14 +00:00
Eric Kohl
16625529a2 Fixed [Nt/Zw]LoadKey2 prototype
svn path=/trunk/; revision=1345
2000-09-08 22:52:17 +00:00
Eric Kohl
6320160bea Ooops! I forgot that little thingy...
svn path=/trunk/; revision=1344
2000-09-08 19:39:31 +00:00
Eric Kohl
d7d755265d Fixed some bugs in the registry
Improved registry test app

svn path=/trunk/; revision=1343
2000-09-06 19:59:54 +00:00
Phillip Susi
e7365f8b00 Made PsGetCurrentThread STDCALL
svn path=/trunk/; revision=1342
2000-09-06 03:08:22 +00:00
Phillip Susi
11c7a09174 Initialize new Win32ThreadData member in ETHREAD
svn path=/trunk/; revision=1341
2000-09-06 03:08:08 +00:00
Phillip Susi
b9d500fbd4 Made ObAddEntryDirectory STDCALL
svn path=/trunk/; revision=1340
2000-09-06 03:06:55 +00:00
Phillip Susi
c76d475edb Made PsGetCurrentThread STDCALL
svn path=/trunk/; revision=1339
2000-09-06 03:00:10 +00:00
Phillip Susi
4ca3269e59 Added pointer to win32k data in ETHREAD
svn path=/trunk/; revision=1338
2000-09-06 02:57:24 +00:00
Phillip Susi
8dba8b5f8b Made ObAddEntryDirectory STDCALL
svn path=/trunk/; revision=1337
2000-09-06 02:56:53 +00:00
Phillip Susi
5df884f1d2 Added ObAdEntryDirectory and PsGetCurrentThread to kernel export list
svn path=/trunk/; revision=1336
2000-09-06 02:08:00 +00:00
Eric Kohl
991be350f7 Registry fixes (not usable yet)
Loader improvements

svn path=/trunk/; revision=1335
2000-09-05 23:03:09 +00:00
Eric Kohl
90a17ecf05 Added registry test app
svn path=/trunk/; revision=1334
2000-09-05 22:57:43 +00:00
Eric Kohl
fbac67d372 Implemented dll detach on thread termination
svn path=/trunk/; revision=1333
2000-09-05 13:53:27 +00:00
Eric Kohl
19e205fb97 Implemented dll detach on process termination
svn path=/trunk/; revision=1332
2000-09-05 11:01:03 +00:00
Eric Kohl
ed32877e90 Fixed some minor loader bugs
svn path=/trunk/; revision=1331
2000-09-04 19:05:03 +00:00
Eric Kohl
c0159ad5c8 Some minor fixes
svn path=/trunk/; revision=1330
2000-09-03 14:53:13 +00:00
Eric Kohl
3004e5b9bd Fixed mysterious registry bug
svn path=/trunk/; revision=1329
2000-09-03 14:46:49 +00:00
Eric Kohl
df314ce26e Improved internal dll handling
Implemented or fixed dll and resource functions

svn path=/trunk/; revision=1328
2000-09-01 17:09:50 +00:00
David Welch
dd7e38a19d Reverted back to revision 1.59 because my last commit overwrote recent
changes.

svn path=/trunk/; revision=1327
2000-08-31 00:11:15 +00:00
David Welch
8e0014c64b Added calibration of KeStallExecutionProcessor delay
Corrected compilation bugs in user32
Corrected compilation bugs related to anonymous structs in ndis code
Pass commandline from loadros
Corrected PIC mask calculation

svn path=/trunk/; revision=1326
2000-08-30 19:33:29 +00:00
Emanuele Aliberti
3b94410c8a Version resource was off the final binary image.
svn path=/trunk/; revision=1325
2000-08-29 20:10:49 +00:00
Eric Kohl
3f36421f86 Added/fixed resource 'loader'.
svn path=/trunk/; revision=1324
2000-08-28 21:49:11 +00:00
Casper Hornstrup
7550af7e4d Fixed user32.dll so it will compile
svn path=/trunk/; revision=1323
2000-08-28 19:36:49 +00:00
David Welch
8293c58f61 Added platform independant mkdir program
svn path=/trunk/; revision=1322
2000-08-27 23:06:36 +00:00
Eric Kohl
acaf5099d7 User-mode loader improvements
svn path=/trunk/; revision=1321
2000-08-27 22:37:45 +00:00
Casper Hornstrup
5c58f80d97 Fixed user32.dll so it will compile
svn path=/trunk/; revision=1320
2000-08-27 16:44:02 +00:00
Casper Hornstrup
9a1e13b7d8 Added Novell Eagle 2000 Driver
svn path=/trunk/; revision=1319
2000-08-27 16:35:31 +00:00
Casper Hornstrup
33252ab449 Basic NDIS 3.0 support
svn path=/trunk/; revision=1318
2000-08-27 16:31:41 +00:00
Casper Hornstrup
abd30f9819 Fixed bugs in TCP/IP driver
svn path=/trunk/; revision=1317
2000-08-27 16:28:59 +00:00
Eric Kohl
24d06e9f82 Replaced call to LdrLoadModule() by call to ZwSetSystemInformation()
svn path=/trunk/; revision=1316
2000-08-26 16:22:04 +00:00
Eric Kohl
1a10e72f31 Finished drive letter assignment
Implemented WinNT compatible ARC path (boot.ini)

svn path=/trunk/; revision=1315
2000-08-25 15:56:24 +00:00
Eric Kohl
6c2d255207 Minor ide driver cleanup
Implemented ARC names

svn path=/trunk/; revision=1314
2000-08-24 19:15:20 +00:00
Eric Kohl
495a30cb8e Fixed partition read bug
svn path=/trunk/; revision=1313
2000-08-22 21:10:28 +00:00
Eric Kohl
c27ed38f21 Fixed disk size and partition limits
svn path=/trunk/; revision=1312
2000-08-22 21:09:25 +00:00
Eric Kohl
e7dc6b7c4b xHalIoReadPartitionTable() can now handle partially corrupted partition tables
svn path=/trunk/; revision=1311
2000-08-22 14:10:59 +00:00
Eric Kohl
6f1d7ad00c Implemented IoReadPartitionTable().
Implemented proper drive letter assignment.

svn path=/trunk/; revision=1310
2000-08-21 00:15:54 +00:00
David Welch
8434fc42db Fixed memory manager bugs
Removed page directory references from machine independant code
Implemented page table reference counting
Added vm test application

svn path=/trunk/; revision=1309
2000-08-20 17:02:10 +00:00
Eric Kohl
7c29439d2b Fixed the real bug
svn path=/trunk/; revision=1308
2000-08-19 01:21:17 +00:00
Eric Kohl
1aa74074a2 Fixed an ugly bug
svn path=/trunk/; revision=1307
2000-08-19 00:02:55 +00:00
David Welch
ddfa2017c7 Added .o -> .sys rule to simplify driver makefiles
Added PATH_TO_ROOT variable to most makefiles
Added system independant install utility
Implemented prototype system for changing individual regions without a
memory area
Added some interesting articles from usenet

svn path=/trunk/; revision=1306
2000-08-18 22:27:09 +00:00
Eric Kohl
f7d76fbc5b Fixed port i/o functions
svn path=/trunk/; revision=1305
2000-08-18 17:25:54 +00:00
Eric Kohl
cc22ad9378 Fixed partition id bug
Moved some definitions

svn path=/trunk/; revision=1304
2000-08-18 17:24:17 +00:00
Eric Kohl
375b8055e3 Added preliminary pci bus scanner
svn path=/trunk/; revision=1303
2000-08-17 17:43:27 +00:00
Eric Kohl
7b9adffa48 Fixed some warnings
svn path=/trunk/; revision=1302
2000-08-15 12:50:35 +00:00
Eric Kohl
b4cd061025 Improved shared user page
Initialized windows and system directories

svn path=/trunk/; revision=1301
2000-08-15 12:44:47 +00:00
Emanuele Aliberti
f2e0104287 Win32 fiber stubs.
svn path=/trunk/; revision=1300
2000-08-14 14:34:12 +00:00
Emanuele Aliberti
47dfd4feaa Win32 fiber stubs
svn path=/trunk/; revision=1299
2000-08-14 14:33:24 +00:00
David Welch
6f6219e903 Added shared data test application
svn path=/trunk/; revision=1298
2000-08-12 19:37:03 +00:00
David Welch
3ae3b46dcd Updated CREDITS
Work on security
Updated heap code from wine implementation
Implemented kernel/user shared data page

svn path=/trunk/; revision=1297
2000-08-12 19:33:23 +00:00
Emanuele Aliberti
70a09d673c Fixed a pair of exported symbols' stack size.
svn path=/trunk/; revision=1296
2000-08-11 17:30:20 +00:00
Emanuele Aliberti
97b05ef460 Added symbolic link expansion.
svn path=/trunk/; revision=1295
2000-08-11 17:18:31 +00:00
Eric Kohl
6db1a5193f Removed M$ driver
svn path=/trunk/; revision=1294
2000-08-11 12:49:11 +00:00
Eric Kohl
891b9b74ee Removed unused file
svn path=/trunk/; revision=1293
2000-08-11 12:48:00 +00:00
Eric Kohl
c6c624ebe3 Renamed pseudo target 'floppy' to 'install'
Added workaround for corrupted dos header magic
Added some more rtl functions

svn path=/trunk/; revision=1292
2000-08-11 12:46:47 +00:00
jean
df3c817b6b little work on registry
svn path=/trunk/; revision=1291
2000-08-11 08:17:41 +00:00
Eric Kohl
71ea66b0b8 Fixed typo
svn path=/trunk/; revision=1290
2000-08-10 15:50:03 +00:00
Eric Kohl
f55fec7c32 Fixed compiler warnings
svn path=/trunk/; revision=1289
2000-08-08 17:42:33 +00:00
Eric Kohl
7a8a2f9e95 Fixed FLOPPY and DIST targets for net drivers
svn path=/trunk/; revision=1288
2000-08-08 17:41:41 +00:00
David Welch
c65edfad92 Integrated fixes from prep0016
Changes to the networking code to remove anonymous structures and unions
Fix for bug where RtlSetEnvironmentVariable didn't if it had acquired the
PEB lock before releasing it
Updating clean targets

svn path=/trunk/; revision=1286
2000-08-05 18:01:58 +00:00
Emanuele Aliberti
65ecb0b98b Simple utility to list the so called "DOS Devices", that is
symbolic links in the \?? directory of the Ob name space.

svn path=/trunk/; revision=1285
2000-08-04 21:49:31 +00:00
Casper Hornstrup
66d2f292ef Fixed compile issues with network code
svn path=/trunk/; revision=1284
2000-08-02 20:39:49 +00:00
David Welch
a859ee0c1e Added networking code from Casper Hornstrup
svn path=/trunk/; revision=1283
2000-08-02 00:24:26 +00:00
David Welch
b5ff23bb2f Added networking code from Casper Hornstrup
svn path=/trunk/; revision=1282
2000-08-02 00:02:53 +00:00
David Welch
792773e953 Added networking code from Casper Hornstrup
svn path=/trunk/; revision=1281
2000-08-01 23:54:06 +00:00
Casper Hornstrup
2c41cbbe57 Initial revision
svn path=/trunk/; revision=1277
2000-08-01 18:43:15 +00:00
David Welch
83f94cade6 Fixes from Casper Hornstrup
svn path=/trunk/; revision=1276
2000-07-30 18:22:35 +00:00
Eric Kohl
afde198a7d Implemented hal system interrupt functions
svn path=/trunk/; revision=1275
2000-07-24 23:51:46 +00:00
David Welch
07b9585e22 Added floppy makefile and version resource file
svn path=/trunk/; revision=1270
2000-07-19 14:25:35 +00:00
David Welch
768ab2e5dc Added timer constant fix from Genadi V. Zawidowski
svn path=/trunk/; revision=1269
2000-07-19 14:23:37 +00:00
David Welch
c3d5ea4e9b Removed broken dma code
Some work on memory managment
Initialize FPU
Reset CR0.TS after task switch but floating point state is *not* saved
Work on floppy driver
Add versions of ide and vfatfs drivers compiled with debugging information

svn path=/trunk/; revision=1268
2000-07-19 14:18:20 +00:00
Eric Kohl
6041051d6a Fixed 'echo.' and 'echoerr.'
svn path=/trunk/; revision=1267
2000-07-19 06:58:13 +00:00
Phillip Susi
fb416bf8e2 Updated shell.exe to be console mode aware
svn path=/trunk/; revision=1265
2000-07-11 04:40:00 +00:00
Phillip Susi
cc05ca5acb Implemented console modes
svn path=/trunk/; revision=1264
2000-07-11 04:09:25 +00:00
Phillip Susi
041f614e06 Minor bug fix
svn path=/trunk/; revision=1263
2000-07-11 04:08:43 +00:00
Phillip Susi
510af07f3c Removed calls to ExAllocatePool so code can be used in components that do not link to ntoskrnl.exe
svn path=/trunk/; revision=1262
2000-07-11 04:02:45 +00:00
Eric Kohl
85c3d3799b Moved interrupt code from hal into kernel
Implemented missing interrupt functions

svn path=/trunk/; revision=1261
2000-07-10 21:55:49 +00:00
Rex Jolliff
b4f80cb2e6 added files to be ignored
svn path=/trunk/; revision=1260
2000-07-09 17:34:05 +00:00
Rex Jolliff
a6613e4b6f added cvsignore file so that dir gets created
svn path=/trunk/; revision=1259
2000-07-09 17:32:49 +00:00
Rex Jolliff
f48fc3a954 added some files to be ignored by cvs
svn path=/trunk/; revision=1258
2000-07-09 17:31:32 +00:00
Eric Kohl
e97ef012de Fixed typos
svn path=/trunk/; revision=1257
2000-07-08 18:49:24 +00:00
David Welch
68375602c1 *** empty log message ***
svn path=/trunk/; revision=1256
2000-07-08 16:53:33 +00:00
Eric Kohl
fb7b00bd59 Added check for valid DC
svn path=/trunk/; revision=1255
2000-07-08 09:46:32 +00:00
Eric Kohl
0afbea5a1c Added checks for loaded drivers
svn path=/trunk/; revision=1254
2000-07-07 11:59:11 +00:00
Eric Kohl
8353127423 Fixed a typo
svn path=/trunk/; revision=1253
2000-07-07 11:56:04 +00:00
Eric Kohl
25557b0457 Added dist target
svn path=/trunk/; revision=1252
2000-07-07 11:55:02 +00:00
David Welch
8689a5cfe9 Corrected bug where user32.a wasn't being cleaned
Corrected bugs in paging implementation
Began work on MPW thread

svn path=/trunk/; revision=1251
2000-07-07 10:30:57 +00:00
Eric Kohl
0ea1d03808 Separated close request
Fixed bugs in create request

svn path=/trunk/; revision=1250
2000-07-07 02:14:14 +00:00
Eric Kohl
a20a2dd801 Implemented vpb spinlock
svn path=/trunk/; revision=1249
2000-07-07 02:10:50 +00:00
Phillip Susi
b81629c2a0 More DbgPrint to DPRINT changes, Implimented support for deleting DCs, causing switch back to text mode, and another change from nonpaged to paged pool
svn path=/trunk/; revision=1248
2000-07-07 01:20:53 +00:00
Phillip Susi
4568d2fd4c Converted more DbgPrints to DPRINT and allocate bitmaps from paged pool instead of non paged
svn path=/trunk/; revision=1247
2000-07-07 01:19:02 +00:00
Phillip Susi
96e4bf5c1f Bug fixes to win32k
svn path=/trunk/; revision=1246
2000-07-07 01:18:04 +00:00
Phillip Susi
418efd5de8 Implimented switch back to text mode after gditest
svn path=/trunk/; revision=1245
2000-07-07 01:16:50 +00:00
Phillip Susi
aa9ca10d75 One should not say the device does not exist causing the driver to fail to load... how the hell did this work before?
svn path=/trunk/; revision=1244
2000-07-07 01:06:35 +00:00
Phillip Susi
21489b923a Implimented reset to text mode
svn path=/trunk/; revision=1243
2000-07-07 01:05:33 +00:00
Phillip Susi
61ed9441a3 Converted a bunch of DbgPrint() calls to DPRINT()
svn path=/trunk/; revision=1242
2000-07-07 01:02:11 +00:00
Phillip Susi
a1ff5576a5 Implimented switch back to text mode after gditest
svn path=/trunk/; revision=1241
2000-07-07 00:59:41 +00:00
Phillip Susi
001c73ed14 Fixed ps code to terminate threads correctly
svn path=/trunk/; revision=1240
2000-07-07 00:49:02 +00:00
Phillip Susi
3ca24a2c2a Fixed [Ke/Nt]WaitForMultipleObjects() bug
svn path=/trunk/; revision=1239
2000-07-07 00:46:35 +00:00
Phillip Susi
db1ccdf290 Fixes to timeout code
svn path=/trunk/; revision=1238
2000-07-07 00:45:37 +00:00
Phillip Susi
84f943edc6 Fixed ps bug, proper termination of threads
svn path=/trunk/; revision=1237
2000-07-07 00:44:07 +00:00
Phillip Susi
67d46de5d3 Fixed typeo that was breaking NtReadFile() with async reads
svn path=/trunk/; revision=1236
2000-07-07 00:42:58 +00:00
Phillip Susi
10c1321106 Do not clean up mdl on paging requests, as the mm needs it still
svn path=/trunk/; revision=1235
2000-07-07 00:41:36 +00:00
Phillip Susi
7bf98ea309 Set IRP_PAGING_IO on mdl ( paging ) requests
svn path=/trunk/; revision=1234
2000-07-07 00:40:49 +00:00
Phillip Susi
2b37b9beea Exported NtOpenEvent()
svn path=/trunk/; revision=1233
2000-07-07 00:39:24 +00:00
Phillip Susi
194e86b860 Implimented DeleteDC()
svn path=/trunk/; revision=1232
2000-07-07 00:38:17 +00:00
Phillip Susi
2f1d0bf882 Minor fixes, enabled return to text mode
svn path=/trunk/; revision=1231
2000-07-07 00:36:36 +00:00
Phillip Susi
017479a5f0 Fixed left out paremter error
svn path=/trunk/; revision=1230
2000-07-06 20:53:27 +00:00
David Welch
d26222f310 Added experimental paging out code (wouldn't activate until the system is
out of memory)
Added stress test application (consumes memory)
Corrected mutex implementation
Moved csrss startup into kernel32 to avoid ugly messages on startup

svn path=/trunk/; revision=1229
2000-07-06 14:34:52 +00:00
Eric Kohl
671c1bc412 Append the '.exe' extension automatically
svn path=/trunk/; revision=1228
2000-07-05 18:07:08 +00:00
Eric Kohl
bea48dda7a Fixed 'cd \' bug
svn path=/trunk/; revision=1227
2000-07-05 18:05:21 +00:00
Phillip Susi
2946fd90c7 Removed duplicate and incorrect declaration for KeRaiseUserException
svn path=/trunk/; revision=1226
2000-07-04 20:02:35 +00:00
David Welch
f801003a51 Compilation fixes
svn path=/trunk/; revision=1225
2000-07-04 11:11:06 +00:00
David Welch
d351d182ef Added working set functions
Seperated memory manager initialization
Seperated trap functions
Removed process/thread definitions from ddk headers
Changed indentation back to sane style (please don't change)

svn path=/trunk/; revision=1224
2000-07-04 08:52:47 +00:00
Eric Kohl
9caffc49ae Fixed RtlNtStatusToDosError()
Implemented some more functions

svn path=/trunk/; revision=1223
2000-07-04 01:30:18 +00:00
Eric Kohl
bad7efb0e7 Final macro fixes
Minor fixes

svn path=/trunk/; revision=1222
2000-07-02 17:33:15 +00:00
Eric Kohl
add4b2d35b Simplified driver initialization
svn path=/trunk/; revision=1221
2000-07-02 10:54:41 +00:00
Eric Kohl
73437d2939 Fixed more macros
Merged/moved/deleted some files

svn path=/trunk/; revision=1220
2000-07-02 10:50:48 +00:00
David Welch
ed53dc2acc Removed unused header file
Fixed compilation errors resulting from header file changes
Fixed vga driver compilation under unix
Patched up use of *deprecated* inb/outb interfaces in vga driver

svn path=/trunk/; revision=1219
2000-07-01 23:18:59 +00:00
Eric Kohl
83e4b66c10 Fixed Ps macros
svn path=/trunk/; revision=1218
2000-07-01 22:38:15 +00:00
Eric Kohl
6abd233802 Replaced boot_param by LOADER_PARAMETER_BLOCK
Added missing dpc functions
Fixed some Ke macros

svn path=/trunk/; revision=1217
2000-07-01 18:27:03 +00:00
Emanuele Aliberti
95f8770ae2 Minor changes.
svn path=/trunk/; revision=1216
2000-07-01 17:07:02 +00:00
Eric Kohl
f3e6819471 Added hal dispatch tables.
Implemented PhysicalDrive links.
Started drive letter assignment.

svn path=/trunk/; revision=1214
2000-06-30 22:53:32 +00:00
David Welch
cc95f73421 Made header file usage more consistent
Tried to reduce dependancies between layers by moving ntoskrnl's private
header files inside its directory
Removed the need to include windows.h for ddk code
Removed obsolete testing code

svn path=/trunk/; revision=1213
2000-06-29 23:35:53 +00:00
David Welch
109fef6e75 Corrected bug when booting with loadros
Began work on fixing up APCs.

svn path=/trunk/; revision=1212
2000-06-27 19:20:45 +00:00
David Welch
17e1656941 Documented parts of the page fault path and flagged some possible locking
issues.
Implemented waiting on page i/o.

svn path=/trunk/; revision=1211
2000-06-26 19:41:43 +00:00
David Welch
fcf9dcd627 Fixed bug.
svn path=/trunk/; revision=1210
2000-06-25 17:41:01 +00:00
David Welch
6e00280f38 Removed from redundant files from the mm directory
Added some preliminary work on the pager
Fixed ntoskrnl/mm/npool.c (This may have been the cause of the
problems reported with loading win32k.sys)
Fixed problems with reporting space used to store physical page
information
Added code to support MmSafeCopy{To/From}User interface work
(untested)
Added Event member of the PHYSICAL_PAGE structure to implement Philip
Susi's suggestion
Reworked section page-in code (not really tested)
Replaced inline string functions with gcc builtins to make debugging easier

svn path=/trunk/; revision=1209
2000-06-25 03:59:17 +00:00
Emanuele Aliberti
a8ed3ed57e Fixed a path problem in the makefile that Phillip reported a few days ago.
Unix paths are handled correctly by DOS and Win32 kernels, but NOT by
command.com and cmd.exe shells. Therefore, when a path is to be handed to
a shell, use \ but when you hand it to any other program, use / instead.

svn path=/trunk/; revision=1208
2000-06-24 09:02:02 +00:00
Eric Kohl
3d2ca25cb4 Added counting physical discs
Fixed a compiler warning

svn path=/trunk/; revision=1207
2000-06-19 22:15:50 +00:00
Eric Kohl
57fc573524 Removed invalid includes
svn path=/trunk/; revision=1206
2000-06-19 16:42:31 +00:00
Eric Kohl
88cf03e85b Use SystemRoot link instead of LdrGetSystemDirectory()
svn path=/trunk/; revision=1205
2000-06-18 17:40:35 +00:00
Eric Kohl
5b2343f9f1 Not used any longer
svn path=/trunk/; revision=1204
2000-06-18 17:39:57 +00:00
Eric Kohl
539b0a1259 Fixed typo and added freetype dir to clean target
svn path=/trunk/; revision=1203
2000-06-18 17:37:57 +00:00
Eric Kohl
9f1e56d438 Implemented IoAttachDeviceByPointer() and IoGetDeviceObjectPointer().
svn path=/trunk/; revision=1202
2000-06-18 15:23:40 +00:00
Eric Kohl
44bdd793c1 Changed list functions to macros (or static inline functions).
svn path=/trunk/; revision=1201
2000-06-18 15:21:53 +00:00
Jason Filby
e3b8762528 Small change and removed unnecessary files
svn path=/trunk/; revision=1200
2000-06-18 12:29:32 +00:00
Jason Filby
943db2de5a Math functions required by win32k
svn path=/trunk/; revision=1199
2000-06-18 12:26:26 +00:00
Jason Filby
dd085499e8 Altered to use new and smaller math.c
svn path=/trunk/; revision=1198
2000-06-18 12:25:42 +00:00
Jason Filby
991cde2c53 Makefile changes for win32k
svn path=/trunk/; revision=1197
2000-06-18 12:25:00 +00:00
Jason Filby
669a590c02 Commented out test code that prevented compilation
svn path=/trunk/; revision=1196
2000-06-18 12:24:22 +00:00
Emanuele Aliberti
b441b2ed03 Base files for a compatible MSVCRT.DLL.
Currently useless.

svn path=/trunk/; revision=1195
2000-06-18 10:57:42 +00:00
David Welch
9d3cd59f17 Corrected build problem
svn path=/trunk/; revision=1194
2000-06-17 23:58:53 +00:00
Phillip Susi
e6bcb9741d Forgot to seek before trying to read back data, and added a check for the data integrity
svn path=/trunk/; revision=1193
2000-06-17 22:04:49 +00:00
Phillip Susi
4e91635e4a Fixed several erronious checks to detect things such as eof on directories too, not just files
svn path=/trunk/; revision=1192
2000-06-17 22:04:08 +00:00
Phillip Susi
274c4db921 Added missing DPRINT
svn path=/trunk/; revision=1191
2000-06-17 22:03:23 +00:00
Phillip Susi
ea455bcfce Fixed bug that fails to update files entries in the root, and added some error checking
svn path=/trunk/; revision=1190
2000-06-17 22:02:09 +00:00
Phillip Susi
8eb69e31d4 Fixed code that checks for a deleted directory entry ( which is really used to find a free entry ) to accept a blank ( never before used ) entry as free
svn path=/trunk/; revision=1189
2000-06-17 22:00:46 +00:00
Jason Filby
a32b900658 temporary float and math support
svn path=/trunk/; revision=1188
2000-06-16 21:13:18 +00:00
Jason Filby
ea1da2be56 missing updates
svn path=/trunk/; revision=1187
2000-06-16 20:58:56 +00:00
Jason Filby
efd7fbb22e missed update
svn path=/trunk/; revision=1186
2000-06-16 20:50:31 +00:00
Jason Filby
a25a8e2e02 GDI Improvements
svn path=/trunk/; revision=1185
2000-06-16 07:36:10 +00:00
Jason Filby
77ef48e705 VGA display driver improvements
svn path=/trunk/; revision=1184
2000-06-16 07:28:20 +00:00
Jason Filby
0b34b1b746 GDI improvements
svn path=/trunk/; revision=1183
2000-06-16 07:25:41 +00:00
Eric Kohl
94c0c4bab2 Improved symbolic links (reparsing).
Implemented SystemRoot and DosDevices links.

svn path=/trunk/; revision=1182
2000-06-15 18:39:25 +00:00
Eric Kohl
fb6c04efbd Implemented IoDeleteSymbolicLink() and NtCreateSymbolicLinkObject().
svn path=/trunk/; revision=1181
2000-06-13 15:51:13 +00:00
Eric Kohl
19e66992de Added cache manager prototypes.
Fixed Io macros.
Fixed and exported more hal functions.

svn path=/trunk/; revision=1180
2000-06-12 14:57:10 +00:00
Emanuele Aliberti
65a13ef159 Return type KIRQL fixed to allow compilation.
svn path=/trunk/; revision=1179
2000-06-09 22:22:32 +00:00
Eric Kohl
3cd7d0dcd3 Moved some functions into the hal.
Replaced some functions by macros.

svn path=/trunk/; revision=1178
2000-06-09 20:07:20 +00:00
Eric Kohl
0aac416a18 Update after server failure.
Fixed STDCALL issues in Ex functions.

svn path=/trunk/; revision=1177
2000-06-07 13:05:09 +00:00
Eric Kohl
d40e55b4e1 Fixed STDCALL issues in Ex functions
svn path=/trunk/; revision=1176
2000-06-05 22:12:06 +00:00
Eric Kohl
64c33bb910 Fixed STDCALL issues in Ke functions
Renamed KiTimerInterrupt() to KeUpdateSystemTime()
Added KeNumberProcessors variable

svn path=/trunk/; revision=1175
2000-06-04 19:51:05 +00:00
Emanuele Aliberti
077ac93718 Type definitions and macros previously in ntoskrnl/nt/port.c moved
in include/internal/port.h .

svn path=/trunk/; revision=1174
2000-06-04 17:32:44 +00:00
Emanuele Aliberti
9464b7005d Made and new ntoskrnl/lpc directory for the LPC subsystem.
Moved ntoskrnl/nt/port.c in ntoskrnl/lpc and split code into
smaller pieces. Little cleanup.

svn path=/trunk/; revision=1173
2000-06-04 17:27:39 +00:00
Eric Kohl
6d5e353126 Fixed clean target (didn't delete all .o files)
svn path=/trunk/; revision=1172
2000-06-04 17:15:47 +00:00
Eric Kohl
ceed9a079e Fixed paths
svn path=/trunk/; revision=1171
2000-06-04 17:14:25 +00:00
Eric Kohl
abc6758e63 Updated Ps* functions
Implemented PsGetVersion()

svn path=/trunk/; revision=1170
2000-06-03 21:36:32 +00:00
Emanuele Aliberti
8123995861 Minor changes.
svn path=/trunk/; revision=1169
2000-06-03 14:47:33 +00:00
Emanuele Aliberti
7fbe844acc Minor changes to kernel32.
svn path=/trunk/; revision=1168
2000-05-30 23:41:06 +00:00
Emanuele Aliberti
f53d713f9a Renamed NTDLL.RtlNtStatusToDosError() RtlNtStatusToDosErrorNoTeb().
Added NTDLL.RtlNtStatusToDosError() that calls RtlNtStatusToDosErrorNoTeb().
Still not understood why RtlNtStatusToDosError() stores in the TEB the given NtStatus.

svn path=/trunk/; revision=1167
2000-05-30 22:25:10 +00:00
Emanuele Aliberti
3918e5583d Added handle type to object name translation in qsi.
svn path=/trunk/; revision=1166
2000-05-28 17:44:53 +00:00
David Welch
279b8390a0 Fix for issue with closing non-existent or already closed handle
svn path=/trunk/; revision=1165
2000-05-27 12:48:59 +00:00
David Welch
06784b2b11 Added etags target
svn path=/trunk/; revision=1164
2000-05-26 14:25:50 +00:00
Phillip Susi
9f7a5635de big work on the console front
svn path=/trunk/; revision=1163
2000-05-26 06:06:42 +00:00
Phillip Susi
97f4345422 fixed color info
svn path=/trunk/; revision=1162
2000-05-26 06:06:05 +00:00
Phillip Susi
232a66904f big work on the console front
svn path=/trunk/; revision=1161
2000-05-26 05:43:33 +00:00
Phillip Susi
1410c2b0a4 a few fixes to the shell
svn path=/trunk/; revision=1160
2000-05-26 05:38:42 +00:00
Eric Kohl
dd76e08c86 Implemented:
- dbg functions
 - RtlFreeUserThreadStack()
 - rtl nls functions
 - rtl process heaps functions
Improved .def and .edf files

svn path=/trunk/; revision=1159
2000-05-25 15:55:35 +00:00
David Welch
3e519811c4 More bug fixes.
svn path=/trunk/; revision=1158
2000-05-24 22:29:38 +00:00
David Welch
1001fb267c Updated clean targets in various places
svn path=/trunk/; revision=1157
2000-05-14 13:10:01 +00:00
Emanuele Aliberti
6bd8ebc9e2 Added ifdef to skip a piece of code commited by mistake (I am still working on it, sorry!).
svn path=/trunk/; revision=1156
2000-05-14 09:34:14 +00:00
Emanuele Aliberti
0726ddaa11 Fixed bug reported by Michael Rich in kernel32 compilation.
svn path=/trunk/; revision=1155
2000-05-14 09:31:05 +00:00
Eric Kohl
f5c8f9fdab Added FLOPPY and DIST targets
svn path=/trunk/; revision=1154
2000-05-13 17:34:15 +00:00
Emanuele Aliberti
d7b4fba550 IoSetThreadHardErrorMode().
svn path=/trunk/; revision=1153
2000-05-13 14:56:47 +00:00
David Welch
598c0f3b1f Fixed typo.
svn path=/trunk/; revision=1152
2000-05-13 14:21:44 +00:00
David Welch
d173c588c7 Some fixes.
Began work on implementing named pipes.

svn path=/trunk/; revision=1151
2000-05-13 13:51:08 +00:00
Eric Kohl
1d034b8c4e Fixed typos in IoGetStackLimits()
svn path=/trunk/; revision=1150
2000-05-13 10:39:23 +00:00
Eric Kohl
3086566400 Fixed IoGetStackLimits()
svn path=/trunk/; revision=1149
2000-05-13 01:48:59 +00:00
Eric Kohl
17e86aad5d Implemented RtlCustomCPxx functions
svn path=/trunk/; revision=1148
2000-05-13 01:48:01 +00:00
Eric Kohl
bb665e58b7 Fixed some more ntoskrnl exports
svn path=/trunk/; revision=1147
2000-05-09 21:31:01 +00:00
Eric Kohl
5c644fe59b Fixed or added exported object type variables
svn path=/trunk/; revision=1146
2000-05-09 16:16:07 +00:00
Eric Kohl
a3160d79cd Implemented IOCTL to draw screen buffer
Changed screen buffer from array of bytes to array of CHAR_INFO

svn path=/trunk/; revision=1145
2000-05-08 23:27:52 +00:00
Eric Kohl
34010a1fcb Fixed ntoskrnl makefile
svn path=/trunk/; revision=1144
2000-05-07 23:04:43 +00:00
Emanuele Aliberti
78a6c60acd Some STDCALL/FASTCALL added in Ex code.
NTOSKRNL's makefile revised with redundant passes removed.

svn path=/trunk/; revision=1142
2000-05-01 14:15:03 +00:00
Emanuele Aliberti
fdf480d262 objdir made compilable.
svn path=/trunk/; revision=1141
2000-05-01 13:53:43 +00:00
Phillip Susi
32ea00da50 NtTerminateProcess did not terminate the current thread if it was a member of the process being terminated
svn path=/trunk/; revision=1140
2000-04-28 17:29:42 +00:00
Emanuele Aliberti
537f82fd1a A fix in the SYSTEM_HANDLE_INFORMATION structure.
svn path=/trunk/; revision=1139
2000-04-27 23:39:49 +00:00
Emanuele Aliberti
b13b811b5f I forgot to update the code that uses SYSTEM_TIME_INFORMATION.
svn path=/trunk/; revision=1138
2000-04-26 06:56:12 +00:00
Emanuele Aliberti
b3ea65f0e4 Partially implemented (handlers only)
NTOSKRNL.NtQuerySystemInformation() and
NTOSKRNL.NtSetSystemInformation().

---

Partially implemented (kernel32/process/proc.c)

KERNEL32.GetPriorityClass(),
KERNEL32.SetPriorityClass() and
NTDLL.CsrSetPriorityClass() (stub only).

Renamed (in include/csrss/csrss.h) priority
class macros:

#define CSR_PRIORITY_CLASS_NORMAL	(0x10)
#define CSR_PRIORITY_CLASS_IDLE		(0x20)
#define CSR_PRIORITY_CLASS_HIGH		(0x40)
#define CSR_PRIORITY_CLASS_REALTIME	(0x80)

---

Implemented (kernel32/misc/error.c)

#include <kernel32/error.h>

DWORD
STDCALL
SetLastErrorByStatus (
	NTSTATUS	Status
	);

to replace SetLastError(RtlNtStatusToDosError(Status))
in KERNEL32, and fixed

KERNEL32.SetLastError()
KERNEL32.GetLastError()

to use the field in NT_TEB (LastError is per thread
not per process).

---

Implemented (lib/kernel32/sysinfo.c) GetSystemInfo()
(to be completed).

---

Fixed rosapps/sysutils/makefile to use ROS import
libraries.

---

Added QSI to the system utilities set. The target is
writing a tool that can be used to query as much system
information as possible from user mode (to be finished
and tested only under nt4sp4/x86; it was NOT tested
under ROS: it crashes immediately and needs
NtQuerySystemInformation implemented!).

svn path=/trunk/; revision=1137
2000-04-25 23:22:57 +00:00
Phillip Susi
0c4a5f1e06 NtDeviceIoControllFile() was not specifying IoFileObjectType as the object type when referencing the file handle
svn path=/trunk/; revision=1136
2000-04-24 04:17:55 +00:00
Phillip Susi
5fea099598 Do not set std handles when AllocConsole() fails, I swear I fixed this before...
svn path=/trunk/; revision=1135
2000-04-24 01:52:24 +00:00
Phillip Susi
23b59ecccb Disabled debug prints
svn path=/trunk/; revision=1134
2000-04-23 18:01:21 +00:00
Phillip Susi
cbf17cd791 Disabled debug prints
svn path=/trunk/; revision=1133
2000-04-23 17:55:21 +00:00
Phillip Susi
0bb8878fc1 Dumped anoying debug print
svn path=/trunk/; revision=1132
2000-04-23 17:52:44 +00:00
Phillip Susi
0d569ee50b Added a event handle to reply struct
svn path=/trunk/; revision=1131
2000-04-23 17:51:35 +00:00
Phillip Susi
de82241cb1 Added declaration for InterlockedCompareExchange
svn path=/trunk/; revision=1130
2000-04-23 17:50:47 +00:00
Phillip Susi
7928fc621a Switched to CREATE_NEW_CONSOLE from DETACHED_PROCESS
svn path=/trunk/; revision=1129
2000-04-23 17:49:07 +00:00
Phillip Susi
cdd3a57119 Whole new win32 console support, with multiple virtual consoles and scrollback support
svn path=/trunk/; revision=1128
2000-04-23 17:44:53 +00:00
Phillip Susi
4f6c860da3 Was reporting geometry backwards, and needed to add a raw output mode
svn path=/trunk/; revision=1127
2000-04-23 17:42:57 +00:00
Phillip Susi
6ac6c50282 Patched up console code a bit
svn path=/trunk/; revision=1126
2000-04-23 17:41:40 +00:00
Phillip Susi
66780d1d02 CreateProcess was eating the flags, had to pass them on
svn path=/trunk/; revision=1125
2000-04-23 17:40:52 +00:00
Phillip Susi
ee3307e21d Fixed up Critical Section code
svn path=/trunk/; revision=1124
2000-04-20 05:29:27 +00:00
Phillip Susi
b01b3e0e97 Replaced a -- with an InterlockedDecrement
svn path=/trunk/; revision=1123
2000-04-17 03:09:04 +00:00
Eric Kohl
8b7920f796 Added some rtl functions
svn path=/trunk/; revision=1122
2000-04-15 23:14:32 +00:00
Eric Kohl
86a1100180 Implemented debugger functions
svn path=/trunk/; revision=1121
2000-04-14 01:50:38 +00:00
Boudewijn Dekker
4542601468 applied fixes to make a user32.dll
code is based on wine.

svn path=/trunk/; revision=1120
2000-04-13 20:59:11 +00:00
Boudewijn Dekker
99fb26fc8b .
svn path=/trunk/; revision=1119
2000-04-12 22:41:51 +00:00
Eric Kohl
7910a00791 Added kernel_parameters to boot_param
svn path=/trunk/; revision=1118
2000-04-12 17:34:27 +00:00
Jason Filby
93d95d8063 Fixed EngFreeMem def
svn path=/trunk/; revision=1117
2000-04-11 20:56:11 +00:00
Jason Filby
04a84d5ab8 Implemented DrvCopybits
Minor fixes

svn path=/trunk/; revision=1116
2000-04-10 20:17:34 +00:00
Eric Kohl
5b7a3113d5 Added system and isa bus handler
svn path=/trunk/; revision=1115
2000-04-09 15:58:13 +00:00
Eric Kohl
db593a0fb7 Fixed compiler warnings
svn path=/trunk/; revision=1114
2000-04-08 23:35:27 +00:00
Eric Kohl
51db0e6fed Moved KeStallExecutionProcessor() into HAL.
Added some security functions.

svn path=/trunk/; revision=1113
2000-04-08 19:10:50 +00:00
Eric Kohl
55c5bbf0be Fixed bug in COPY command
svn path=/trunk/; revision=1112
2000-04-08 14:50:47 +00:00
Phillip Susi
4be5d21243 Correted path to be system32 instead of system
svn path=/trunk/; revision=1111
2000-04-07 22:59:38 +00:00
Phillip Susi
fe9a733457 Removed LoadLibraryW from kernel32.edf, as it seems to not have an implementation and so would not compile. Wonder where the implementation whent?
svn path=/trunk/; revision=1110
2000-04-07 21:45:32 +00:00
Eric Kohl
654c8e7d00 Added more time functions
svn path=/trunk/; revision=1109
2000-04-07 12:45:22 +00:00
David Welch
53e0232c6c Began seperation of machine-dependant/independant sections of memory
manager
Did some more work on the dce/rpc implementation
Corrected loadros so the kernel can no longer write to read-only areas
of memory
Corrected alignment and size of initial stack

svn path=/trunk/; revision=1108
2000-04-07 02:24:03 +00:00
Eric Kohl
e3ce7008d7 Moved debug functions
svn path=/trunk/; revision=1107
2000-04-06 17:23:52 +00:00
Eric Kohl
9d90e8c107 Added some more security functions
svn path=/trunk/; revision=1106
2000-04-06 02:29:57 +00:00
Eric Kohl
48c46844eb Added hal functions
Fixed se functions

svn path=/trunk/; revision=1105
2000-04-05 15:52:45 +00:00
Eric Kohl
05bf1339f9 Added ace, acl and sid functions
svn path=/trunk/; revision=1104
2000-04-05 01:41:01 +00:00
David Welch
d54e68673b Correct LPC implementation
Removed thread leak in csrss
Added notification of port closing

svn path=/trunk/; revision=1103
2000-04-03 21:54:42 +00:00
Jason Filby
eb1f2f9bd1 Implemented DrvPaint and DrvBitBlt
Added tests for new routines
Minor fixes

svn path=/trunk/; revision=1102
2000-04-03 19:55:33 +00:00
Emanuele Aliberti
3b0f32720d Mm subsystem exports table complete.
svn path=/trunk/; revision=1101
2000-04-02 13:32:43 +00:00
Jason Filby
fccf1c26a7 All video related files now loaded by win32k
svn path=/trunk/; revision=1100
2000-04-02 13:09:50 +00:00
Jason Filby
b8d0ffaf38 Use NonPagedPool in EngAllocMem for now
svn path=/trunk/; revision=1099
2000-04-02 12:44:57 +00:00
Emanuele Aliberti
49f35db9e8 Version info for Named Pipe fs driver.
svn path=/trunk/; revision=1098
2000-04-01 14:20:21 +00:00
Emanuele Aliberti
1fc2971156 Version info for Minix driver.
svn path=/trunk/; revision=1097
2000-04-01 14:19:48 +00:00
Emanuele Aliberti
cdbe762497 Version info for ext2fs driver.
svn path=/trunk/; revision=1096
2000-04-01 14:19:07 +00:00
Jason Filby
248fe1f79d Implemented basic VGA routines
Implemented Eng\DrvLineTo

svn path=/trunk/; revision=1095
2000-04-01 12:31:29 +00:00
David Welch
9d6388ae05 Corrected mutex implementation
Added proper locking to the memory managment

svn path=/trunk/; revision=1093
2000-03-29 13:11:55 +00:00
Phillip Susi
3bd2a11130 Fixed typeo preventing compilation
svn path=/trunk/; revision=1092
2000-03-29 03:15:11 +00:00
David Welch
1be4f77bcb Corrected the handle generation algorithm in the kernel and csrss
Did some work on services.exe
Did some work on the service functions in advapi32
Made some progress in implementing npfs
Implemented a basic grammar for midl

svn path=/trunk/; revision=1091
2000-03-26 22:00:10 +00:00
Emanuele Aliberti
758ba695e1 Io subsystem clean-up. Every exported symbols is not STDCALL.
NtCreateFile renamed IoCreateFile and Nt{Create,Open}File call IoCreateFile.
Io data items added (to be fixed).

svn path=/trunk/; revision=1090
2000-03-26 19:38:32 +00:00
David Welch
79eff41abb Connected standard input/output to the console
Removed from superfluous assertions
Changed the ide read and write commands to work with bochs
Corrected bug in the csrss server

svn path=/trunk/; revision=1089
2000-03-24 22:25:39 +00:00
David Welch
0bd4cf0cbf Updated the minix driver
Moved console handling into csrss
Gave each process a name for debugging purposes

svn path=/trunk/; revision=1088
2000-03-22 18:36:00 +00:00
Eric Kohl
a1c9a520cf Modified kernel initialization sequence
Enabled bus handlers

svn path=/trunk/; revision=1087
2000-03-20 18:00:55 +00:00
Eric Kohl
dc3956d8ac Added some more status codes
svn path=/trunk/; revision=1086
2000-03-19 15:57:39 +00:00
Eric Kohl
802301d861 Implemented bus handler functions (not working yet)
Several STDCALL fixes

svn path=/trunk/; revision=1085
2000-03-19 13:35:38 +00:00
Eric Kohl
9887130ab7 Implemented bus handler functions (not working yet)
svn path=/trunk/; revision=1084
2000-03-19 13:33:39 +00:00
Eric Kohl
d4fc70afdc Implemented VideoPortDebugPrint()
svn path=/trunk/; revision=1083
2000-03-19 13:31:37 +00:00
Eric Kohl
bd02ee978f Added SYSTEM_TIME_INFORMATION
svn path=/trunk/; revision=1082
2000-03-19 13:30:30 +00:00
Emanuele Aliberti
bc30557a61 Some clean-up in ntoskrnl/mm. MmAllocateSection prototype moved in
internal/mm.h.

svn path=/trunk/; revision=1081
2000-03-19 09:14:52 +00:00
Eric Kohl
56132bfb44 Fixed path bugs
svn path=/trunk/; revision=1080
2000-03-18 19:55:53 +00:00
Jason Filby
c4ecfc894c Added forgotten .h files
svn path=/trunk/; revision=1079
2000-03-18 18:39:44 +00:00
Emanuele Aliberti
d6f6aad9e7 qsort in NTOSKRNL and some STDCALL declarations.
svn path=/trunk/; revision=1078
2000-03-18 15:12:19 +00:00
Eric Kohl
5e7a2202d1 Oops...
svn path=/trunk/; revision=1077
2000-03-18 14:37:43 +00:00
Eric Kohl
2c6fae9c20 Added image functions
Include pe.h in windows.h to avoid conflicts

svn path=/trunk/; revision=1076
2000-03-18 14:02:01 +00:00
Eric Kohl
1042f1ae27 Added security descriptor functions
svn path=/trunk/; revision=1075
2000-03-18 13:48:24 +00:00
Eric Kohl
753cb16c91 Fixed compiler warnings
svn path=/trunk/; revision=1074
2000-03-18 02:39:39 +00:00
Jason Filby
5d99a8740a last mod...
svn path=/trunk/; revision=1073
2000-03-17 22:19:44 +00:00
Jason Filby
1ba7343b1c Additional modifications
svn path=/trunk/; revision=1072
2000-03-17 22:14:31 +00:00
Jason Filby
2adbc636a8 Additional modifications
svn path=/trunk/; revision=1071
2000-03-17 21:56:43 +00:00
Jason Filby
c404283ff4 Additional modifications
svn path=/trunk/; revision=1070
2000-03-17 21:49:32 +00:00
Eric Kohl
d9d3272dc6 Fixed compiler warning
svn path=/trunk/; revision=1069
2000-03-17 21:46:41 +00:00
Jason Filby
690a781452 Added eng files
svn path=/trunk/; revision=1068
2000-03-17 21:44:02 +00:00
Jason Filby
e1d6086025 Miniport driver now loaded from win32k
Display and miniport drivers can now talk to each other
Sets the VGA video mode

svn path=/trunk/; revision=1067
2000-03-17 21:02:59 +00:00
Eric Kohl
40ee84e997 Oops! Typos...
svn path=/trunk/; revision=1066
2000-03-16 21:50:56 +00:00
Eric Kohl
ef5f880bac Fixed ANSI <--> Unicode conversions
svn path=/trunk/; revision=1065
2000-03-16 21:50:11 +00:00
David Welch
6088637c5e Oops.
svn path=/trunk/; revision=1064
2000-03-16 20:50:48 +00:00
Eric Kohl
0344745e30 Fixed a confusing error message
svn path=/trunk/; revision=1063
2000-03-16 20:02:44 +00:00
David Welch
337952bfb9 Implemented setting the fs register to point to the TEB
svn path=/trunk/; revision=1062
2000-03-16 18:44:57 +00:00
Eric Kohl
15c9809105 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1061
2000-03-16 01:14:58 +00:00
Eric Kohl
b820741431 Fixed WIN32_FIND_DATA[A/W] structs and resulting bugs
svn path=/trunk/; revision=1060
2000-03-15 23:13:29 +00:00
Eric Kohl
67200bd4f9 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1059
2000-03-15 18:30:30 +00:00
Eric Kohl
b2eb99d9f7 Obsolete!
svn path=/trunk/; revision=1058
2000-03-15 18:29:50 +00:00
Eric Kohl
9658579d48 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1057
2000-03-15 12:25:47 +00:00
Eric Kohl
1c5d2b7204 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1056
2000-03-14 23:09:23 +00:00
David Welch
fbfce3bc03 Updated install script
svn path=/trunk/; revision=1055
2000-03-13 23:16:46 +00:00
Eric Kohl
045a3dfdd2 Unused characters in long file name buffers (directory slots) must be filled with 0xFFFF.
svn path=/trunk/; revision=1054
2000-03-13 17:58:06 +00:00
Eric Kohl
2ef0c4177b Fixed a bug in rtlGetFullPathName_U()
svn path=/trunk/; revision=1053
2000-03-13 17:54:23 +00:00
Eric Kohl
6865b783cc Fixed file creation date and time
Implemented synchronization of all FATs (FAT16 only)
Fixed bug in directory creation

svn path=/trunk/; revision=1052
2000-03-12 23:28:59 +00:00
Eric Kohl
15094179f1 Add MD command
svn path=/trunk/; revision=1051
2000-03-12 23:24:51 +00:00
Eric Kohl
d9a0a586a8 Updated INTERFACE_TYPE
svn path=/trunk/; revision=1050
2000-03-12 01:22:37 +00:00
Eric Kohl
afa23cb264 Added some security functions
svn path=/trunk/; revision=1049
2000-03-12 01:18:18 +00:00
Eric Kohl
9488b3031c Fixed lots of status values
svn path=/trunk/; revision=1048
2000-03-12 01:15:09 +00:00
Emanuele Aliberti
a665da497e NTOKRNL.FsRtl notification and cache tunnels stubs added.
Possibly fixed the win32k.sys import error reported by Jason.

svn path=/trunk/; revision=1047
2000-03-11 00:51:36 +00:00
Emanuele Aliberti
f1d9e95a84 NTOSKRNL.FsRtl opportunistic lock stubs added.
svn path=/trunk/; revision=1046
2000-03-10 22:09:17 +00:00
Eric Kohl
91d68b2e7b Fixed compiler warning
svn path=/trunk/; revision=1045
2000-03-10 13:46:27 +00:00
Jason Filby
200afa376d Add VGA display driver
svn path=/trunk/; revision=1044
2000-03-10 12:45:45 +00:00
Jason Filby
836456a97d Small fix
svn path=/trunk/; revision=1043
2000-03-10 12:39:53 +00:00
Jason Filby
10f82cf988 Implemented DRIVER_BuildDDIFunctions
svn path=/trunk/; revision=1042
2000-03-09 21:04:10 +00:00
Eric Kohl
bf4806c502 Added time related functions
svn path=/trunk/; revision=1041
2000-03-09 16:01:25 +00:00
Eric Kohl
89871935c1 Implemented bitmap functions
svn path=/trunk/; revision=1040
2000-03-09 00:14:10 +00:00
Emanuele Aliberti
c3f375c672 win32k.sys exports script.
svn path=/trunk/; revision=1039
2000-03-08 22:39:04 +00:00
Emanuele Aliberti
267e86b00e Version info added to Eric's edit port.
svn path=/trunk/; revision=1038
2000-03-08 22:38:01 +00:00
Emanuele Aliberti
b129b2caea Some minor fixes.
svn path=/trunk/; revision=1037
2000-03-08 22:37:04 +00:00
Jason Filby
3da0b018e5 Moved display driver and got win32k loading it's entry point.
svn path=/trunk/; revision=1036
2000-03-08 21:23:14 +00:00
Eric Kohl
e2eb8c1697 Added more bitmap functions
Fixed some STDCALL issues

svn path=/trunk/; revision=1035
2000-03-08 01:55:34 +00:00
Eric Kohl
a12836346f Improved keyboard handling code
Fixed problems with differnet console sizes
Started function renaming

svn path=/trunk/; revision=1034
2000-03-08 01:49:37 +00:00
Emanuele Aliberti
1eed2a945a Added .Type and .Size attributes to the IRP object: so far nothing
seems broken.
Added __stdcall to some Io subsystem functions.
Attempt to implement IoIsOperationSynchronous().

svn path=/trunk/; revision=1033
2000-03-06 01:02:30 +00:00
Eric Kohl
79d0e047eb Added D-Flat/32 library
svn path=/trunk/; revision=1032
2000-03-05 19:58:08 +00:00
Emanuele Aliberti
2634e901be NTOSKRNL.FSRtl MDL stubs added.
svn path=/trunk/; revision=1031
2000-03-05 19:17:43 +00:00
Eric Kohl
9eac680002 Implemented kernel parameter line
Some kernel debugger improvements

svn path=/trunk/; revision=1030
2000-03-04 22:03:32 +00:00
Emanuele Aliberti
51df161b78 *** empty log message ***
svn path=/trunk/; revision=1029
2000-03-04 20:45:34 +00:00
Eric Kohl
2b0d467176 Moved spinlock.c and head.s from 'hal/x86' to 'ke'.
This is needed for the hal separation.

svn path=/trunk/; revision=1028
2000-03-04 13:44:59 +00:00
Eric Kohl
92857818cb Added bitmaps
Added some Rtl string functions
Various changes

svn path=/trunk/; revision=1026
2000-03-03 00:48:50 +00:00
Eric Kohl
fd304f0ef5 Fixed compiler warnings
svn path=/trunk/; revision=1025
2000-03-03 00:34:54 +00:00
Emanuele Aliberti
ef5b0066c7 *** empty log message ***
svn path=/trunk/; revision=1024
2000-03-01 23:41:35 +00:00
Emanuele Aliberti
395fb3c86f NTOSKRNL.FsRtlAllocate functions.
svn path=/trunk/; revision=1023
2000-03-01 22:52:28 +00:00
Eric Kohl
76f55a8a93 Fixed mp driver initialization bug and some other ones
svn path=/trunk/; revision=1022
2000-03-01 03:25:11 +00:00
Emanuele Aliberti
d53eeb0cee Added help command to shell.exe.
Minor changes.

svn path=/trunk/; revision=1021
2000-02-29 23:57:47 +00:00
Eric Kohl
c37b4fd7f1 Fixed some unicode initialization bugs
svn path=/trunk/; revision=1020
2000-02-27 18:01:44 +00:00
Eric Kohl
c0ad0d9b02 Added 'Path' and 'windir' system environment variables
svn path=/trunk/; revision=1019
2000-02-27 15:47:17 +00:00
Eric Kohl
853d9d4ae2 Fixed bugs in RtlExpandEnvironmentStrings_U() and RtlSetEnvironmentVariable()
svn path=/trunk/; revision=1018
2000-02-27 15:45:57 +00:00
Eric Kohl
6eb7010078 Fixed bugs in '%wZ' string output
svn path=/trunk/; revision=1017
2000-02-27 15:43:58 +00:00
Jason Filby
48db9468eb Minor fixes
svn path=/trunk/; revision=1016
2000-02-27 11:04:36 +00:00
Eric Kohl
fa81b6d260 Improved csrss (doesn't crash any more)
Improved kernel debugger code
Various minor improvements

svn path=/trunk/; revision=1015
2000-02-27 02:12:07 +00:00
Eric Kohl
012968e3dc Removed obsolete header include
svn path=/trunk/; revision=1014
2000-02-26 23:20:50 +00:00
Emanuele Aliberti
debfec7180 Some __stdcall declarations in ntoskrnl/hal.
A new include/ddk/kdfuncs.h header.

svn path=/trunk/; revision=1013
2000-02-26 22:41:35 +00:00
Emanuele Aliberti
4b80eae220 File locking NTOSKRNL.FsRtl stubs.
svn path=/trunk/; revision=1012
2000-02-26 16:22:27 +00:00
Boudewijn Dekker
ad382b39b3 changed struct FILE_OBJECT* to struct _FILE_OBJECT* at line 154
svn path=/trunk/; revision=1011
2000-02-26 09:58:06 +00:00
Eric Kohl
89875c3a44 Improved RtlCreateUserProcess()
svn path=/trunk/; revision=1010
2000-02-25 23:58:57 +00:00
Emanuele Aliberti
8f1ea8477c FsRtl stubs for DBCS names handling.
svn path=/trunk/; revision=1009
2000-02-25 23:27:51 +00:00
Eric Kohl
26253d8e9b Fixed PEB related bugs
svn path=/trunk/; revision=1008
2000-02-25 00:35:06 +00:00
Eric Kohl
0723b7c345 Removed useless debug messages and header files
svn path=/trunk/; revision=1007
2000-02-25 00:34:12 +00:00
Emanuele Aliberti
ac8c87276f Minor changes.
svn path=/trunk/; revision=1006
2000-02-24 23:38:26 +00:00
Emanuele Aliberti
00a4935163 *** empty log message ***
svn path=/trunk/; revision=1005
2000-02-24 23:31:27 +00:00
Emanuele Aliberti
9dc1aa60cb Changes for FsRtl added functions.
svn path=/trunk/; revision=1004
2000-02-24 23:27:52 +00:00
Emanuele Aliberti
9f87d15938 More stubs for NTOSKRNL.FsRtl: file name handling.
svn path=/trunk/; revision=1003
2000-02-24 23:25:16 +00:00
Eric Kohl
d7de328d0c Replaced direct io space mapping by call to MmMapIoSpace()
svn path=/trunk/; revision=1002
2000-02-24 13:16:40 +00:00
Eric Kohl
6165746875 Added gdi test program gditest.exe
svn path=/trunk/; revision=1001
2000-02-22 20:58:26 +00:00
Eric Kohl
7b02da36f7 Added GdiDllInitialize()
svn path=/trunk/; revision=1000
2000-02-22 20:55:57 +00:00
Eric Kohl
f8fe1ea0b1 Added W32kInitialize service (orig. name NtGdiInit)
svn path=/trunk/; revision=999
2000-02-22 20:53:11 +00:00
Eric Kohl
213e8b569c Fixed minor bugs interrupt_service2e()
svn path=/trunk/; revision=998
2000-02-22 20:50:07 +00:00
Rex Jolliff
5db4e55264 added support for shadow syscall table
svn path=/trunk/; revision=997
2000-02-22 07:27:30 +00:00
Eric Kohl
7cb2e823a0 Fixed minor bugs. 'ddk/ntddk.h' MUST ALWAYS be included FIST!!!!!
svn path=/trunk/; revision=996
2000-02-22 02:02:08 +00:00
Eric Kohl
d1341007cf Changed RtlCopyMemory() from function to macro
Improved system service table code

svn path=/trunk/; revision=995
2000-02-21 22:44:37 +00:00
Emanuele Aliberti
151f2f646e WIN32K Kernel API main include file (replaces win32k/win32k.h).
svn path=/trunk/; revision=994
2000-02-21 00:50:17 +00:00
Emanuele Aliberti
7d3fded0ba Added little prog. that builds the WIN32K.SYS service table
and the stubs to be used in GDI32.DLL.
Converted to __stdcall every W32k... call in WIN32K.SYS.
Fixed the entry point in GDI32.DLL.
WARNING: the thing compiles, but Jason reports it does not work as is
(he tested a preliminary stub piece of code).
Perhaps changing it (as Phillip proposes) or fixing it to make WIN32K.SYS
work the NT way is required (Hernan, are you there: I did not understand
well how the additional service tables work). Feel free to change it.

svn path=/trunk/; revision=993
2000-02-20 22:52:50 +00:00
Eric Kohl
b9bb1744aa Fixed bugs in process parameter and environment code
svn path=/trunk/; revision=992
2000-02-19 19:37:13 +00:00
Eric Kohl
e632116bee Fixed buggy RtlCompareString() and RtlCompareUnicodeString()
svn path=/trunk/; revision=991
2000-02-19 19:31:41 +00:00
Eric Kohl
f28a023c99 Fixed a bug - memmove() couldn't handle overlapping buffers
svn path=/trunk/; revision=990
2000-02-19 17:18:34 +00:00
Eric Kohl
b0780ae5d6 Fixed environment implementation
Fixed current directory implementation

svn path=/trunk/; revision=989
2000-02-18 01:01:06 +00:00
Eric Kohl
6bea08705e Fixed minor bugs and removed fixed start directory
svn path=/trunk/; revision=988
2000-02-18 00:53:11 +00:00
Eric Kohl
6708f0b87e Fixed environment implementation
Fixed current directory implementation

svn path=/trunk/; revision=987
2000-02-18 00:51:03 +00:00
Emanuele Aliberti
f0175145d6 Untested raw implementation of MultiByteToWideChar().
svn path=/trunk/; revision=986
2000-02-14 22:10:46 +00:00
David Welch
3cd2fc22d7 Fixed compilation bug
Made a start on some documentation in info format

svn path=/trunk/; revision=985
2000-02-14 14:13:34 +00:00
Boudewijn Dekker
b49921cb96 impl. NtGetTickCount
svn path=/trunk/; revision=984
2000-02-14 10:27:40 +00:00
David Welch
c110a36a78 Moved user-process loading into ZwCreateProcess
svn path=/trunk/; revision=983
2000-02-13 16:05:19 +00:00
Eric Kohl
ca7bca8f84 Fixed a bug in NtQueryVirtualMemory()
svn path=/trunk/; revision=982
2000-02-06 15:52:04 +00:00
Eric Kohl
5f71c29e2c Fixed _wcsnicmp()
svn path=/trunk/; revision=981
2000-02-05 23:46:14 +00:00
Eric Kohl
326a3cd58b Added some string functions
Added security descriptor functions
Implemented environment functions
Implemented current directory functions

svn path=/trunk/; revision=980
2000-02-05 16:08:49 +00:00
Eric Kohl
18c0c85dd8 Added CHECKPOINT macro
svn path=/trunk/; revision=978
2000-02-03 22:45:11 +00:00
Phillip Susi
480136bdf4 Fixed loader bugs, still needs reworked to create multiple sections
svn path=/trunk/; revision=977
2000-02-03 21:34:14 +00:00
Paolo Pantaleo
16ef6ef2af history command added and some minor changes to history interface
svn path=/trunk/; revision=976
2000-02-01 18:29:11 +00:00
Eric Kohl
33258c166f Fixed a stdcall bug
svn path=/trunk/; revision=975
2000-01-31 20:26:15 +00:00
Eric Kohl
f09ef9894a Fixed an invalid printf() format type
svn path=/trunk/; revision=974
2000-01-31 20:25:43 +00:00
Eric Kohl
19e258120e Fixed compiler warnings
svn path=/trunk/; revision=973
2000-01-31 20:24:41 +00:00
Eric Kohl
7c3e6e80c1 Fixed METAFILEPICT bug
svn path=/trunk/; revision=972
2000-01-31 20:23:54 +00:00
Hernan Ochoa
5dc3ee0414 Added $Id Tag for commit info
svn path=/trunk/; revision=971
2000-01-30 20:55:51 +00:00
Hernan Ochoa
90579ae67f Added $Id Tag for commit info
svn path=/trunk/; revision=970
2000-01-30 17:02:44 +00:00
Phillip Susi
5dff1d9789 ignore errors deleting files for make clean
svn path=/trunk/; revision=969
2000-01-29 20:32:12 +00:00
Hernan Ochoa
337692832a Added parameters checking, help, and some information about
when the program was compiled.

svn path=/trunk/; revision=968
2000-01-29 19:20:26 +00:00
David Welch
d633bd8168 Changed the loader so ZwCreateProcess now maps ntdll into memory
svn path=/trunk/; revision=967
2000-01-27 08:56:50 +00:00
Jason Filby
980d94c760 *** empty log message ***
svn path=/trunk/; revision=966
2000-01-26 21:10:16 +00:00
David Welch
d24a48cd94 More improvements to LPC code
Updated TEB structure
Changed selectors value to be closer to nt
Some bugfixes

svn path=/trunk/; revision=965
2000-01-26 10:07:30 +00:00
Phillip Susi
52404fd1c8 Fixed bug in IO manager that caused crash when trying to open a file on a non existant device
Fixed memory leaks in object manager

svn path=/trunk/; revision=964
2000-01-25 06:31:25 +00:00
Emanuele Aliberti
3a18299c0f Coders directory updated.
svn path=/trunk/; revision=963
2000-01-23 22:52:57 +00:00
Phillip Susi
c41488b99a Fixed syntax error
svn path=/trunk/; revision=962
2000-01-23 19:36:41 +00:00
Hernan Ochoa
3cd7e191a4 now NTOSKRNL exports KeServiceDescriptorTable just like
NT's NTOSKRNL does.

svn path=/trunk/; revision=961
2000-01-23 15:21:25 +00:00
Hernan Ochoa
185d2be0f1 added definitions for SSDT, SSPT, KeServiceDescriptorTable,
KeServiceDescriptorTableShadow, KeAddSystemService(),
KE_SERVIDE_DESCRIPTOR_TABLE_ENTRY.

svn path=/trunk/; revision=960
2000-01-23 15:19:05 +00:00
Hernan Ochoa
55bb357489 changed syscall tables. now it mimics NT style.
it has a SSDT a SSPT, a KeServiceDescriptorTable and a
KeServiceDescriptorTableShadow. modified the code
inside the int2e_handler() to use the new syscall tables.

svn path=/trunk/; revision=959
2000-01-23 15:17:06 +00:00
Hernan Ochoa
65a742ceaa changed syscall tables. now it mimics NT style.
it has a SSDT a SSPT, a KeServiceDescriptorTable and a
KeServiceDescriptorTableShadow. genntdll now also generates
some useful defines about min syscall number, max
syscall number, and number of syscalls.

svn path=/trunk/; revision=958
2000-01-23 15:14:42 +00:00
Phillip Susi
1220167730 New Read/Write File IO test utility
svn path=/trunk/; revision=957
2000-01-23 09:04:30 +00:00
Phillip Susi
2001008199 Fixed OutputDebugString() to use the new int 2D debug service
Moved include of rules.mak up to top so it picks up the HOST variable from there

svn path=/trunk/; revision=956
2000-01-23 08:16:20 +00:00
Emanuele Aliberti
74131ebded Added error reporting to lpcsrv and lpcclt.
svn path=/trunk/; revision=955
2000-01-22 22:22:48 +00:00
Emanuele Aliberti
5415f6f333 Fixed a stupid bug in time conversion code that generated abnormally high
build numbers.

svn path=/trunk/; revision=954
2000-01-22 14:25:48 +00:00
Phillip Susi
0ab77c8e74 Fixed a broken DPRINT
svn path=/trunk/; revision=953
2000-01-22 00:04:56 +00:00
Phillip Susi
51445f2db1 Made symbolic links permanent the proper way, with the perm flag, rather than leaking a refcount
svn path=/trunk/; revision=952
2000-01-21 23:59:53 +00:00
Phillip Susi
4d393f112a darnit... another debug print.. someone kick me
svn path=/trunk/; revision=951
2000-01-21 23:27:47 +00:00
Phillip Susi
a706ca2b64 Ooops... forgot some debug prints ( embarassed )
svn path=/trunk/; revision=950
2000-01-21 23:17:47 +00:00
Phillip Susi
e4008de214 Fixed makefile to include rules.mak first, so it gets the settings in there right
Fixed path parsing for \\.\

svn path=/trunk/; revision=949
2000-01-21 23:06:26 +00:00
Eric Kohl
2a24d175bf Replaced calls to aprintf() or dprintf() by DPRINT()
Removed old debugging code

svn path=/trunk/; revision=948
2000-01-20 22:57:01 +00:00
Eric Kohl
b6c944afcc Added missing format types to vfprintf()
Implemented vfwprintf()

svn path=/trunk/; revision=947
2000-01-20 22:49:12 +00:00
Emanuele Aliberti
90617da53d Minor changes.
svn path=/trunk/; revision=946
2000-01-20 22:14:45 +00:00
Emanuele Aliberti
b6de29fefb Two more FsRtl stubs.
svn path=/trunk/; revision=945
2000-01-20 22:14:08 +00:00
Emanuele Aliberti
8b078f86ae Updated fsfuncs.h with latest stubs prototypes.
svn path=/trunk/; revision=944
2000-01-20 22:11:48 +00:00
Eric Kohl
1b92b852eb Cleanup
Added '%I64' format type

svn path=/trunk/; revision=943
2000-01-19 19:48:20 +00:00
Eric Kohl
072eed4ad3 Fixed compiler warning
svn path=/trunk/; revision=942
2000-01-19 19:47:15 +00:00
Eric Kohl
75f2f5b22e Fixed ugly bug in the serial debugging code
svn path=/trunk/; revision=941
2000-01-19 16:24:15 +00:00
Rex Jolliff
90e1f4cbf9 changes to support v15 release
svn path=/trunk/; revision=939
2000-01-19 07:05:04 +00:00
Eric Kohl
921363d647 Changed debug output to use INT 2D
svn path=/trunk/; revision=938
2000-01-18 12:04:45 +00:00
Eric Kohl
8234dea660 Changed debug output to use INT 2D
Ooops! This one was missing! Sorry!

svn path=/trunk/; revision=937
2000-01-18 11:04:53 +00:00
Eric Kohl
88cb154d19 Changed debug output to use INT 2D
svn path=/trunk/; revision=936
2000-01-17 21:02:50 +00:00
Phillip Susi
faac123528 fixed tab completion with long file names
svn path=/trunk/; revision=935
2000-01-17 02:17:50 +00:00
Emanuele Aliberti
e857e97df1 Some more stubs for NDIS.SYS.
svn path=/trunk/; revision=934
2000-01-16 18:32:34 +00:00
Emanuele Aliberti
d508a1f0bf Added two missing names.
svn path=/trunk/; revision=933
2000-01-16 18:31:48 +00:00
Eric Kohl
013fc117b8 Added missing features and functions
Cleaned confusing file naming

svn path=/trunk/; revision=932
2000-01-14 02:23:25 +00:00
Eric Kohl
3d1f2d98ba Added missing printf() functions
Changed format %w to %S and %W to %wZ

svn path=/trunk/; revision=931
2000-01-12 19:05:32 +00:00
Eric Kohl
de66c40007 Disabled debugging messages
svn path=/trunk/; revision=930
2000-01-11 17:33:44 +00:00
Eric Kohl
6cc53dd4b3 Fixed process parameters
Simplified current directory code
Added %C and %S formats to printf()
Changed %w to %S
Fixed compiler warnings

svn path=/trunk/; revision=929
2000-01-11 17:32:13 +00:00
Eric Kohl
fb7f4582cd Fixed ctype and Rtl functions
svn path=/trunk/; revision=928
2000-01-11 01:16:50 +00:00
Emanuele Aliberti
a11a76eaef Some more NTOSKRNL.FsRtl stubs.
svn path=/trunk/; revision=927
2000-01-10 22:46:38 +00:00
Eric Kohl
be132afdf2 Added DbgPrint()
Fixed some Rtl functions
Added missing printf() and wprintf() functions

svn path=/trunk/; revision=926
2000-01-10 20:34:41 +00:00
Eric Kohl
686387f8e0 Removed fixed screen size code
svn path=/trunk/; revision=925
2000-01-09 23:16:41 +00:00
Eric Kohl
492a608e06 Fixed hal display bug
svn path=/trunk/; revision=924
2000-01-09 21:39:07 +00:00
Emanuele Aliberti
fd411d8b8c New year in c/r string.
svn path=/trunk/; revision=923
2000-01-08 16:17:50 +00:00
Eric Kohl
6f3d53f751 Added reading screen sizes from crt controller
svn path=/trunk/; revision=922
2000-01-07 18:57:33 +00:00
Emanuele Aliberti
462fe323eb A few more return structures for NtQuerySystemInformation
svn path=/trunk/; revision=921
2000-01-06 13:17:48 +00:00
David Welch
4d8c6a710b Removed debug messages from queuing code (sorry)
Added __int64 datatype to files that use it
Hid bug in ide driver (or somewhere) for now

svn path=/trunk/; revision=920
2000-01-06 00:26:16 +00:00
David Welch
623093eaaa Implemented more security functions
Moved general security types into new header file
Implemented ThreadImpersonationToken info class
Bug fixes to queuing code

svn path=/trunk/; revision=919
2000-01-05 21:57:00 +00:00
Eric Kohl
453f513ed3 Fixed ctype table and functions.
svn path=/trunk/; revision=918
2000-01-05 19:42:56 +00:00
Eric Kohl
57919a833e Fixed ctype table.
svn path=/trunk/; revision=917
2000-01-05 17:49:00 +00:00
David Welch
e6b5c8bfc7 Disabled pragma statement that was causing problems
svn path=/trunk/; revision=916
2000-01-02 14:21:04 +00:00
Eric Kohl
974095c413 Added mbtowc(), mbstowcs(), wctomb() and wcstombs()
svn path=/trunk/; revision=914
1999-12-30 14:39:43 +00:00
David Welch
a8ca53d761 Added some additional csrss work
Some fixes to the queueing code
Some fixes to the lpc code
Fix to section code

svn path=/trunk/; revision=913
1999-12-30 01:51:42 +00:00
Eric Kohl
c54d897571 Added even more missing functions
svn path=/trunk/; revision=912
1999-12-30 01:33:47 +00:00
Eric Kohl
17afcb4dfd Added some missing debug, math and ctype functions
svn path=/trunk/; revision=911
1999-12-29 17:13:27 +00:00
Eric Kohl
2284e742b3 Fixed implementation of register io functions
Added luid functions

svn path=/trunk/; revision=910
1999-12-29 01:37:30 +00:00
Eric Kohl
c7580dacf3 Last update for millenium release
Fixed some minor bugs
Fixed window title

svn path=/trunk/; revision=909
1999-12-28 23:13:38 +00:00
Eric Kohl
9446011fc1 Minor update
svn path=/trunk/; revision=908
1999-12-28 16:25:21 +00:00
Emanuele Aliberti
586433918e Some more NDIS stubs.
svn path=/trunk/; revision=907
1999-12-27 22:27:39 +00:00
Eric Kohl
b9579544e7 Removed cmd target
svn path=/trunk/; revision=906
1999-12-27 15:07:00 +00:00
Eric Kohl
005106acbb Fixed some more STDCALL issues
svn path=/trunk/; revision=905
1999-12-27 15:06:13 +00:00
Emanuele Aliberti
38d1018911 Added (io/create.c) IoCreateFile stub.
svn path=/trunk/; revision=904
1999-12-26 20:21:03 +00:00
Emanuele Aliberti
ea5959a772 Some missing __stdcall declarations added in headers and in code.
svn path=/trunk/; revision=903
1999-12-26 17:22:19 +00:00
Emanuele Aliberti
6b50f46c2f Some old Fs/Po code added to the makefile
svn path=/trunk/; revision=902
1999-12-26 16:36:46 +00:00
David Welch
4d5643a96a Added some security functions
Changes to csrss console support
Fixed bug in gdt.c

svn path=/trunk/; revision=901
1999-12-26 15:50:53 +00:00
Eric Kohl
128cfc8af0 Fixed compiler warnings
svn path=/trunk/; revision=900
1999-12-24 17:20:54 +00:00
Eric Kohl
a7a23b4dc3 Added missing test
svn path=/trunk/; revision=899
1999-12-24 17:16:32 +00:00
David Welch
dbd051cad4 Corrected additional object manager issues pointed by Philip Susi
Began added console i/o code to csrss (not working yet)
Corrected long standing page fault bug (not zeroing allocated page)

svn path=/trunk/; revision=898
1999-12-22 14:48:30 +00:00
Phillip Susi
1667a4589a fixed typeo
svn path=/trunk/; revision=897
1999-12-20 21:30:13 +00:00
Eric Kohl
6a617736e9 Fixed a compiler warning
svn path=/trunk/; revision=896
1999-12-20 21:05:53 +00:00
Phillip Susi
d832a87f14 fixed missing dereference and cleaned up code in NtCreateEvent
svn path=/trunk/; revision=895
1999-12-20 20:49:27 +00:00
David Welch
13541861b1 Fixed problem with handles not being released
Changed page fault handling to take account of the error code
Changed handle table locking

svn path=/trunk/; revision=894
1999-12-20 02:14:40 +00:00
Phillip Susi
dfa5f04c63 merged better assert code back into main trunk
svn path=/trunk/; revision=893
1999-12-18 19:50:24 +00:00
David Welch
cc5dc64c30 Worked around compiler bug in NtDelayExecution
Added some page free checking
Reorganised thread code a bit

svn path=/trunk/; revision=892
1999-12-18 17:48:23 +00:00
Emanuele Aliberti
8abc09ec0d Versio info actually linked in *.sys modules
svn path=/trunk/; revision=891
1999-12-18 10:17:42 +00:00
Emanuele Aliberti
5b86e3a918 RtlNtStatusToDosError and RtlNtStatusToPsxErrno declared __stdcall
svn path=/trunk/; revision=890
1999-12-18 10:16:11 +00:00
Emanuele Aliberti
e5b9e13d59 Minor changes
svn path=/trunk/; revision=889
1999-12-18 10:15:11 +00:00
Phillip Susi
bfaef27782 Added tracking of running threads in a process, and termination of process when all threads terminate
svn path=/trunk/; revision=888
1999-12-18 07:33:53 +00:00
Phillip Susi
4e94397e24 Added list of threads in process
svn path=/trunk/; revision=887
1999-12-18 07:28:28 +00:00
Phillip Susi
683932b845 changed to use proper type for dispatcher header, instead of PVOID in WAIT_BLOCK
svn path=/trunk/; revision=886
1999-12-17 23:30:48 +00:00
Phillip Susi
4ce5c9d3b4 fixed WaitForMultipleObjects()'s handling of the WaitAll flag
svn path=/trunk/; revision=885
1999-12-17 23:24:27 +00:00
Phillip Susi
6b53b3acea Working and tested KeWaitForXXX
svn path=/trunk/; revision=884
1999-12-17 23:23:36 +00:00
Eric Kohl
81547d8842 Added missing .cvsignore file
svn path=/trunk/; revision=883
1999-12-16 23:09:34 +00:00
Eric Kohl
1b0b103796 Added a time conversion function and fixed a little bug
(fat stores only 2 second steps)

svn path=/trunk/; revision=882
1999-12-16 23:08:17 +00:00
Phillip Susi
98a6084104 found that list corruption bug. it was also resulting in a meory spray
svn path=/trunk/; revision=881
1999-12-16 22:59:03 +00:00
Phillip Susi
96aed594a2 fixed CreateEvent() with NULL name
svn path=/trunk/; revision=879
1999-12-16 17:48:43 +00:00
Phillip Susi
ca6a107ee2 fixed a few bugs in wait code
svn path=/trunk/; revision=878
1999-12-16 05:13:06 +00:00
Phillip Susi
414cd229d9 new event test app
svn path=/trunk/; revision=877
1999-12-16 05:12:12 +00:00
Eric Kohl
a09b668be6 Added missing .cvsignore file
svn path=/trunk/; revision=876
1999-12-16 00:15:19 +00:00
Phillip Susi
7f63532d94 fixed timeout on wait functions
svn path=/trunk/; revision=875
1999-12-15 06:48:10 +00:00
Eric Kohl
8bbcdc3d4a Fixed current directory handling
Added new prompt functions
Fixed dangling pointer bug in copy command

svn path=/trunk/; revision=874
1999-12-15 00:50:41 +00:00
Phillip Susi
43d5d0b2f0 used proper type pointer instead of PVOID
svn path=/trunk/; revision=873
1999-12-14 18:44:38 +00:00
Phillip Susi
a409988b36 missing initialization of Thread->Tcb.WaitBlockList
svn path=/trunk/; revision=872
1999-12-14 18:35:19 +00:00
Phillip Susi
33009b967e bug fix with file object's name being freed but the pointer not NULLed
svn path=/trunk/; revision=871
1999-12-14 18:32:38 +00:00
Phillip Susi
4c2f15bfb9 fixed runnable thread counters
svn path=/trunk/; revision=870
1999-12-14 00:54:29 +00:00
David Welch
c40b27bbc4 Forgot to remove obsolete file
svn path=/trunk/; revision=869
1999-12-13 23:07:49 +00:00
David Welch
ac7a3aa542 Reworked APC and waiting code, seems more stable now
KeWaitForMultipleObjects is broken, shouldn't be difficult to fix
Corrected bug in ntdll ldr which prevented VC applications being loaded
Added thread testing application
Tried to make thread termination reentrant
Improved stack frame dump

svn path=/trunk/; revision=868
1999-12-13 22:04:41 +00:00
Phillip Susi
90e6a2244e missing GetEnvironmentStrings export, was supposed to be aliased to GetEnvironmentStringsA for some reason, as NT's exports it, and ros's cmd.exe imports it.
svn path=/trunk/; revision=867
1999-12-12 07:59:41 +00:00
Phillip Susi
8c2f4d55e3 David forgot to take out a debugging line? Prevented process termination on user mode exception
svn path=/trunk/; revision=866
1999-12-12 06:09:29 +00:00
Phillip Susi
9a22766e36 new APC code ready for prime time
svn path=/trunk/; revision=865
1999-12-12 03:56:53 +00:00
Phillip Susi
53b1677997 new APC code ready for prime time
svn path=/trunk/; revision=864
1999-12-12 03:48:47 +00:00
David Welch
2cecd9846d Removed typo.
svn path=/trunk/; revision=863
1999-12-12 01:04:09 +00:00
David Welch
f822a2a9d9 Backed out Philip Susi's changes for further testing
Returned kernel to working state.
Made exception handling more tolerant

svn path=/trunk/; revision=862
1999-12-12 00:59:39 +00:00
Phillip Susi
a590b25e46 fixed thread dispatcher bug with spin lock
svn path=/trunk/; revision=861
1999-12-12 00:49:00 +00:00
Phillip Susi
5d2dc4de65 fixed bug caused by my APC code
svn path=/trunk/; revision=860
1999-12-12 00:44:39 +00:00
Eric Kohl
55fef42029 Added abs() and labs()
svn path=/trunk/; revision=859
1999-12-12 00:20:29 +00:00
Eric Kohl
0ce89e21d9 fixed a compiler warning
svn path=/trunk/; revision=858
1999-12-12 00:08:41 +00:00
David Welch
910f27a570 Put in updated version of bitops header
Corrected bug in loader with mapping sections with zero VirtualSize
Corrected bug in the vfat driver that accessed freed memory
General cleanup of the vfat driver

svn path=/trunk/; revision=857
1999-12-11 21:14:49 +00:00
Phillip Susi
14ac854378 fixed DPC and APC calling code
svn path=/trunk/; revision=856
1999-12-11 17:31:16 +00:00
Phillip Susi
e0e40991af thread priorities, and some APC work
svn path=/trunk/; revision=855
1999-12-11 17:26:43 +00:00
Phillip Susi
db262c9a74 reworked the APC code, they shold now be delivered properly when the IRQL falls below APC_LEVEL, and when there are more than one queued.
Added support for KeAddThreadTimeout() to time out
Fixed wait code to use the WaitStatus of the thread when it wakes up

svn path=/trunk/; revision=854
1999-12-11 17:25:27 +00:00
Phillip Susi
81310b4307 added DPC for timers to KTHREAD, and fixed ApcState
svn path=/trunk/; revision=853
1999-12-11 17:19:32 +00:00
Phillip Susi
77c8585f1c added initialization for APCs
svn path=/trunk/; revision=852
1999-12-11 06:40:08 +00:00
Phillip Susi
43f46ed4f8 at least it compiles now...
svn path=/trunk/; revision=851
1999-12-11 06:39:30 +00:00
Eric Kohl
66f738dbd1 cleanup
svn path=/trunk/; revision=850
1999-12-11 01:44:29 +00:00
Eric Kohl
45043db6ff Added waiting for port requests
svn path=/trunk/; revision=849
1999-12-11 01:42:44 +00:00
Phillip Susi
b14104f1e7 ooops... fix that..
svn path=/trunk/; revision=848
1999-12-10 22:25:18 +00:00
Phillip Susi
424d757107 added initial priorities to threads and processes
svn path=/trunk/; revision=847
1999-12-10 22:07:23 +00:00
Eric Kohl
a1c7df6990 Fixed command line code.
Fixed Rtl string functions.

svn path=/trunk/; revision=846
1999-12-10 17:49:21 +00:00
David Welch
c7b7c5b0b6 Modified LPC implementation to be closer to nt.
Did some initial work on support for paging
Switched some test application from using our special startup code
Correctly bug in DPC code (possible fix for "releasing unacquired spinlock" error")

svn path=/trunk/; revision=845
1999-12-10 17:04:37 +00:00
Phillip Susi
815a52debe fixed IoCompleteRequest() to give priority boost even when target thread != current thread
svn path=/trunk/; revision=844
1999-12-09 19:39:45 +00:00
Paolo Pantaleo
dbf662da37 4nt's CTRL-D and CRTL-K support
svn path=/trunk/; revision=843
1999-12-09 19:20:47 +00:00
Eric Kohl
5d99e9003a dll name comparison in LdrFindDll() must be case-insensitive
svn path=/trunk/; revision=842
1999-12-09 19:14:45 +00:00
Eric Kohl
ec235d7468 Fixed HalQueryRealTimeClock and HalSetRealTimeClock.
Thanks to Adam Polanski.

svn path=/trunk/; revision=841
1999-12-09 08:16:26 +00:00
Rex Jolliff
f09720f7d7 some more video code
svn path=/trunk/; revision=840
1999-12-09 02:45:06 +00:00
Paolo Pantaleo
258912bf48 fixed a stupid bug in history
minor chage to GetConsoleHandle

svn path=/trunk/; revision=839
1999-12-08 18:18:23 +00:00
Eric Kohl
9d84d82bd7 pointer to PEB becomes first parameter in call to NtProcessStartup
svn path=/trunk/; revision=838
1999-12-08 12:59:35 +00:00
Phillip Susi
904da6e474 disable interrupts first, then do work. Use HLT also instead of busy wait
svn path=/trunk/; revision=837
1999-12-08 06:34:25 +00:00
Paolo Pantaleo
915ff9328d history cleanup added
svn path=/trunk/; revision=836
1999-12-07 18:17:17 +00:00
Paolo Pantaleo
61c3984818 TAS searches in internal commands too
svn path=/trunk/; revision=835
1999-12-07 18:16:24 +00:00
Eric Kohl
4a02ce0c1e fixed typo
svn path=/trunk/; revision=834
1999-12-07 17:23:42 +00:00
Paolo Pantaleo
f30ade19b8 new history implementation, not complete yet...
svn path=/trunk/; revision=833
1999-12-06 19:26:49 +00:00
Phillip Susi
9530a7d656 fixed handling of enter with blank line, also by my good pal, jim4
svn path=/trunk/; revision=832
1999-12-06 06:53:24 +00:00
Phillip Susi
5716745a13 fixed for 25 line mode as it should be, and scrolling by my good pal, jim4
svn path=/trunk/; revision=831
1999-12-06 06:43:45 +00:00
Phillip Susi
680589c149 fixed default bochs log port
svn path=/trunk/; revision=830
1999-12-06 05:48:34 +00:00
Eric Kohl
2efd99afb2 removed outdated cmd
svn path=/trunk/; revision=829
1999-12-06 00:30:09 +00:00
Eric Kohl
b001203a86 - implemented process parameter block (PPB) code
- improved process environment block (PEB) code
- improved environment code

svn path=/trunk/; revision=828
1999-12-06 00:25:14 +00:00
Phillip Susi
09edfdc32f forgot to initialize Create member of OBJECT_TYPE for threads
svn path=/trunk/; revision=827
1999-12-05 23:23:50 +00:00
Phillip Susi
ae12418822 fixed sync problem: set dpc lock field before, rather than after droping the spin lock
svn path=/trunk/; revision=826
1999-12-05 19:26:11 +00:00
Phillip Susi
f9d4545552 fixed sync bug by elevating IRQL
svn path=/trunk/; revision=825
1999-12-05 08:30:10 +00:00
Emanuele Aliberti
bb25ff0f3a Minor changes.
svn path=/trunk/; revision=824
1999-12-04 21:11:00 +00:00
Emanuele Aliberti
4b70175e11 RtlNtStatusToPsxErrno stub added.
svn path=/trunk/; revision=823
1999-12-04 21:03:22 +00:00
Emanuele Aliberti
ba58b241e5 Added version resource to dd and fs.
svn path=/trunk/; revision=822
1999-12-04 20:58:45 +00:00
Eric Kohl
7c574c2d6e fixed compiler warnings
svn path=/trunk/; revision=821
1999-12-04 14:54:50 +00:00
Phillip Susi
47551b9846 ignore buildno.h
svn path=/trunk/; revision=819
1999-12-04 08:02:27 +00:00
Phillip Susi
d0c1e25256 fixed timers and a wait functions, and a few bugs
svn path=/trunk/; revision=818
1999-12-04 07:40:53 +00:00
Phillip Susi
d4c340c696 fixed ide.sys to run under bochs, disabled support for more than one controller to do it. Let me know of this breaks on real hardware.
svn path=/trunk/; revision=817
1999-12-04 07:38:16 +00:00
Brian Palmer
43014d0391 Fixed bug in LdrPEProcessModule() so that it correctly section sizes
svn path=/trunk/; revision=816
1999-12-04 04:59:38 +00:00
Paolo Pantaleo
e28f90e740 now c:\ do not crash cmd
svn path=/trunk/; revision=815
1999-12-03 18:50:00 +00:00
David Welch
ead0eeacdd Some bug fixes.
Corrected LPC implementation.

svn path=/trunk/; revision=814
1999-12-02 20:53:55 +00:00
Boudewijn Dekker
cf693462e6 .
svn path=/trunk/; revision=813
1999-12-01 22:31:45 +00:00
Boudewijn Dekker
67ad8387f3 fixed some prototypes by adding stdcall attribute
svn path=/trunk/; revision=812
1999-12-01 22:30:48 +00:00
Eric Kohl
eae47571c9 fixed little bug
svn path=/trunk/; revision=811
1999-12-01 17:34:55 +00:00
Eric Kohl
2ea8bb5aa4 minor improvements
svn path=/trunk/; revision=810
1999-12-01 15:22:49 +00:00
Eric Kohl
13436cd7f7 - added environment functions
- moved ntdll-only prototypes into ntdll header file

svn path=/trunk/; revision=809
1999-12-01 15:18:54 +00:00
Eric Kohl
3bee100dae Cleanup
svn path=/trunk/; revision=808
1999-12-01 15:10:42 +00:00
Eric Kohl
2eccd28b8f Fixed a typo
svn path=/trunk/; revision=807
1999-12-01 15:08:31 +00:00
Paolo Pantaleo
d2c016b5ab just fixed a stupid bug
svn path=/trunk/; revision=806
1999-11-29 18:25:05 +00:00
Emanuele Aliberti
b72dc46819 Almost complete skeleton for tdi.sys,
yet headers are still missing.

svn path=/trunk/; revision=805
1999-11-28 07:59:29 +00:00
Eric Kohl
e2e5efb9d7 fixed a typo
svn path=/trunk/; revision=804
1999-11-28 01:55:41 +00:00
Paolo Pantaleo
6d3a97eb5e type accepts more than one file specification
F3 working in command line history (for now simply the same as up arrow)

svn path=/trunk/; revision=803
1999-11-27 19:14:59 +00:00
Eric Kohl
0d630c9ee3 added atoi() and atol()
svn path=/trunk/; revision=802
1999-11-27 11:32:43 +00:00
Eric Kohl
8b829113cb - changed InitializeObjectAttributes() from a function to a macro
- fixed STDCALL more issues
- changed some RtlLargeIntegerXxx functions to macros

svn path=/trunk/; revision=801
1999-11-27 03:32:55 +00:00
Brian Palmer
c18e7f06ce *** empty log message ***
svn path=/trunk/; revision=800
1999-11-26 21:45:23 +00:00
Jason Filby
dfa8364302 *** empty log message ***
svn path=/trunk/; revision=799
1999-11-26 20:53:32 +00:00
Eric Kohl
ed3ca3d52c More runtime functions
svn path=/trunk/; revision=798
1999-11-25 23:45:30 +00:00
Eric Kohl
e77c8000db Fixed typo
svn path=/trunk/; revision=797
1999-11-25 23:37:02 +00:00
Eric Kohl
05a567fce3 More runtime functions
svn path=/trunk/; revision=796
1999-11-25 23:35:24 +00:00
David Welch
9b614b887d Corrected ntdll mapping bug
Implemented prototype lpc mechanism

svn path=/trunk/; revision=795
1999-11-25 10:47:58 +00:00
Emanuele Aliberti
1a0765f6c5 Some NdisXYZ stubs for NDIS.SYS.
svn path=/trunk/; revision=794
1999-11-24 23:11:17 +00:00
Emanuele Aliberti
ec4a27aeb7 Initial makefile for NDIS.SYS
svn path=/trunk/; revision=793
1999-11-24 23:06:24 +00:00
David Welch
b986ce1cac Began converting minix fsd to work with new caching mechanism
Implemented user-mode APCs (still some bugs)
Began implementing shared memory, still some locking issues

svn path=/trunk/; revision=792
1999-11-24 11:51:55 +00:00
Emanuele Aliberti
e510811de7 Some fixes in the TDI initial files.
svn path=/trunk/; revision=791
1999-11-21 23:48:14 +00:00
Rex Jolliff
a7e6e9c1f8 more win32k code
svn path=/trunk/; revision=790
1999-11-21 18:39:11 +00:00
Eric Kohl
64915d3ebe Added missing STDCALL.
svn path=/trunk/; revision=789
1999-11-20 21:59:39 +00:00
Eric Kohl
c8689122b1 Fixed typo.
svn path=/trunk/; revision=788
1999-11-20 21:53:53 +00:00
Eric Kohl
e0c1e02c47 Fixed compiler warning
svn path=/trunk/; revision=787
1999-11-20 21:51:19 +00:00
Eric Kohl
b09592bf32 Major update to Rtl string functions.
svn path=/trunk/; revision=786
1999-11-20 21:49:23 +00:00
Emanuele Aliberti
174adb3955 Some more stubs files for the TDI kernel module.
svn path=/trunk/; revision=785
1999-11-20 20:41:29 +00:00
Emanuele Aliberti
8a20ddc7d4 Initial files for the TCP/IP stack kernel module.
svn path=/trunk/; revision=784
1999-11-20 20:36:46 +00:00
Emanuele Aliberti
82a0c31208 Initial networking code layout.
svn path=/trunk/; revision=783
1999-11-20 10:21:18 +00:00
Rex Jolliff
d25098ba0c added ignore file
svn path=/trunk/; revision=782
1999-11-18 19:25:35 +00:00
Rex Jolliff
aba30a453f added some DDI functions to table
svn path=/trunk/; revision=781
1999-11-18 18:58:16 +00:00
Boudewijn Dekker
fde8b62215 added misc/res.c
svn path=/trunk/; revision=780
1999-11-17 21:33:44 +00:00
Boudewijn Dekker
e04faee634 fixed some bugs in LdrLoadDll
svn path=/trunk/; revision=779
1999-11-17 21:32:57 +00:00
Boudewijn Dekker
0d7b93783b no message
svn path=/trunk/; revision=778
1999-11-17 21:30:00 +00:00
Boudewijn Dekker
b361e13fab implemented LoadResource/FlushViewOfFile
svn path=/trunk/; revision=777
1999-11-17 21:28:08 +00:00
Boudewijn Dekker
44744d8d36 implemented LoadResource
svn path=/trunk/; revision=776
1999-11-17 21:21:08 +00:00
Boudewijn Dekker
614f99e406 implemented FlushViewOfFile in kernel32
svn path=/trunk/; revision=775
1999-11-17 21:20:15 +00:00
Rex Jolliff
6e605e712e fixed reference to abs
svn path=/trunk/; revision=774
1999-11-17 21:17:10 +00:00
Rex Jolliff
96d5e2c715 Added top level ignore list
svn path=/trunk/; revision=773
1999-11-17 20:54:05 +00:00
Rex Jolliff
6767fd7f43 Fixed BMI typedef
svn path=/trunk/; revision=772
1999-11-17 20:50:37 +00:00
Eric Kohl
85a3f3844c Started NLS support and improved Rtl string functions.
svn path=/trunk/; revision=771
1999-11-15 16:02:50 +00:00
Eric Kohl
c114003cb5 Added some RtlLargeInteger functions.
svn path=/trunk/; revision=770
1999-11-15 16:01:32 +00:00
Eric Kohl
c52cbf8517 Fixed warning.
svn path=/trunk/; revision=769
1999-11-15 15:53:31 +00:00
Boudewijn Dekker
abd233d61a Implemented LdrFindResource_U and LdrAccessResource
svn path=/trunk/; revision=768
1999-11-14 13:04:46 +00:00
David Welch
b0ff680e0e 1) Corrected bugs in ERESOURCE code
and added test
2) Moved some files which are only
architecture-dependant out of the hal
3) Corrected timer implementation (it
should now be possible to use them as dispatcher
objects)
4) Corrected stupid bug in dpc code
5) Made thread list locking more sensible
6) Altered system call handler to build a
proper context in preparation for implementing APCs
7) Rationalised the waiting code

svn path=/trunk/; revision=767
1999-11-12 12:01:17 +00:00
Rex Jolliff
1a8f8005ae fixed clean rule
svn path=/trunk/; revision=766
1999-11-12 00:16:51 +00:00
Rex Jolliff
5bc02dd95a Changed to support linux build
svn path=/trunk/; revision=765
1999-11-11 21:22:08 +00:00
Eric Kohl
44866ccf87 Fixed include bug with rosapps module.
svn path=/trunk/; revision=764
1999-11-09 18:17:10 +00:00
Eric Kohl
d431c0fa6d Fixed bug with gcc 2.95.2
svn path=/trunk/; revision=763
1999-11-09 18:15:16 +00:00
Eric Kohl
58b907b668 Added some RtlLargeInteger functions.
svn path=/trunk/; revision=762
1999-11-09 18:09:57 +00:00
Eric Kohl
761e03c5a1 Fixed memory functions.
svn path=/trunk/; revision=761
1999-11-09 18:07:50 +00:00
Eric Kohl
ea4204ce87 Changed to new HAL functions.
svn path=/trunk/; revision=760
1999-11-09 18:07:03 +00:00
Eric Kohl
eae6fb6efc Implemented ExInterlocked functions.
svn path=/trunk/; revision=759
1999-11-09 18:00:14 +00:00
Eric Kohl
157d5b3fa2 Added APC support to NtDeviceIoControlFile().
svn path=/trunk/; revision=758
1999-11-07 14:08:11 +00:00
Emanuele Aliberti
63665d54ed advapi32 ACE and ACL stubs.
svn path=/trunk/; revision=757
1999-11-07 08:04:55 +00:00
Emanuele Aliberti
eb2d1c2110 advapi32 compiles OK.
Build number auto-generated (see apps/buildno, include/reactos/version.h,
include/reactos/buildno.h).
include/internal/version.h moved in include/reactos.
Added default search paths for includes in .rc rule (rules.mak).

svn path=/trunk/; revision=756
1999-11-07 08:03:28 +00:00
Eric Kohl
dbbb7e41f0 Keep DEL quiet when called from a batch file.
svn path=/trunk/; revision=754
1999-11-06 00:53:33 +00:00
Eric Kohl
6758f479ef New Y command and some fixes.
svn path=/trunk/; revision=753
1999-11-05 20:41:17 +00:00
Eric Kohl
18a01fd10d Implemented 4nt compatible color command.
svn path=/trunk/; revision=752
1999-11-04 11:29:36 +00:00
Emanuele Aliberti
cfb22d72df Typo in the NTOSKRNL import library fixed
svn path=/trunk/; revision=751
1999-11-04 06:41:47 +00:00
David Welch
83c2d22a5e Improved scheduling code
Fixed win32k.sys entrypoint (otherwise it crashes on startup)
Included unix install script
Broke waiting for a thread to terminate (but will fix later)
Added spinlock debugging code
Improved InterlockXXXX functions
Added hooks for monitoring system calls and thread startup

svn path=/trunk/; revision=750
1999-11-02 08:55:45 +00:00
Emanuele Aliberti
96c9969a90 Various changes related to calling convention fixes
svn path=/trunk/; revision=749
1999-10-31 22:44:39 +00:00
Emanuele Aliberti
f0f8791763 W32kSetTextColor, W32GetDCState16 needed __stdcall; changed the subsystem field from windows to native
svn path=/trunk/; revision=748
1999-10-31 22:43:40 +00:00
Emanuele Aliberti
31c5b7839f RtlFillMemory, RtlMoveMemory, RtlZeroMemory needed __stdcall
svn path=/trunk/; revision=747
1999-10-31 22:41:49 +00:00
Emanuele Aliberti
dabbe50e39 LoadLibraryA, GetProcAddress, FreeLibrary, GetModuleHandleA, WriteFileEx needed __stdcall
svn path=/trunk/; revision=746
1999-10-31 22:41:15 +00:00
Emanuele Aliberti
68fbd54f2c KeDelayExecutionThread exported by ntoskrnl with correct calling convention (__stdcall)
svn path=/trunk/; revision=745
1999-10-30 21:24:37 +00:00
Rex Jolliff
766e6a262e added more KMGDI functions
svn path=/trunk/; revision=744
1999-10-29 01:58:20 +00:00
Rex Jolliff
c1795e9778 fixed problem with redefined status values
svn path=/trunk/; revision=743
1999-10-28 23:37:58 +00:00
Rex Jolliff
f886c2b9d6 added several new functions
svn path=/trunk/; revision=742
1999-10-28 23:37:14 +00:00
Rex Jolliff
7d45bbd5da needed for compile
svn path=/trunk/; revision=741
1999-10-28 23:35:34 +00:00
Rex Jolliff
8d87ab9d07 added fix for compile under linux
svn path=/trunk/; revision=740
1999-10-28 23:34:47 +00:00
Eric Kohl
95fcdd0943 Fixed batch mode bugs.
svn path=/trunk/; revision=739
1999-10-28 23:09:59 +00:00
Rex Jolliff
11d7e1e18c Fixed problems with vidport and vga loading
svn path=/trunk/; revision=738
1999-10-28 06:58:05 +00:00
Eric Kohl
863afe8930 Disabled prompting when in batch mode.
svn path=/trunk/; revision=737
1999-10-27 22:46:53 +00:00
Rex Jolliff
788e4dc053 Fix import problems in win32k.sys
svn path=/trunk/; revision=736
1999-10-27 05:49:58 +00:00
Emanuele Aliberti
125a62f79a An attempt to fix the ntdll not found bug.
svn path=/trunk/; revision=735
1999-10-26 19:47:06 +00:00
Rex Jolliff
99d62b4808 added check for bootloader config hive
svn path=/trunk/; revision=734
1999-10-26 04:52:39 +00:00
Rex Jolliff
3c1e76b027 Some small fixes to reported build problems
svn path=/trunk/; revision=733
1999-10-25 06:58:09 +00:00
Eric Kohl
2bd986927c Added some time related functions.
svn path=/trunk/; revision=732
1999-10-24 17:52:17 +00:00
Rex Jolliff
ad5e850736 Changes to get video drivers and win32k to load
svn path=/trunk/; revision=731
1999-10-24 17:07:57 +00:00
Rex Jolliff
6cc79a481e added some Eng funcs into build list
svn path=/trunk/; revision=730
1999-10-23 22:40:49 +00:00
Rex Jolliff
c0b2b118a0 Cleanup to make buildable
svn path=/trunk/; revision=729
1999-10-23 22:39:27 +00:00
Rex Jolliff
a53e883bb0 Added definitions for some eng funcs
svn path=/trunk/; revision=728
1999-10-23 22:38:26 +00:00
Rex Jolliff
bb0715f8e7 Added IOCTL codes for video drivers
svn path=/trunk/; revision=727
1999-10-23 22:37:11 +00:00
Rex Jolliff
bc08c68af9 Added vidport.sys to auto loaded drivers
svn path=/trunk/; revision=726
1999-10-23 18:58:40 +00:00
Rex Jolliff
28df2503d3 fixed handling of boot drivers
svn path=/trunk/; revision=725
1999-10-23 18:56:04 +00:00
Rex Jolliff
a5dd3430d6 fixed dist and floppy rule
svn path=/trunk/; revision=724
1999-10-23 18:33:38 +00:00
Eric Kohl
36f33622cc Fixed bugs and added DIRS command.
svn path=/trunk/; revision=723
1999-10-23 18:17:37 +00:00
Eric Kohl
583a7209da Added BOOT.BAT
svn path=/trunk/; revision=722
1999-10-23 18:15:39 +00:00
Eric Kohl
727671f12a Added Ctrl-C/Ctrl-Break handler.
svn path=/trunk/; revision=721
1999-10-22 20:35:02 +00:00
Eric Kohl
13e2e79e44 Added missing exports.
svn path=/trunk/; revision=720
1999-10-21 16:13:39 +00:00
Eric Kohl
0300e2a9d1 Fixed floppy and dist targets.
svn path=/trunk/; revision=719
1999-10-21 16:12:16 +00:00
Eric Kohl
ec16aa4c44 Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=718
1999-10-21 13:11:12 +00:00
Eric Kohl
e6f624f0e7 Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=717
1999-10-21 13:00:09 +00:00
Eric Kohl
7228dc135c Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=716
1999-10-21 11:13:38 +00:00
Eric Kohl
d2e85caa9e Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=715
1999-10-21 10:59:32 +00:00
Rex Jolliff
bff71dc524 Changed name to conform with kernel naming convention
svn path=/trunk/; revision=714
1999-10-20 23:09:26 +00:00
Rex Jolliff
a0570e7cbe added ignore files
svn path=/trunk/; revision=713
1999-10-20 23:08:58 +00:00
Boudewijn Dekker
ff9ce85a65 implemented some ldr functions
svn path=/trunk/; revision=712
1999-10-18 21:55:30 +00:00
Boudewijn Dekker
f3d9743503 implemented LdrUnloadDll
svn path=/trunk/; revision=711
1999-10-18 21:37:16 +00:00
Boudewijn Dekker
a66a6e5dba implemented LoadLibray and FreeLibrary
svn path=/trunk/; revision=710
1999-10-17 18:18:44 +00:00
Boudewijn Dekker
8690858184 implemented a reference count on LdrLoadDll
svn path=/trunk/; revision=709
1999-10-17 18:16:45 +00:00
Eric Kohl
9e4fec3838 Updated info about debugging.
svn path=/trunk/; revision=708
1999-10-16 21:10:23 +00:00
Eric Kohl
8001413b88 More exported functions.
svn path=/trunk/; revision=707
1999-10-16 21:09:12 +00:00
Eric Kohl
bae73138e8 Moved serial and bochs debug output.
svn path=/trunk/; revision=706
1999-10-16 21:08:39 +00:00
Eric Kohl
dad291cf6f Some fixes.
svn path=/trunk/; revision=705
1999-10-16 12:41:42 +00:00
Eric Kohl
22b26024cd More exported functions.
svn path=/trunk/; revision=704
1999-10-16 12:40:57 +00:00
Eric Kohl
3e6e6c12ee Added missing ntdll include.
svn path=/trunk/; revision=703
1999-10-16 12:39:44 +00:00
Eric Kohl
93a0fa88d2 Fixed NtCreatePort() prototype.
svn path=/trunk/; revision=702
1999-10-16 12:38:53 +00:00
Eric Kohl
9b2fc03fc7 Fixed $(NASM_CMD) bug.
svn path=/trunk/; revision=701
1999-10-16 12:36:47 +00:00
Eric Kohl
7975fc7fe7 Minor improvements.
svn path=/trunk/; revision=700
1999-10-16 12:35:10 +00:00
Eric Kohl
a23adc0492 Fixed hal display and initialization code.
svn path=/trunk/; revision=699
1999-10-16 00:17:40 +00:00
Eric Kohl
36e229b42f Fixed a typo.
svn path=/trunk/; revision=698
1999-10-15 15:26:34 +00:00
Eric Kohl
29812be566 Fixed hal display and initialization code.
svn path=/trunk/; revision=697
1999-10-15 15:21:39 +00:00
Eric Kohl
4551dfba1e Replaced calls to _printk() by calls to DbgPrint().
svn path=/trunk/; revision=696
1999-10-14 16:54:17 +00:00
Eric Kohl
babfe77ea9 PEB will be created in NtCreateProcess.
svn path=/trunk/; revision=695
1999-10-13 22:35:55 +00:00
Emanuele Aliberti
81a9f1c4b0 Little changes in the psxdll library.
svn path=/trunk/; revision=694
1999-10-12 21:19:40 +00:00
Boudewijn Dekker
74031c2379 implemented LoadLibrary and some Rtl stubs
svn path=/trunk/; revision=693
1999-10-12 19:45:01 +00:00
Eric Kohl
348ccdd39f Added REBOOT command.
svn path=/trunk/; revision=692
1999-10-11 20:51:07 +00:00
Eric Kohl
1d4d689bf2 Added new display and reboot code.
svn path=/trunk/; revision=691
1999-10-11 20:50:33 +00:00
Eric Kohl
8578ba8ac6 Minor fix to teb allocation.
svn path=/trunk/; revision=690
1999-10-11 20:43:10 +00:00
Eric Kohl
a77eef4a53 Fixed header inclusion order.
svn path=/trunk/; revision=689
1999-10-10 19:53:46 +00:00
3316 changed files with 626520 additions and 142699 deletions

View File

@@ -0,0 +1,33 @@
# $Id: Makefile,v 1.1 2002/01/20 21:22:29 ea Exp $
#
# Tu run it in Win32 console mode, undefine __SUBSYSTEM_WINDOWS__
# and pass "console" in the ld's --subsystem option.
#
#
PATH_TO_TOP=../../../..
PATH_TO_PSX_TOP=../..
TARGET_NAME=sh
CFLAGS=-D__SUBSYSTEM_WINDOWS__
OBJECTS=$(TARGET_NAME).o
LIBRARIES=\
$(PATH_TO_PSX_TOP)/lib/crt0w32.o \
$(PATH_TO_PSX_TOP)/lib/psxdll/psxdll.a
$(TARGET_NAME): $(OBJECTS) $(LIBRARIES)
$(CC) \
$(CFLAGS) \
$(OBJECTS) \
$(LIBRARIES)\
-o $@ \
-Wl,--subsystem,windows\
-nostartfiles \
-nostdlib
include $(PATH_TO_TOP)/rules.mak
# EOF

60
posix/apps/baresh/sh.c Normal file
View File

@@ -0,0 +1,60 @@
/* $Id: sh.c,v 1.1 2002/01/20 21:22:29 ea Exp $
*
* baresh - Bare Shell for the PSX subsystem.
* Copyright (c) 2002 Emanuele Aliberti
* License: GNU GPL v2
*/
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#define INPUT_BUFFER_SIZE 128
int run=1;
void cmd_exit(char*buf)
{
run=0;
}
void cmd_pwd(char * buf)
{
char pwd[1024];
getcwd(pwd,sizeof pwd);
printf("%s\n",pwd);
}
void cmd_ls(char*buf)
{
char pwd[1024];
DIR * dir;
struct dirent * entry;
getcwd(pwd,sizeof pwd);
dir=opendir(pwd);
while (NULL!=(entry=readdir(dir)))
{
printf("%s\n",entry->d_name);
}
closedir(dir);
}
int main(int argc,char*argv[])
{
char buf[INPUT_BUFFER_SIZE];
while (run)
{
printf("# ");
if (gets(buf))
{
if (!strcmp("exit",buf)) cmd_exit(buf);
else if (!strcmp("pwd",buf)) cmd_pwd(buf);
else if (!strcmp("ls",buf)) cmd_ls(buf);
else printf("%s: unknown command\n",argv[0]);
}
}
return 0;
}
/* EOF */

74
posix/include/aio.h Normal file
View File

@@ -0,0 +1,74 @@
/* $Id: aio.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* aio.h
*
* asynchronous input and output (REALTIME). Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __AIO_H_INCLUDED__
#define __AIO_H_INCLUDED__
/* INCLUDES */
#include <fcntl.h>
#include <signal.h>
#include <sys/types.h>
#include <time.h>
/* OBJECTS */
/* TYPES */
typedef struct _tag_aiocb
{
int aio_fildes; /* file descriptor */
off_t aio_offset; /* file offset */
volatile void* aio_buf; /* location of buffer */
size_t aio_nbytes; /* length of transfer */
int aio_reqprio; /* request priority offset */
struct sigevent aio_sigevent; /* signal number and value */
int aio_lio_opcode; /* operation to be performed */
} aiocb;
/* CONSTANTS */
#define AIO_CANCELED 0
#define AIO_NOTCANCELED 1
#define AIO_ALLDONE 2
#define LIO_WAIT 0
#define LIO_NOWAIT 1
#define LIO_READ 2
#define LIO_WRITE 3
#define LIO_NOP 4
/* PROTOTYPES */
int aio_cancel(int, struct aiocb *);
int aio_error(const struct aiocb *);
int aio_fsync(int, struct aiocb *);
int aio_read(struct aiocb *);
ssize_t aio_return(struct aiocb *);
int aio_suspend(const struct aiocb *const[], int, const struct timespec *);
int aio_write(struct aiocb *);
int lio_listio(int, struct aiocb *const[], int, struct sigevent *);
/* MACROS */
#endif /* __AIO_H_INCLUDED__ */
/* EOF */

56
posix/include/arpa/inet.h Normal file
View File

@@ -0,0 +1,56 @@
/* $Id: inet.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* arpa/inet.h
*
* definitions for internet operations. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __ARPA_INET_H_INCLUDED__
#define __ARPA_INET_H_INCLUDED__
/* INCLUDES */
#include <netinet/in.h>
#include <inttypes.h>
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
in_addr_t inet_addr(const char *cp);
in_addr_t inet_lnaof(struct in_addr in);
struct in_addr inet_makeaddr(in_addr_t net, in_addr_t lna);
in_addr_t inet_netof(struct in_addr in);
in_addr_t inet_network(const char *cp);
char *inet_ntoa(struct in_addr in);
/* MACROS */
#endif /* __ARPA_INET_H_INCLUDED__ */
/* EOF */

65
posix/include/assert.h Normal file
View File

@@ -0,0 +1,65 @@
/* $Id: assert.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* assert.h
*
* verify program assertion. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __ASSERT_H_INCLUDED__
#define __ASSERT_H_INCLUDED__
/* types */
/* constants */
/* prototypes */
/* macros */
#ifdef NDEBUG
#define assert(ignore) ((void) 0)
#else /* !NDEBUG */
#define assert(expression) \
#ifdef __PSXDLL__
/* headers for internal usage by psxdll.dll and ReactOS */
#include <psxdll/stdio.h>
#include <psxdll/stdlib.h>
#else /* ! __PSXDLL__ */
/* standard POSIX headers */
#include <stdio.h>
#include <stdlib.h>
#endif
if(!(expression)) \
{ \
fputs("__FILE__, line __LINE__: assertion \"expression\" failed\n", stderr); \
abort(); \
}
#endif /* NDEBUG */
#endif /* __ASSERT_H_INCLUDED__ */
/* EOF */

63
posix/include/cpio.h Normal file
View File

@@ -0,0 +1,63 @@
/* $Id: cpio.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* cpio.h
*
* cpio archive values. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __CPIO_H_INCLUDED__
#define __CPIO_H_INCLUDED__
/* INCLUDES */
/* TYPES */
/* CONSTANTS */
#define C_IRUSR (0000400) /* read by owner */
#define C_IWUSR (0000200) /* write by owner */
#define C_IXUSR (0000100) /* execute by owner */
#define C_IRGRP (0000040) /* read by group */
#define C_IWGRP (0000020) /* write by group */
#define C_IXGRP (0000010) /* execute by group */
#define C_IROTH (0000004) /* read by others */
#define C_IWOTH (0000002) /* write by others */
#define C_IXOTH (0000001) /* execute by others */
#define C_ISUID (0004000) /* set user ID */
#define C_ISGID (0002000) /* set group ID */
#define C_ISVTX (0001000) /* on directories, restricted deletion flag */
#define C_ISDIR (0040000) /* directory */
#define C_ISFIFO (0010000) /* FIFO */
#define C_ISREG (0100000) /* regular file */
#define C_ISBLK (0060000) /* block special */
#define C_ISCHR (0020000) /* character special */
#define C_ISCTG (0110000) /* reserved */
#define C_ISLNK (0120000) /* symbolic link */
#define C_ISSOCK (0140000) /* socket */
#define MAGIC "070707"
/* PROTOTYPES */
/* MACROS */
#endif /* __CPIO_H_INCLUDED__ */
/* EOF */

61
posix/include/ctype.h Normal file
View File

@@ -0,0 +1,61 @@
/* $Id: ctype.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* ctype.h
*
* character types. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __CTYPE_H_INCLUDED__
#define __CTYPE_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
int isalnum(int);
int isalpha(int);
int isascii(int);
int iscntrl(int);
int isdigit(int);
int isgraph(int);
int islower(int);
int isprint(int);
int ispunct(int);
int isspace(int);
int isupper(int);
int isxdigit(int);
int toascii(int);
int tolower(int);
int toupper(int);
/* MACROS */
/* FIXME: the standard isn't clear about these */
#define _toupper(c) (toupper(c))
#define _tolower(c) (tolower(c))
#endif /* __CTYPE_H_INCLUDED__ */
/* EOF */

70
posix/include/dirent.h Normal file
View File

@@ -0,0 +1,70 @@
/* $Id: dirent.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* dirent.h
*
* format of directory entries. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __DIRENT_H_INCLUDED__
#define __DIRENT_H_INCLUDED__
/* INCLUDES */
#include <sys/types.h>
#include <stddef.h>
/* TYPES */
typedef void DIR;
struct dirent
{
ino_t d_ino; /* file serial number */
char *d_name; /* name of entry */
};
/* for Unicode filenames */
struct _Wdirent
{
ino_t d_ino; /* file serial number */
wchar_t *d_name; /* name of entry */
};
/* CONSTANTS */
/* PROTOTYPES */
int closedir(DIR *);
DIR *opendir(const char *);
struct dirent *readdir(DIR *);
int readdir_r(DIR *, struct dirent *, struct dirent **);
void rewinddir(DIR *);
void seekdir(DIR *, long int);
long int telldir(DIR *);
/* for Unicode filenames */
DIR *_Wopendir(const wchar_t *);
struct _Wdirent *_Wreaddir(DIR *);
int _Wreaddir_r(DIR *, struct _Wdirent *, struct _Wdirent **);
/* MACROS */
#endif /* __DIRENT_H_INCLUDED__ */
/* EOF */

58
posix/include/dlfcn.h Normal file
View File

@@ -0,0 +1,58 @@
/* $Id: dlfcn.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* dlfcn.h
*
* dynamic linking. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __DLFCN_H_INCLUDED__
#define __DLFCN_H_INCLUDED__
/* INCLUDES */
/* TYPES */
/* CONSTANTS */
#define RTLD_LAZY (0x00000000) /* Relocations are performed at an \
implementation-dependent time. */
#define RTLD_NOW (0x00000001) /* Relocations are performed when \
the object is loaded. */
#define RTLD_GLOBAL (0x00000010) /* All symbols are available for \
relocation processing of other \
modules. */
#define RTLD_LOCAL (0x00000020) /* All symbols are not made available \
for relocation processing by other \
modules. */
#define RTLD_NEXT ((void *)(-1))
/* PROTOTYPES */
void *dlopen(const char *, int);
void *dlsym(void *, const char *);
int dlclose(void *);
char *dlerror(void);
/* MACROS */
#endif /* __DLFCN_H_INCLUDED__ */
/* EOF */

123
posix/include/errno.h Normal file
View File

@@ -0,0 +1,123 @@
/* $Id: errno.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* errno.h
*
* system error numbers. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __ERRNO_H_INCLUDED__
#define __ERRNO_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
#define E2BIG ( 1) /* Argument list too long. */
#define EACCES ( 2) /* Permission denied. */
#define EADDRINUSE ( 3) /* Address in use. */
#define EADDRNOTAVAIL ( 4) /* Address not available. */
#define EAFNOSUPPORT ( 5) /* Address family not supported. */
#define EAGAIN ( 6) /* Resource unavailable, try again */
#define EALREADY ( 7) /* Connection already in progress. */
#define EBADF ( 8) /* Bad file descriptor. */
#define EBADMSG ( 9) /* Bad message. */
#define EBUSY (10) /* Device or resource busy. */
#define ECANCELED (11) /* Operation canceled. */
#define ECHILD (12) /* No child processes. */
#define ECONNABORTED (13) /* Connection aborted. */
#define ECONNREFUSED (14) /* Connection refused. */
#define ECONNRESET (15) /* Connection reset. */
#define EDEADLK (16) /* Resource deadlock would occur. */
#define EDESTADDRREQ (17) /* Destination address required. */
#define EDOM (18) /* Mathematics argument out of domain of function. */
#define EDQUOT (19) /* Reserved. */
#define EEXIST (20) /* File exists. */
#define EFAULT (21) /* Bad address. */
#define EFBIG (22) /* File too large. */
#define EHOSTUNREACH (23) /* Host is unreachable. */
#define EIDRM (24) /* Identifier removed. */
#define EILSEQ (25) /* Illegal byte sequence. */
#define EINPROGRESS (26) /* Operation in progress. */
#define EINTR (27) /* Interrupted function. */
#define EINVAL (28) /* Invalid argument. */
#define EIO (29) /* I/O error. */
#define EISCONN (30) /* Socket is connected. */
#define EISDIR (31) /* Is a directory. */
#define ELOOP (32) /* Too many levels of symbolic links. */
#define EMFILE (33) /* Too many open files. */
#define EMLINK (34) /* Too many links. */
#define EMSGSIZE (35) /* Message too large. */
#define EMULTIHOP (36) /* Reserved. */
#define ENAMETOOLONG (37) /* Filename too long. */
#define ENETDOWN (38) /* Network is down. */
#define ENETUNREACH (39) /* Network unreachable. */
#define ENFILE (40) /* Too many files open in system. */
#define ENOBUFS (41) /* No buffer space available. */
#define ENODATA (42) /* No message is available on the STREAM head read queue. */
#define ENODEV (43) /* No such device. */
#define ENOENT (44) /* No such file or directory. */
#define ENOEXEC (45) /* Executable file format error. */
#define ENOLCK (46) /* No locks available. */
#define ENOLINK (47) /* Reserved. */
#define ENOMEM (48) /* Not enough space. */
#define ENOMSG (49) /* No message of the desired type. */
#define ENOPROTOOPT (50) /* Protocol not available. */
#define ENOSPC (51) /* No space left on device. */
#define ENOSR (52) /* No STREAM resources. */
#define ENOSTR (53) /* Not a STREAM. */
#define ENOSYS (54) /* Function not supported. */
#define ENOTCONN (55) /* The socket is not connected. */
#define ENOTDIR (56) /* Not a directory. */
#define ENOTEMPTY (57) /* Directory not empty. */
#define ENOTSOCK (58) /* Not a socket. */
#define ENOTSUP (59) /* Not supported. */
#define ENOTTY (60) /* Inappropriate I/O control operation. */
#define ENXIO (61) /* No such device or address. */
#define EOPNOTSUPP (62) /* Operation not supported on socket. */
#define EOVERFLOW (63) /* Value too large to be stored in data type. */
#define EPERM (64) /* Operation not permitted. */
#define EPIPE (65) /* Broken pipe. */
#define EPROTO (66) /* Protocol error. */
#define EPROTONOSUPPORT (67) /* Protocol not supported. */
#define EPROTOTYPE (68) /* Socket type not supported. */
#define ERANGE (69) /* Result too large. */
#define EROFS (70) /* Read-only file system. */
#define ESPIPE (71) /* Invalid seek. */
#define ESRCH (72) /* No such process. */
#define ESTALE (73) /* Reserved. */
#define ETIME (74) /* Streamioctl()timeout. */
#define ETIMEDOUT (75) /* Connection timed out. */
#define ETXTBSY (76) /* Text file busy. */
#define EWOULDBLOCK (77) /* Operation would block */
#define EXDEV (78) /* Cross-device link. */
/* PROTOTYPES */
int * __PdxGetThreadErrNum(void); /* returns a pointer to the current thread's errno */
/* MACROS */
#define errno (*__PdxGetThreadErrNum())
#endif /* __ERRNO_H_INCLUDED__ */
/* EOF */

149
posix/include/fcntl.h Normal file
View File

@@ -0,0 +1,149 @@
/* $Id: fcntl.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* fcntl.h
*
* file control options. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __FCNTL_H_INCLUDED__
#define __FCNTL_H_INCLUDED__
/* INCLUDES */
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
/* OBJECTS */
/* TYPES */
/*
the structure flock describes a file lock
*/
struct flock
{
short l_type; /* type of lock; F_RDLCK, F_WRLCK, F_UNLCK */
short l_whence; /* flag for starting offset */
off_t l_start; /* relative offset in bytes */
off_t l_len; /* size; if 0 then until EOF */
pid_t l_pid; /* process ID of the process holding the lock;
returned with F_GETLK */
};
/* CONSTANTS */
/*
values for cmd used by fcntl()
*/
enum __fcntl_cmd
{
F_DUPFD, /* duplicate file descriptor */
F_GETFD, /* get file descriptor flags */
F_SETFD, /* set file descriptor flags */
F_GETFL, /* get file status flags and file access modes */
F_SETFL, /* Set file status flags */
F_GETLK, /* get record locking information */
F_SETLK, /* set record locking information */
F_SETLKW, /* set record locking information; wait if blocked */
/* ReactOS-specific */
F_NEWFD, /* create new file descriptor */
F_DELFD, /* delete file descriptor */
F_GETALL, /* get a copy of the internal descriptor object */
F_SETALL, /* initialize internal descriptor object */
F_GETXP, /* get file descriptor extra data pointer */
F_SETXP, /* set file descriptor extra data pointer */
F_GETXS, /* get file descriptor extra data size */
F_SETXS, /* set file descriptor extra data size */
F_GETFH, /* get file handle */
F_SETFH /* set file handle */
};
/*
file descriptor flags used for fcntl()
*/
/* Close the file descriptor upon execution of an exec family function. */
#define FD_CLOEXEC (0x00000001)
/*
values for l_type used for record locking with fcntl()
*/
/* Shared or read lock. */
#define F_RDLCK (1)
/* Unlock. */
#define F_UNLCK (2)
/* Exclusive or write lock. */
#define F_WRLCK (3)
/*
file flags used for open()
*/
/* Create file if it does not exist. */
#define O_CREAT (0x00000001)
/* Exclusive use flag. */
#define O_EXCL (0x00000002)
/* Do not assign controlling terminal. */
#define O_NOCTTY (0x00000004)
/* Truncate flag. */
#define O_TRUNC (0x00000008)
/* ReactOS-specific */
/* File must be a directory */
#define _O_DIRFILE (0x00000010)
/*
file status flags used for open() and fcntl()
*/
/* Set append mode. */
#define O_APPEND (0x00000100)
/* Write according to synchronised I/O data integrity completion. */
#define O_DSYNC (0x00000200)
/* Non-blocking mode. */
#define O_NONBLOCK (0x00000400)
/* Synchronised read I/O operations. */
#define O_RSYNC (0x00000800)
/* Write according to synchronised I/O file integrity completion. */
#define O_SYNC (0x00001000)
/*
file access modes used for open() and fcntl()
*/
/* Open for reading only. */
#define O_RDONLY (0x01000000)
/* Open for reading and writing. */
#define O_RDWR (0x02000000)
/* Open for writing only. */
#define O_WRONLY (0x04000000)
/*
mask for use with file access modes
*/
#define O_ACCMODE (O_RDONLY | O_RDWR | O_WRONLY)
/* PROTOTYPES */
int creat(const char *, mode_t);
int fcntl(int, int, ...);
int open(const char *, int, ...);
int _Wcreat(const wchar_t *, mode_t);
int _Wopen(const wchar_t *, int, ...);
/* MACROS */
#endif /* __FCNTL_H_INCLUDED__ */
/* EOF */

93
posix/include/fmtmsg.h Normal file
View File

@@ -0,0 +1,93 @@
/* $Id: fmtmsg.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* fmtmsg.h
*
* message display structures. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __FMTMSG_H_INCLUDED__
#define __FMTMSG_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* Major Classifications */
/* NOTE: these are unique values, not flags. Their bits can overlap, but
cannot overlap with those of other categories */
#define MM_HARD (0x00000001) /* Source of the condition is hardware. */
#define MM_SOFT (0x00000002) /* Source of the condition is software. */
#define MM_FIRM (0x00000003) /* Source of the condition is firmware. */
/* Message Source Subclassifications */
/* NOTE: these are unique values, not flags. Their bits can overlap, but
cannot overlap with those of other categories */
#define MM_APPL (0x00000010) /* Condition detected by application. */
#define MM_UTIL (0x00000020) /* Condition detected by utility. */
#define MM_OPSYS (0x00000030) /* Condition detected by operating system. */
/* Status Subclassifications */
/* NOTE: these are unique values, not flags. Their bits can overlap, but
cannot overlap with those of other categories */
#define MM_RECOVER (0x00000100) /* Recoverable error. */
#define MM_NRECOV (0x00000200) /* Non-recoverable error. */
/* Display Subclassifications */
/* NOTE: these, unlike other classification constants, are flags. Their
bits must be distinct */
#define MM_PRINT (0x00001000) /* Display message on standard error. */
#define MM_CONSOLE (0x00002000) /* Display message on system console. */
/* Identifiers for the levels of severity */
#define MM_NOSEV (0) /* No severity level provided for the message. */
#define MM_INFO (1) /* Informative message. */
#define MM_WARNING (2) /* Application has detected unusual non-error \
condition. */
#define MM_ERROR (3) /* Application has encountered a non-fatal fault. */
#define MM_HALT (4) /* Error causing application to halt. */
/* Null values and identifiers */
#define MM_NULLLBL ((char *)0) /* Null label */
#define MM_NULLSEV (0) /* Null severity */
#define MM_NULLMC (0L) /* Null class */
#define MM_NULLTXT ((char *)0) /* Null text */
#define MM_NULLACT ((char *)0) /* Null action */
#define MM_NULLTAG ((char *)0) /* Null tag */
/* Return values */
#define MM_OK ( 0) /* The function succeeded. */
#define MM_NOTOK (-1) /* The function failed completely. */
#define MM_NOMSG (-2) /* The function was unable to generate a message on \
standard error, but otherwise succeeded. */
#define MM_NOCON (-3) /* The function was unable to generate a console \
message, but otherwise succeeded. */
/* PROTOTYPES */
int fmtmsg(long, const char*, int, const char*, const char*, const char*);
/* MACROS */
#endif /* __FMTMSG_H_INCLUDED__ */
/* EOF */

66
posix/include/fnmatch.h Normal file
View File

@@ -0,0 +1,66 @@
/* $Id: fnmatch.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* fnmatch.h
*
* filename-matching types. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __FNMATCH_H_INCLUDED__
#define __FNMATCH_H_INCLUDED__
/* INCLUDES */
#ifdef __PSXDLL__
/* headers for internal usage by psxdll.dll and ReactOS */
#else /* ! __PSXDLL__ */
/* standard POSIX headers */
#endif
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* Flags */
#define FNM_PATHNAME (0x00000001) /* Slash in string only matches slash \
in pattern. */
#define FNM_PERIOD (0x00000002) /* Leading period in string must be \
exactly matched by period in \
pattern. */
#define FNM_NOESCAPE (0x00000004) /* Disable backslash escaping. */
/* Return values */
#define FNM_NOMATCH (1) /* The string does not match the specified \
pattern. */
#define FNM_NOSYS (2) /* The implementation does not support this \
function. */
/* PROTOTYPES */
int fnmatch(const char *, const char *, int);
/* MACROS */
#endif /* __FNMATCH_H_INCLUDED__ */
/* EOF */

73
posix/include/ftw.h Normal file
View File

@@ -0,0 +1,73 @@
/* $Id: ftw.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* ftw.h
*
* file tree traversal. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __FTW_H_INCLUDED__
#define __FTW_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
struct FTW
{
int base;
int level;
};
/* CONSTANTS */
/* Values of the third argument to the application-supplied function
that is passed as the second argument to ftw() and nftw() */
#define FTW_F (1) /* File. */
#define FTW_D (2) /* Directory. */
#define FTW_DNR (3) /* Directory without read permission. */
#define FTW_DP (4) /* Directory with subdirectories visited. */
#define FTW_NS (5) /* Unknown type, stat() failed. */
#define FTW_SL (6) /* Symbolic link. */
#define FTW_SLN (7) /* Symbolic link that names a non-existent file. */
/* Values of the fourth argument to nftw() */
#define FTW_PHYS (0x00000001) /* Physical walk, does not follow symbolic \
links. Otherwise, nftw() will follow \
links but will not walk down any path \
that crosses itself. */
#define FTW_MOUNT (0x00000002) /* The walk will not cross a mount point. */
#define FTW_DEPTH (0x00000004) /* All subdirectories will be visited before \
the directory itself. */
#define FTW_CHDIR (0x00000008) /* The walk will change to each directory \
before reading it. */
/* PROTOTYPES */
int ftw(const char *,
int (*)(const char *, const struct stat *, int), int);
int nftw(const char *, int (*)
(const char *, const struct stat *, int, struct FTW*),
int, int);
/* MACROS */
#endif /* __FTW_H_INCLUDED__ */
/* EOF */

73
posix/include/glob.h Normal file
View File

@@ -0,0 +1,73 @@
/* $Id: glob.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* glob.h
*
* pathname pattern-matching types. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __GLOB_H_INCLUDED__
#define __GLOB_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
typedef struct __tagglob_t
{
size_t gl_pathc; /* count of paths matched by pattern */
char **gl_pathv; /* pointer to a list of matched pathnames */
size_t gl_offs; /* slots to reserve at the beginning of gl_pathv */
} glob_t;
/* CONSTANTS */
/* Values for the flags argument */
#define GLOB_APPEND (0x00000001) /* Append generated pathnames to \
those previously obtained. */
#define GLOB_DOOFFS (0x00000002) /* Specify how many null pointers to \
add to the beginning of */
#define GLOB_ERR (0x00000004) /* Cause glob() to return on error. */
#define GLOB_MARK (0x00000008) /* Each pathname that is a directory \
that matches pattern has a slash \
appended. */
#define GLOB_NOCHECK (0x00000010) /* If pattern does not match any pathname, \
then return a list consisting of only \
pattern. */
#define GLOB_NOESCAPE (0x00000020) /* Disable backslash escaping. */
#define GLOB_NOSORT (0x00000040) /* Do not sort the pathnames returned. */
/* Error return values */
#define GLOB_ABORTED (-1) /* The scan was stopped because GLOB_ERR was set \
or errfunc returned non-zero. */
#define GLOB_NOMATCH (-2) /* The pattern does not match any existing pathname, \
and GLOB_NOCHECK was not set in flags. */
#define GLOB_NOSPACE (-3) /* An attempt to allocate memory failed. */
#define GLOB_NOSYS (-4) /* The implementation does not support this function. */
/* PROTOTYPES */
int glob(const char *, int, int (*)(const char *, int), glob_t *);
void globfree (glob_t *);
/* MACROS */
#endif /* __GLOB_H_INCLUDED__ */
/* EOF */

59
posix/include/grp.h Normal file
View File

@@ -0,0 +1,59 @@
/* $Id: grp.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* grp.h
*
* group structure. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __GRP_H_INCLUDED__
#define __GRP_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
struct group
{
char *gr_name; /* the name of the group */
gid_t gr_gid; /* numerical group ID */
char **gr_mem; /* pointer to a null-terminated array of character
pointers to member names */
};
/* CONSTANTS */
/* PROTOTYPES */
struct group *getgrgid(gid_t);
struct group *getgrnam(const char *);
int getgrgid_r(gid_t, struct group *, char *,
size_t, struct group **);
int getgrnam_r(const char *, struct group *, char *,
size_t , struct group **);
struct group *getgrent(void);
void endgrent(void);
void setgrent(void);
/* MACROS */
#endif /* __GRP_H_INCLUDED__ */
/* EOF */

47
posix/include/iconv.h Normal file
View File

@@ -0,0 +1,47 @@
/* $Id: iconv.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* iconv.h
*
* codeset conversion facility. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __ICONV_H_INCLUDED__
#define __ICONV_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
typedef (void *) iconv_t;
/* CONSTANTS */
/* PROTOTYPES */
iconv_t iconv_open(const char *, const char *);
size_t iconv(iconv_t, char **, size_t *, char **, size_t *);
int iconv_close(iconv_t);
/* MACROS */
#endif /* __ICONV_H_INCLUDED__ */
/* EOF */

60
posix/include/inttypes.h Normal file
View File

@@ -0,0 +1,60 @@
/* $Id: inttypes.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* inttypes.h
*
* fixed size integral types. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __INTTYPES_H_INCLUDED__
#define __INTTYPES_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* signed */
typedef signed char int8_t; /* 8-bit signed integral type. */
typedef signed short int int16_t; /* 16-bit signed integral type. */
typedef signed long int int32_t; /* 32-bit signed integral type. */
typedef signed long long int64_t; /* 64-bit signed integral type. */
/* unsigned */
typedef unsigned char uint8_t; /* 8-bit unsigned integral type. */
typedef unsigned short int uint16_t; /* 16-bit unsigned integral type. */
typedef unsigned long int uint32_t; /* 32-bit unsigned integral type. */
typedef unsigned long long uint64_t; /* 64-bit unsigned integral type. */
/* pointer-sized */
typedef signed long int intptr_t; /* Signed integral type large enough
to hold any pointer. */
typedef unsigned long int uintptr_t; /* Unsigned integral type large
enough to hold any pointer. */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __INTTYPES_H_INCLUDED__ */
/* EOF */

54
posix/include/iso646.h Normal file
View File

@@ -0,0 +1,54 @@
/* $Id: iso646.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* iso646.h
*
* alternative spellings. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __ISO646_H_INCLUDED__
#define __ISO646_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#define and &&
#define and_eq &=
#define bitand &
#define bitor |
#define compl ~
#define not !
#define not_eq !=
#define or ||
#define or_eq |=
#define xor ^
#define xor_eq ^=
#endif /* __ISO646_H_INCLUDED__ */
/* EOF */

52
posix/include/libgen.h Normal file
View File

@@ -0,0 +1,52 @@
/* $Id: libgen.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* libgen.h
*
* definitions for pattern matching functions. Conforming to the Single
* UNIX(r) Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __LIBGEN_H_INCLUDED__
#define __LIBGEN_H_INCLUDED__
/* INCLUDES */
#include <stddef.h>
/* OBJECTS */
extern char *__loc1; /* LEGACY */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
char *basename(char *);
char *dirname(char *);
char *regcmp(const char *, ...); /* LEGACY */
char *regex(const char *, const char *, ...); /* LEGACY */
wchar_t *_Wbasename(wchar_t *);
wchar_t *_Wdirname(wchar_t *);
/* MACROS */
#endif /* __LIBGEN_H_INCLUDED__ */
/* EOF */

45
posix/include/limits.h Normal file
View File

@@ -0,0 +1,45 @@
/* $Id: limits.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* limits.h
*
* implementation-dependent constants. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __LIMITS_H_INCLUDED__
#define __LIMITS_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* TODO */
#define OPEN_MAX (256)
/* PROTOTYPES */
/* MACROS */
#endif /* __LIMITS_H_INCLUDED__ */
/* EOF */

65
posix/include/math.h Normal file
View File

@@ -0,0 +1,65 @@
/* $Id: math.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* math.h
*
* mathematical declarations. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __MATH_H_INCLUDED__
#define __MATH_H_INCLUDED__
/* INCLUDES */
#ifdef __PSXDLL__
/* headers for internal usage by psxdll.dll and ReactOS */
#else /* ! __PSXDLL__ */
/* standard POSIX headers */
#endif
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
#define M_E ((double) 2.7182818285) /* Value of e */
#define M_LOG2E ((double) 1.4426950419) /* Value of log2(e) */
#define M_LOG10E ((double) 0.4342944819) /* Value of log10(e) */
#define M_LN2 ((double)-0.6931471806) /* Value of loge2 */
#define M_LN10 ((double) 2.3025850929) /* Value of loge10 */
#define M_PI ((double) 3.1415926536) /* Value of Pi */
#define M_PI_2 ((double) 1.5707963268) /* Value of Pi/2 */
#define M_PI_4 ((double) 0.7853981634) /* Value of Pi/4 */
#define M_1_PI ((double) 0.3183098862) /* Value of 1/Pi */
#define M_2_PI ((double) 0.6366197724) /* Value of 2/Pi */
#define M_2_SQRTPI ((double) 1.1283791671) /* Value of 2/Sqrt(Pi) */
#define M_SQRT2 ((double) 1.4142135624) /* Value of Sqrt(2) */
#define M_SQRT1_2 ((double) 0.7071067812) /* Value of Sqrt(1/2) */
/* PROTOTYPES */
/* MACROS */
#endif /* __MATH_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,43 @@
/* $Id: in.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* netinet/in.h
*
* Internet Protocol family. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NETINET_IN_H_INCLUDED__
#define __NETINET_IN_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __NETINET_IN_H_INCLUDED__ */
/* EOF */

146
posix/include/psx/debug.h Normal file
View File

@@ -0,0 +1,146 @@
/* $Id: debug.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/debug.h
*
* debugging utilities
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_DEBUG_H_INCLUDED__
#define __PSX_DEBUG_H_INCLUDED__
/* INCLUDES */
#ifdef __PSX_DEBUG_TO_STDERR__
#include <stdio.h>
#else /* !defined(__PSX_DEBUG_TO_STDERR__) */
#include <ddk/ntddk.h>
#endif /* defined(__PSX_DEBUG_TO_STDERR__) */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#define __PSX_MODULE__ "psxdll.dll"
#ifndef NDEBUG
#ifdef __PSX_DEBUG_TO_STDERR__
#if 0
#define DEBUGOUT(MODULE,TYPE,ARGS...) \
do{ \
fprintf(stderr,"%s:%s:%s:%d:%s():\n\t",(MODULE),(TYPE),__FILE__,__LINE__,__FUNCTION__); \
fprintf(stderr,ARGS); \
fprintf("\n"); \
} \
while(0)
#endif
#define DEBUGOUT(MODULE,TYPE,ARGS...) \
do{ \
printf("%s:%s:%s:%d:%s():\n\t",(MODULE),(TYPE),__FILE__,__LINE__,__FUNCTION__); \
printf(ARGS); \
printf("\n"); \
} \
while(0)
#else /* !defined(__PSX_DEBUG_TO_STDERR__) */
#define DEBUGOUT(MODULE,TYPE,ARGS...) \
do{ \
DbgPrint("%s:%s:%s:%d:%s():\n\t",(MODULE),(TYPE),__FILE__,__LINE__,__FUNCTION__); \
DbgPrint(ARGS); \
DbgPrint("\n"); \
} \
while(0)
#endif /* defined(__PSX_DEBUG_TO_STDERR__) */
#define DEBUGOUTIF(CONDITION,MODULE,TYPE,ARGS...) \
if((CONDITION)) \
{ \
DEBUGOUT((MODULE),(TYPE),ARGS); \
}
#else /* defined(NDEBUG) */
#define DEBUGOUTIF(c,m,t,args...)
#define DEBUGOUT(m,t,args...)
#endif /* !defined(NDEBUG) */
#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_HINTS__)
#define HINT(args...) DEBUGOUT(__PSX_MODULE__,"HINT",args)
#define HINTIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"HINT",args)
#else
#define HINT(args...)
#define HINTIF(c,args...)
#endif
#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_INFOS__)
#define INFO(args...) DEBUGOUT(__PSX_MODULE__,"INFO",args)
#define INFOIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"INFO",args)
#else
#define INFO(args...)
#define INFOIF(c,args...)
#endif
#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_WARNS__)
#define WARN(args...) DEBUGOUT(__PSX_MODULE__,"WARN",args)
#define WARNIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"WARN",args)
#else
#define WARN(args...)
#define WARNIF(c,args...)
#endif
#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_ERRS__)
#define ERR(args...) DEBUGOUT(__PSX_MODULE__,"ERR",args)
#define ERRIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"ERR",args)
#else
#define ERR(args...)
#define ERRIF(c,args...)
#endif
#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_TODOS__)
#define TODO(args...) DEBUGOUT(__PSX_MODULE__,"TODO",args)
#define TODOIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"TODO",args)
#else
#define TODO(args...)
#define TODOIF(c,args...)
#endif
#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_FIXMES__)
#define FIXME(args...) DEBUGOUT(__PSX_MODULE__,"FIXME",args)
#define FIXMEIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"FIXME",args)
#else
#define FIXME(args...)
#define FIXMEIF(c,args...)
#endif
#endif /* __PSX_DEBUG_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,57 @@
/* $Id: dirent.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/dirent.h
*
* internal dirent.h
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_DIRENT_H_INCLUDED__
#define __PSX_DIRENT_H_INCLUDED__
/* INCLUDES */
#include <ddk/ntddk.h>
#include <dirent.h>
#include <psx/safeobj.h>
/* OBJECTS */
/* TYPES */
struct __internal_DIR
{
__magic_t signature; /* signature to verify object's validity across calls */
union __any_dirent{
struct dirent de_ansi;
struct _Wdirent de_unicode;
} ent; /* storage for return buffer of readdir() */
int fildes; /* file descriptor of the directory */
FILE_DIRECTORY_INFORMATION info; /* directory entry information */
WCHAR name[MAX_PATH]; /* filename buffer */
};
/* CONSTANTS */
#define __IDIR_MAGIC MAGIC('I', 'D', 'I', 'R')
/* PROTOTYPES */
/* MACROS */
#endif /* __PSX_DIRENT_H_INCLUDED__ */
/* EOF */

53
posix/include/psx/dlfcn.h Normal file
View File

@@ -0,0 +1,53 @@
/* $Id: dlfcn.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/dlfcn.h
*
* internal dlfcn.h
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_DLFCN_H_INCLUDED__
#define __PSX_DLFCN_H_INCLUDED__
/* INCLUDES */
#include <psx/errno.h>
/* OBJECTS */
/* TYPES */
/* internal representation for loaded DLLs */
/* TODO: get rid of this. The handle should be enough, with a proper PE loader */
struct __dlobj
{
int global; /* if non-zero, all the other fields have no meaning */
void *handle; /* pointer to the module mapping */
};
/* CONSTANTS */
/* PROTOTYPES */
void __dl_set_last_error(int);
/* MACROS */
#define __dl_get_reloc_flag(m) ((m) & (RTLD_LAZY | RTLD_NOW))
#define __dl_get_scope_flag(m) ((m) & (RTLD_GLOBAL | RTLD_LOCAL))
#endif /* __PSX_DLFCN_H_INCLUDED__ */
/* EOF */

45
posix/include/psx/errno.h Normal file
View File

@@ -0,0 +1,45 @@
/* $Id: errno.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/errno.h
*
* internal errno.h
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_ERRNO_H_INCLUDED__
#define __PSX_ERRNO_H_INCLUDED__
/* INCLUDES */
#include <errno.h>
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#define __status_to_errno(s) (s)
#define __set_errno_from_status(s) (errno = __status_to_errno((s)))
#endif /* __PSX_ERRNO_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,72 @@
/* $Id: fdtable.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/fdtable.h
*
* POSIX+ subsystem file descriptor table data structure
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_FDTABLE_H_INCLUDED__
#define __PSX_FDTABLE_H_INCLUDED__
/* INCLUDES */
#include <limits.h>
#include <inttypes.h>
#include <psx/safeobj.h>
/* OBJECTS */
/* TYPES */
typedef struct __tagfildes_t
{
void *FileHandle;
int OpenFlags;
int FdFlags;
size_t ExtraDataSize;
void *ExtraData;
} __fildes_t;
typedef struct __tagfdtable_t
{
__magic_t Signature;
int32_t LowestUnusedFileNo;
int32_t UsedDescriptors;
int32_t AllocatedDescriptors;
uint32_t DescriptorsBitmap[OPEN_MAX / 32];
__fildes_t *Descriptors;
} __fdtable_t;
/* CONSTANTS */
/* PROTOTYPES */
int __fdtable_init(__fdtable_t *);
int __fdtable_free(__fdtable_t *);
int __fdtable_entry_isavail(__fdtable_t *, int);
int __fdtable_entry_nextavail(__fdtable_t *, int);
int __fdtable_entry_add(__fdtable_t *, int, __fildes_t *, __fildes_t **);
int __fdtable_entry_remove(__fdtable_t *, int);
__fildes_t *__fdtable_entry_get(__fdtable_t *, int);
/* MACROS */
#define __FDTABLE_MAGIC MAGIC('F', 'D', 'T', 'B')
#endif /* __PSX_FDTABLE_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,45 @@
/* $Id: interlock.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/interlock.h
*
* inter-locked increment/decrement
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_INTERLOCK_H_INCLUDED__
#define __PSX_INTERLOCK_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
int __interlock_inc(int *);
int __interlock_dec(int *);
int __interlock_add(int *, int);
/* MACROS */
#endif /* __PSX_INTERLOCK_H_INCLUDED__ */
/* EOF */

112
posix/include/psx/path.h Normal file
View File

@@ -0,0 +1,112 @@
/* $Id: path.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/path.h
*
* POSIX+ subsystem path functions
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_PATH_H_INCLUDED__
#define __PSX_PATH_H_INCLUDED__
/* INCLUDES */
#include <ddk/ntddk.h>
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
BOOLEAN
__PdxPosixPathGetNextComponent_U
(
IN UNICODE_STRING PathName,
IN OUT PUNICODE_STRING PathComponent,
OUT PBOOLEAN TrailingDelimiter OPTIONAL
);
BOOLEAN
__PdxPosixPathResolve_U
(
IN UNICODE_STRING PathName,
OUT PUNICODE_STRING ResolvedPathName,
IN WCHAR PathDelimiter OPTIONAL
);
BOOLEAN
__PdxPosixPathGetNextComponent_A
(
IN ANSI_STRING PathName,
IN OUT PANSI_STRING PathComponent,
OUT PBOOLEAN TrailingDelimiter OPTIONAL
);
BOOLEAN
__PdxPosixPathResolve_A
(
IN ANSI_STRING PathName,
OUT PANSI_STRING ResolvedPathName,
IN CHAR PathDelimiter OPTIONAL
);
BOOLEAN
__PdxPosixPathNameToNtPathName
(
IN PWCHAR PosixPath,
OUT PUNICODE_STRING NativePath,
IN PUNICODE_STRING CurDir OPTIONAL,
IN PUNICODE_STRING RootDir OPTIONAL
);
/* MACROS */
/* returns non-zero if the argument is a path delimiter */
#define IS_CHAR_DELIMITER_U(WCH) (((WCH) == L'/') || ((WCH) == L'\\'))
#define IS_CHAR_DELIMITER_A(CH) (((CH) == '/') || ((CH) == '\\'))
/* returns non-zero if the argument is an empty path component */
#define IS_COMPONENT_EMPTY_U(WCOMPONENT) (WCOMPONENT.Length == 0)
#define IS_COMPONENT_EMPTY_A(COMPONENT) (COMPONENT.Length == 0)
/* returns non-zero if the argument is "." */
#define IS_COMPONENT_DOT_U(WCOMPONENT) \
((WCOMPONENT.Length == sizeof(WCHAR)) && (WCOMPONENT.Buffer[0] == L'.'))
#define IS_COMPONENT_DOT_A(COMPONENT) \
((COMPONENT.Length == 1) && (COMPONENT.Buffer[0] == '.'))
/* returns non-zero if the argument is ".." */
#define IS_COMPONENT_DOTDOT_U(WCOMPONENT) \
( \
(WCOMPONENT.Length == (sizeof(WCHAR) * 2)) && \
(WCOMPONENT.Buffer[0] == L'.') && \
(WCOMPONENT.Buffer[1] == L'.') \
)
#define IS_COMPONENT_DOTDOT_A(COMPONENT) \
( \
(COMPONENT.Length == 2) && \
(COMPONENT.Buffer[0] == '.') && \
(COMPONENT.Buffer[1] == '.') \
)
#endif /* __PSX_PATH_H_INCLUDED__ */
/* EOF */

71
posix/include/psx/pdata.h Normal file
View File

@@ -0,0 +1,71 @@
/* $Id: pdata.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/pdata.h
*
* POSIX+ subsystem process environment data structure
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_PDATA_H_INCLUDED__
#define __PSX_PDATA_H_INCLUDED__
/* INCLUDES */
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <limits.h>
#include <psx/fdtable.h>
/* OBJECTS */
/* TYPES */
typedef struct __tagPDX_PDATA
{
UNICODE_STRING NativePathBuffer;
UNICODE_STRING CurDir;
UNICODE_STRING RootPath;
HANDLE RootHandle;
__fdtable_t *FdTable;
} __PDX_PDATA, * __PPDX_PDATA;
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#define __PdxAcquirePdataLock() (RtlAcquirePebLock())
#define __PdxReleasePdataLock() (RtlReleasePebLock())
#define __PdxSetProcessData()(PPDATA) ((void)((NtCurrentPeb()->SubSystemData) = (PPDATA)))
#define __PdxGetProcessData() ((__PPDX_PDATA)(&(NtCurrentPeb()->SubSystemData)))
#define __PdxGetNativePathBuffer() ((PUNICODE_STRING)(&(__PdxGetProcessData()->NativePathBuffer)))
#define __PdxGetCurDir() ((PUNICODE_STRING)(&(__PdxGetProcessData()->CurDir)))
#define __PdxGetRootPath() ((PUNICODE_STRING)(&(__PdxGetProcessData()->RootPath)))
#define __PdxGetRootHandle() ((HANDLE)(__PdxGetProcessData()->RootHandle))
#define __PdxGetFdTable() ((__fdtable_t *)(__PdxGetProcessData()->FdTable))
#define __PdxSetNativePathBuffer(BUF) ((void)((__PdxGetProcessData()->NativePathBuffer) = (BUF)))
#define __PdxSetCurDir(CURDIR) ((void)((__PdxGetProcessData()->CurDir) = (CURDIR)))
#define __PdxSetRootPath(ROOTPATH) ((void)((__PdxGetProcessData()->RootPath) = (ROOTPATH)))
#define __PdxSetRootHandle(ROOTHANDLE) ((void)((__PdxGetProcessData()->RootHandle) = (ROOTHANDLE)))
#define __PdxSetFdTable(FDTABLE) ((void)((__PdxGetProcessData()->FdTable) = (FDTABLE)))
#endif /* __PSX_PDATA_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,61 @@
/* $Id: pthread.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/pthread.h
*
* internal pthread.h
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_PTHREAD_H_INCLUDED__
#define __PSX_PTHREAD_H_INCLUDED__
/* INCLUDES */
#include <psx/safeobj.h>
/* OBJECTS */
/* TYPES */
struct __mutexattr
{
__magic_t signature;
int pshared;
int protocol;
int type;
};
struct __mutex
{
__magic_t signature;
void * handle;
int protocol;
int type;
};
/* CONSTANTS */
#define __PTHREAD_MUTEX_MAGIC (MAGIC('P', 'T', 'M', 'X'))
#define __PTHREAD_MUTEX_ATTR_MAGIC (MAGIC('P', 'T', 'M', 'A'))
/* PROTOTYPES */
/* MACROS */
#endif /* __PSX_PTHREAD_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,59 @@
/* $Id: safeobj.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/safeobj.h
*
* types and definitions for safe checking of user-provided objects
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_SAFEOBJ_H_INCLUDED__
#define __PSX_SAFEOBJ_H_INCLUDED__
/* INCLUDES */
#include <inttypes.h>
/* OBJECTS */
/* TYPES */
typedef uint32_t __magic_t;
/* CONSTANTS */
/* PROTOTYPES */
int __safeobj_validate(void *, __magic_t);
/* MACROS */
/* builds a magic number from 4 characters */
#define MAGIC(a,b,c,d) ( \
(((uint32_t)(uint8_t)(a)) << 24) | \
(((uint32_t)(uint8_t)(b)) << 16) | \
(((uint32_t)(uint8_t)(c)) << 8) | \
(((uint32_t)(uint8_t)(d)) << 0) \
)
/* retrieves a comma-separated list of the 4 characters in a magic number */
#define MAGIC_DECOMPOSE(m) \
((uint8_t)(m >> 24)), \
((uint8_t)(m >> 16)), \
((uint8_t)(m >> 8)), \
((uint8_t)(m >> 0))
#endif /* __PSX_SAFEOBJ_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,51 @@
/* $Id: stdlib.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* psx/stdlib.h
*
* internal stdlib.h
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PSX_STDLIB_H_INCLUDED__
#define __PSX_STDLIB_H_INCLUDED__
/* INCLUDES */
#include <ddk/ntddk.h>
#include <ntos/heap.h>
#include <stdlib.h>
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
/* FIXME? Windows NT's ntdll doesn't export RtlGetProcessHeap() */
#define RtlGetProcessHeap() ((HANDLE)NtCurrentPeb()->ProcessHeap)
#define __malloc(SIZE) (RtlAllocateHeap(RtlGetProcessHeap(), 0, (SIZE)))
#define __realloc(PTR,SIZE) (RtlReAllocateHeap(RtlGetProcessHeap(), 0, (PTR), (SIZE)))
#define __free(PTR) (RtlFreeHeap(RtlGetProcessHeap(), 0, (PTR)))
#endif /* __PSX_STDLIB_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,83 @@
/* $Id: template.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
How to create a new header file from this template:
- copy the template in the new file (never edit this file directly, unless
that's what you want)
- search for the string "EDITME" in the file, and follow the instructions
- remove this comment block, all blocks containing DELETEME, and all EDITME
instructions
- save your file, and Have Fun! (TM)
*/
/* $ Id $ (EDITME: replace "$ Id $" with "$Id: template.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $")
*/
/*
* psx/template.h (EDITME: replace with the real name of the header)
*
* template for POSIX headers (EDITME: replace this line with the real file
* description)
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by John Doe <john.doe@mail.com> (EDITME: your name and e-mail go
* here)
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
/*
Tags are used to prevent double inclusion of C header files. This
technique should be documented in all good C manuals
How to generate an unique tag for your header:
- uppercase the name of the header, where "name" is the filename and
the optional relative path (e.g. "stdio.h", "sys/types.h")
- replace all non-alphanumeric characters in the obtained name with an
underscore character ("_")
- prepend a double underscore ("__"), and append the string "_INCLUDED__"
- replace all occurrences of "__PSX_TEMPLATE_H_INCLUDED__" in this file
with your tag
Example tags:
sys/types.h -> SYS/TYPES.H -> SYS_TYPES_H -> __SYS_TYPES_H_INCLUDED__
iso646.h -> ISO646.H -> ISO646_H -> __ISO646_H_INCLUDED__
(REMOVEME)
*/
#ifndef __PSX_TEMPLATE_H_INCLUDED__ /* EDITME: replace macro with unique tag */
#define __PSX_TEMPLATE_H_INCLUDED__ /* EDITME: replace macro with unique tag */
/*
Explanation of the sections:
INCLUDES #include directives should be grouped here
OBJECTS declare global variables here
TYPES types, structures and unions here
CONSTANTS symbolic constants (simple #define's), enums, constants
PROTOTYPES ANSI C function prototypes
MACROS parametrized macros
(REMOVEME)
*/
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __PSX_TEMPLATE_H_INCLUDED__ */ /* EDITME: replace macro with unique tag */
/* EOF */

141
posix/include/pthread.h Normal file
View File

@@ -0,0 +1,141 @@
/* $Id: pthread.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* pthread.h
*
* threads. Conforming to the Single UNIX(r) Specification Version 2,
* System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PTHREAD_H_INCLUDED__
#define __PTHREAD_H_INCLUDED__
/* INCLUDES */
#include <sched.h>
#include <time.h>
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
#define PTHREAD_MUTEX_NORMAL (1)
#define PTHREAD_MUTEX_ERRORCHECK (2)
#define PTHREAD_MUTEX_RECURSIVE (3)
#define PTHREAD_MUTEX_DEFAULT (PTHREAD_MUTEX_NORMAL)
#define PTHREAD_PROCESS_PRIVATE (1)
#define PTHREAD_PROCESS_SHARED (2)
#define PTHREAD_PRIO_NONE (1)
/* PROTOTYPES */
int pthread_attr_destroy(pthread_attr_t *);
int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
int pthread_attr_getguardsize(const pthread_attr_t *, size_t *);
int pthread_attr_getinheritsched(const pthread_attr_t *, int *);
int pthread_attr_getschedparam(const pthread_attr_t *,
struct sched_param *);
int pthread_attr_getschedpolicy(const pthread_attr_t *, int *);
int pthread_attr_getscope(const pthread_attr_t *, int *);
int pthread_attr_getstackaddr(const pthread_attr_t *, void **);
int pthread_attr_getstacksize(const pthread_attr_t *, size_t *);
int pthread_attr_init(pthread_attr_t *);
int pthread_attr_setdetachstate(pthread_attr_t *, int);
int pthread_attr_setguardsize(pthread_attr_t *, size_t);
int pthread_attr_setinheritsched(pthread_attr_t *, int);
int pthread_attr_setschedparam(pthread_attr_t *,
const struct sched_param *);
int pthread_attr_setschedpolicy(pthread_attr_t *, int);
int pthread_attr_setscope(pthread_attr_t *, int);
int pthread_attr_setstackaddr(pthread_attr_t *, void *);
int pthread_attr_setstacksize(pthread_attr_t *, size_t);
int pthread_cancel(pthread_t);
void pthread_cleanup_push(void (*)(void *), void *);
void pthread_cleanup_pop(int);
int pthread_cond_broadcast(pthread_cond_t *);
int pthread_cond_destroy(pthread_cond_t *);
int pthread_cond_init(pthread_cond_t *, const pthread_condattr_t *);
int pthread_cond_signal(pthread_cond_t *);
int pthread_cond_timedwait(pthread_cond_t *,
pthread_mutex_t *, const struct timespec *);
int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *);
int pthread_condattr_destroy(pthread_condattr_t *);
int pthread_condattr_getpshared(const pthread_condattr_t *, int *);
int pthread_condattr_init(pthread_condattr_t *);
int pthread_condattr_setpshared(pthread_condattr_t *, int);
int pthread_create(pthread_t *, const pthread_attr_t *,
void *(*)(void *), void *);
int pthread_detach(pthread_t);
int pthread_equal(pthread_t, pthread_t);
void pthread_exit(void *);
int pthread_getconcurrency(void);
int pthread_getschedparam(pthread_t, int *, struct sched_param *);
void *pthread_getspecific(pthread_key_t);
int pthread_join(pthread_t, void **);
int pthread_key_create(pthread_key_t *, void (*)(void *));
int pthread_key_delete(pthread_key_t);
int pthread_mutex_destroy(pthread_mutex_t *);
int pthread_mutex_getprioceiling(const pthread_mutex_t *, int *);
int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *);
int pthread_mutex_lock(pthread_mutex_t *);
int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *);
int pthread_mutex_trylock(pthread_mutex_t *);
int pthread_mutex_unlock(pthread_mutex_t *);
int pthread_mutexattr_destroy(pthread_mutexattr_t *);
int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *,
int *);
int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *, int *);
int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, int *);
int pthread_mutexattr_gettype(const pthread_mutexattr_t *, int *);
int pthread_mutexattr_init(pthread_mutexattr_t *);
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
int pthread_once(pthread_once_t *, void (*)(void));
int pthread_rwlock_destroy(pthread_rwlock_t *);
int pthread_rwlock_init(pthread_rwlock_t *,
const pthread_rwlockattr_t *);
int pthread_rwlock_rdlock(pthread_rwlock_t *);
int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
int pthread_rwlock_trywrlock(pthread_rwlock_t *);
int pthread_rwlock_unlock(pthread_rwlock_t *);
int pthread_rwlock_wrlock(pthread_rwlock_t *);
int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *,
int *);
int pthread_rwlockattr_init(pthread_rwlockattr_t *);
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
pthread_t
pthread_self(void);
int pthread_setcancelstate(int, int *);
int pthread_setcanceltype(int, int *);
int pthread_setconcurrency(int);
int pthread_setschedparam(pthread_t, int ,
const struct sched_param *);
int pthread_setspecific(pthread_key_t, const void *);
void pthread_testcancel(void);
/* MACROS */
#endif /* __PTHREAD_H_INCLUDED__ */
/* EOF */

60
posix/include/pwd.h Normal file
View File

@@ -0,0 +1,60 @@
/* $Id: pwd.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* pwd.h
*
* password structure. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __PWD_H_INCLUDED__
#define __PWD_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
struct passwd
{
char *pw_name; /* user's login name */
uid_t pw_uid; /* numerical user ID */
gid_t pw_gid; /* numerical group ID */
char *pw_dir; /* initial working directory */
char *pw_shell; /* program to use as shell */
};
/* CONSTANTS */
/* PROTOTYPES */
struct passwd *getpwnam(const char *);
struct passwd *getpwuid(uid_t);
int getpwnam_r(const char *, struct passwd *, char *,
size_t, struct passwd **);
int getpwuid_r(uid_t, struct passwd *, char *,
size_t, struct passwd **);
void endpwent(void);
struct passwd *getpwent(void);
void setpwent(void);
/* MACROS */
#endif /* __PWD_H_INCLUDED__ */
/* EOF */

62
posix/include/sched.h Normal file
View File

@@ -0,0 +1,62 @@
/* $Id: sched.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* sched.h
*
* execution scheduling (REALTIME). Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SCHED_H_INCLUDED__
#define __SCHED_H_INCLUDED__
/* INCLUDES */
#include <time.h>
/* OBJECTS */
/* TYPES */
struct sched_param
{
int sched_priority; /* process execution scheduling priority */
};
/* CONSTANTS */
/* First in-first out (FIFO) scheduling policy */
#define SCHED_FIFO (1)
/* Round robin scheduling policy */
#define SCHED_RR (2)
/* Another scheduling policy */
#define SCHED_OTHER (3)
/* PROTOTYPES */
int sched_get_priority_max(int);
int sched_get_priority_min(int);
int sched_getparam(pid_t, struct sched_param *);
int sched_getscheduler(pid_t);
int sched_rr_get_interval(pid_t, struct timespec *);
int sched_setparam(pid_t, const struct sched_param *);
int sched_setscheduler(pid_t, int, const struct sched_param *);
int sched_yield(void);
/* MACROS */
#endif /* __SCHED_H_INCLUDED__ */
/* EOF */

359
posix/include/signal.h Normal file
View File

@@ -0,0 +1,359 @@
/* $Id: signal.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* signal.h
*
* signals. Conforming to the Single UNIX(r) Specification Version 2,
* System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SIGNAL_H_INCLUDED__
#define __SIGNAL_H_INCLUDED__
/* INCLUDES */
#include <time.h>
#include <sys/types.h>
/* OBJECTS */
/* TYPES */
/* pre-declaration of time.h types to suppress warnings caused by circular
dependencies */
struct timespec;
typedef int sig_atomic_t; /* Integral type of an object that can be
accessed as an atomic entity, even in the
presence of asynchronous interrupts */ /* FIXME? */
typedef struct __tagsigset_t
{
int _dummy;
} sigset_t; /* Integral or structure type of an object used to represent
sets of signals. */ /* TODO */
union sigval
{
int sival_int; /* integer signal value */
void* sival_ptr; /* pointer signal value */
};
struct sigevent
{
int sigev_notify; /* notification type */
int sigev_signo; /* signal number */
union sigval sigev_value; /* signal value */
void (* sigev_notify_function)(union sigval); /* notification function */
pthread_attr_t * sigev_notify_attributes; /* notification attributes */
};
typedef struct __tagsiginfo_t
{
int si_signo; /* signal number */
int si_errno; /* if non-zero, an errno value associated with
this signal, as defined in <errno.h> */
int si_code; /* signal code */
pid_t si_pid; /* sending process ID */
uid_t si_uid; /* real user ID of sending process */
void *si_addr; /* address of faulting instruction */
int si_status; /* exit value or signal */
long si_band; /* band event for SIGPOLL */
union sigval si_value; /* signal value */
} siginfo_t;
struct sigaction
{
void (* sa_handler)(int); /* what to do on receipt of signal */
sigset_t sa_mask; /* set of signals to be blocked during
execution of the signal handling
function */
int sa_flags; /* special flags */
void (* sa_sigaction)(int, siginfo_t *, void *);
/* pointer to signal handler function
or one of the macros SIG_IGN or SIG_DFL */
};
typedef struct __tagstack_t
{
void *ss_sp; /* stack base or pointer */
size_t ss_size; /* stack size */
int ss_flags; /* flags */
} stack_t;
struct sigstack
{
int ss_onstack; /* non-zero when signal stack is in use */
void *ss_sp; /* signal stack pointer */
};
/* CONSTANTS */
/* Request for default signal handling. */
#define SIG_DFL ((void (*)(int))(0))
/* Return value from signal() in case of error. */
#define SIG_ERR ((void (*)(int))(1))
/* Request that signal be held. */
#define SIG_HOLD ((void (*)(int))(2))
/* Request that signal be ignored. */
#define SIG_IGN ((void (*)(int))(3))
/* No asynchronous notification will be delivered when the event of
interest occurs. */
#define SIGEV_NONE (0)
/* A queued signal, with an application-defined value, will be generated
when the event of interest occurs. */
#define SIGEV_SIGNAL (1)
/* A notification function will be called to perform notification. */
#define SIGEV_THREAD (2)
/* TODO: realtime features not supported yet */
#define SIGRTMIN (-1)
#define SIGRTMAX (-1)
/* Process abort signal. */
#define SIGABRT ( 1)
/* Alarm clock. */
#define SIGALRM ( 2)
/* Erroneous arithmetic operation. */
#define SIGFPE ( 3)
/* Hangup. */
#define SIGHUP ( 4)
/* Illegal instruction. */
#define SIGILL ( 5)
/* Terminal interrupt signal. */
#define SIGINT ( 6)
/* Kill (cannot be caught or ignored). */
#define SIGKILL ( 7)
/* Write on a pipe with no one to read it. */
#define SIGPIPE ( 8)
/* Terminal quit signal. */
#define SIGQUIT ( 9)
/* Invalid memory reference. */
#define SIGSEGV (10)
/* Termination signal. */
#define SIGTERM (11)
/* User-defined signal 1. */
#define SIGUSR1 (12)
/* User-defined signal 2. */
#define SIGUSR2 (13)
/* Child process terminated or stopped. */
#define SIGCHLD (14)
/* Continue executing, if stopped. */
#define SIGCONT (15)
/* Stop executing (cannot be caught or ignored). */
#define SIGSTOP (16)
/* Terminal stop signal. */
#define SIGTSTP (17)
/* Background process attempting read. */
#define SIGTTIN (18)
/* Background process attempting write. */
#define SIGTTOU (19)
/* Access to an undefined portion of a memory object. */
#define SIGBUS (20)
/* Pollable event. */
#define SIGPOLL (21)
/* Profiling timer expired. */
#define SIGPROF (22)
/* Bad system call. */
#define SIGSYS (23)
/* Trace/breakpoint trap. */
#define SIGTRAP (24)
/* High bandwidth data is available at a socket. */
#define SIGURG (25)
/* Virtual timer expired. */
#define SIGVTALRM (26)
/* CPU time limit exceeded. */
#define SIGXCPU (27)
/* File size limit exceeded. */
#define SIGXFSZ (28)
/* FIXME: the following constants need to be reviewed */
/* Do not generate SIGCHLD when children stop. */
#define SA_NOCLDSTOP (0x00000001)
/* The resulting set is the union of the current set and the signal set
pointed to by the argument set. */
#define SA_ONSTACK (0x00000002)
/* Causes signal dispositions to be set to SIG_DFL on entry to signal
handlers. */
#define SA_RESETHAND (0x00000004)
/* Causes certain functions to become restartable. */
#define SA_RESTART (0x00000008)
/* Causes extra information to be passed to signal handlers at the time
of receipt of a signal. */
#define SA_SIGINFO (0x00000010)
/* Causes implementations not to create zombie processes on child death. */
#define SA_NOCLDWAIT (0x00000020)
/* Causes signal not to be automatically blocked on entry to signal
handler. */
#define SA_NODEFER (0x00000040)
/* FIXME: the following constants need to be reviewed */
/* The resulting set is the intersection of the current set and the
complement of the signal set pointed to by the argument set. */
#define SIG_BLOCK (1)
/* The resulting set is the signal set pointed to by the argument
set. */
#define SIG_UNBLOCK (2)
/* Causes signal delivery to occur on an alternate stack. */
#define SIG_SETMASK (3)
/* FIXME: the following constants need to be reviewed */
/* Process is executing on an alternate signal stack. */
#define SS_ONSTACK (1)
/* Alternate signal stack is disabled. */
#define SS_DISABLE (2)
/* Minimum stack size for a signal handler. */ /* FIXME */
#define MINSIGSTKSZ (0)
/* Default size in bytes for the alternate signal stack. */ /* FIXME */
#define SIGSTKSZ (0)
/*
signal-specific reasons why the signal was generated
*/
/* SIGILL */
/* illegal opcode */
#define ILL_ILLOPC (1)
/* illegal operand */
#define ILL_ILLOPN (2)
/* illegal addressing mode */
#define ILL_ILLADR (3)
/* illegal trap */
#define ILL_ILLTRP (4)
/* privileged opcode */
#define ILL_PRVOPC (5)
/* privileged register */
#define ILL_PRVREG (6)
/* coprocessor error */
#define ILL_COPROC (7)
/* internal stack error */
#define ILL_BADSTK (8)
/* SIGFPE */
/* integer divide by zero */
#define FPE_INTDIV
/* integer overflow */
#define FPE_INTOVF
/* floating point divide by zero */
#define FPE_FLTDIV
/* floating point overflow */
#define FPE_FLTOVF
/* floating point underflow */
#define FPE_FLTUND
/* floating point inexact result */
#define FPE_FLTRES
/* invalid floating point operation */
#define FPE_FLTINV
/* subscript out of range */
#define FPE_FLTSUB
/* SIGSEGV */
/* address not mapped to object */
#define SEGV_MAPERR
/* invalid permissions for mapped object */
#define SEGV_ACCERR
/* SIGBUS */
/* invalid address alignment */
#define BUS_ADRALN
/* non-existent physical address */
#define BUS_ADRERR
/* object specific hardware error */
#define BUS_OBJERR
/* SIGTRAP */
/* process breakpoint */
#define TRAP_BRKPT
/* process trace trap */
#define TRAP_TRACE
/* SIGCHLD */
/* child has exited */
#define CLD_EXITED
/* child has terminated abnormally and did not create a core file */
#define CLD_KILLED
/* child has terminated abnormally and created a core file */
#define CLD_DUMPED
/* traced child has trapped */
#define CLD_TRAPPED
/* child has stopped */
#define CLD_STOPPED
/* stopped child has continued */
#define CLD_CONTINUED
/* SIGPOLL */
/* data input available */
#define POLL_IN
/* output buffers available */
#define POLL_OUT
/* input message available */
#define POLL_MSG
/* I/O error */
#define POLL_ERR
/* high priority input available */
#define POLL_PRI
/* device disconnected */
#define POLL_HUP
/* signal sent by kill() */
#define SI_USER
/* signal sent by the sigqueue() */
#define SI_QUEUE
/* signal generated by expiration of a timer set by timer_settime() */
#define SI_TIMER
/* signal generated by completion of an asynchronous I/O request */
#define SI_ASYNCIO
/* signal generated by arrival of a message on an empty message queue */
#define SI_MESGQ
/* PROTOTYPES */
void (*bsd_signal(int, void (*)(int)))(int);
int kill(pid_t, int);
int killpg(pid_t, int);
int pthread_kill(pthread_t, int);
int pthread_sigmask(int, const sigset_t *, sigset_t *);
int raise(int);
int sigaction(int, const struct sigaction *, struct sigaction *);
int sigaddset(sigset_t *, int);
int sigaltstack(const stack_t *, stack_t *);
int sigdelset(sigset_t *, int);
int sigemptyset(sigset_t *);
int sigfillset(sigset_t *);
int sighold(int);
int sigignore(int);
int siginterrupt(int, int);
int sigismember(const sigset_t *, int);
void (*signal(int, void (*)(int)))(int);
int sigpause(int);
int sigpending(sigset_t *);
int sigprocmask(int, const sigset_t *, sigset_t *);
int sigqueue(pid_t, int, const union sigval);
int sigrelse(int);
void (*sigset(int, void (*)(int)))(int);
int sigstack(struct sigstack *ss,
struct sigstack *oss); /* LEGACY */
int sigsuspend(const sigset_t *);
int sigtimedwait(const sigset_t *, siginfo_t *,
const struct timespec *);
int sigwait(const sigset_t *set, int *sig);
int sigwaitinfo(const sigset_t *, siginfo_t *);
/* MACROS */
#endif /* __SIGNAL_H_INCLUDED__ */
/* EOF */

57
posix/include/stdarg.h Normal file
View File

@@ -0,0 +1,57 @@
/* $Id: stdarg.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* stdarg.h
*
* handle variable argument list. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __STDARG_H_INCLUDED__
#define __STDARG_H_INCLUDED__
/* OBJECTS */
/* TYPES */
typedef char* va_list;
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
/* taken from mingw's stdarg.h */
/* Amount of space required in an argument list (ie. the stack) for an
argument of type t. */
#define __va_argsiz(t) \
(((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
#define va_start(ap, pN) \
((ap) = ((va_list) (&pN) + __va_argsiz(pN)))
#define va_end(ap) ((void)0)
#define va_arg(ap, t) \
(((ap) = (ap) + __va_argsiz(t)), \
*((t*) (void*) ((ap) - __va_argsiz(t))))
#endif /* __STDARG_H_INCLUDED__ */
/* EOF */

50
posix/include/stddef.h Normal file
View File

@@ -0,0 +1,50 @@
/* $Id: stddef.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* stddef.h
*
* standard type definitions. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __STDDEF_H_INCLUDED__
#define __STDDEF_H_INCLUDED__
/* INCLUDES */
#include <sys/types.h>
/* OBJECTS */
/* TYPES */
typedef signed long int ptrdiff_t;
typedef unsigned short int wchar_t;
/* CONSTANTS */
#ifndef NULL
#define NULL ((void *)(0)) /* Null pointer constant. */
#endif
/* PROTOTYPES */
/* MACROS */
#define offsetof(t,m) ((size_t) &((t *)0)->m)
#endif /* __STDDEF_H_INCLUDED__ */
/* EOF */

165
posix/include/stdio.h Normal file
View File

@@ -0,0 +1,165 @@
/* $Id: stdio.h,v 1.2 2002/02/20 09:17:54 hyperion Exp $
*/
/*
* stdio.h
*
* standard buffered input/output. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __STDIO_H_INCLUDED__
#define __STDIO_H_INCLUDED__
/* INCLUDES */
#include <stddef.h>
#include <stdarg.h>
#include <unistd.h>
#include <sys/types.h>
/* OBJECTS */
extern char *optarg;
extern int opterr;
extern int optind; /* LEGACY */
extern int optopt;
/* TYPES */
typedef struct __tagFILE
{
int _dummy;
} FILE;
typedef struct __tagfpos_t
{
int _dummy;
} fpos_t;
/* CONSTANTS */
/* Size of <stdio.h> buffers. */
#define BUFSIZ (0x10000)
/* Maximum size in bytes of the longest filename string that the implementation
guarantees can be opened. */
#define FILENAME_MAX (255)
/* Number of streams which the implementation guarantees can be open
simultaneously. The value will be at least eight. */
#define FOPEN_MAX (8)
/* Input/output fully buffered. */
#define _IOFBF (1)
/* Input/output line buffered. */
#define _IOLBF (2)
/* Input/output unbuffered. */
#define _IONBF (3)
/* Maximum size of character array to hold ctermid() output. */
#define L_ctermid (255)
/* Maximum size of character array to hold cuserid() output. (LEGACY) */
#define L_cuserid (255)
/* Maximum size of character array to hold tmpnam() output. */
#define L_tmpnam (255)
/* Minimum number of unique filenames generated by tmpnam(). Maximum number
of times an application can call tmpnam() reliably. The value of TMP_MAX
will be at least 10,000. */
#define TMP_MAX (0xFFFF)
/* End-of-file return value. */
#define EOF (-1)
/* default directory prefix for tempnam() */
#define P_tmpdir "/tmp/"
/* Standard error output stream. */
#define stderr ((FILE *)STDERR_FILENO)
/* Standard input stream. */
#define stdin ((FILE *)STDIN_FILENO)
/* Standard output stream. */
#define stdout ((FILE *)STDOUT_FILENO)
/* PROTOTYPES */
void clearerr(FILE *);
char *ctermid(char *);
char *cuserid(char *); /* LEGACY */
int fclose(FILE *);
FILE *fdopen(int, const char *);
int feof(FILE *);
int ferror(FILE *);
int fflush(FILE *);
int fgetc(FILE *);
int fgetpos(FILE *, fpos_t *);
char *fgets(char *, int, FILE *);
int fileno(FILE *);
void flockfile(FILE *);
FILE *fopen(const char *, const char *);
int fprintf(FILE *, const char *, ...);
int fputc(int, FILE *);
int fputs(const char *, FILE *);
size_t fread(void *, size_t, size_t, FILE *);
FILE *freopen(const char *, const char *, FILE *);
int fscanf(FILE *, const char *, ...);
int fseek(FILE *, long int, int);
int fseeko(FILE *, off_t, int);
int fsetpos(FILE *, const fpos_t *);
long int ftell(FILE *);
off_t ftello(FILE *);
int ftrylockfile(FILE *);
void funlockfile(FILE *);
size_t fwrite(const void *, size_t, size_t, FILE *);
int getc(FILE *);
int getchar(void);
int getc_unlocked(FILE *);
int getchar_unlocked(void);
int getopt(int, char * const[], const char *); /* LEGACY */
char *gets(char *);
int getw(FILE *);
int pclose(FILE *);
void perror(const char *);
FILE *popen(const char *, const char *);
int printf(const char *, ...);
int putc(int, FILE *);
int putchar(int);
int putc_unlocked(int, FILE *);
int putchar_unlocked(int);
int puts(const char *);
int putw(int, FILE *);
int remove(const char *);
int rename(const char *, const char *);
void rewind(FILE *);
int scanf(const char *, ...);
void setbuf(FILE *, char *);
int setvbuf(FILE *, char *, int, size_t);
int snprintf(char *, size_t, const char *, ...);
int sprintf(char *, const char *, ...);
int sscanf(const char *, const char *, int, ...);
char *tempnam(const char *, const char *);
FILE *tmpfile(void);
char *tmpnam(char *);
int ungetc(int, FILE *);
int vfprintf(FILE *, const char *, va_list);
int vprintf(const char *, va_list);
int vsnprintf(char *, size_t, const char *, va_list);
int vsprintf(char *, const char *, va_list);
/* MACROS */
#endif /* __STDIO_H_INCLUDED__ */
/* EOF */

130
posix/include/stdlib.h Normal file
View File

@@ -0,0 +1,130 @@
/* $Id: stdlib.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* stdlib.h
*
* standard library definitions. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __STDLIB_H_INCLUDED__
#define __STDLIB_H_INCLUDED__
/* INCLUDES */
#include <stddef.h>
#include <limits.h>
#include <math.h>
#include <sys/wait.h>
/* OBJECTS */
/* TYPES */
typedef struct __tagdiv_t
{
int quot; /* quotient */
int rem; /* remainder */
} div_t;
typedef struct __tagldiv_t
{
long int quot; /* quotient */
long int rem; /* remainder */
} ldiv_t;
/* CONSTANTS */
#define EXIT_FAILURE (-1) /* Unsuccessful termination for exit(), evaluates \
to a non-zero value. */
#define EXIT_SUCCESS (0) /* Successful termination for exit(), evaluates to 0. */
/* FIXME */
#define RAND_MAX (32767) /* Maximum value returned by rand(), at least 32,767. */
/* FIXME */
#define MB_CUR_MAX (1) /* Integer expression whose value is the maximum number \
of bytes in a character specified by the current \
locale. */
/* PROTOTYPES */
long a64l(const char *);
void abort(void);
int abs(int);
int atexit(void (*)(void));
double atof(const char *);
int atoi(const char *);
long int atol(const char *);
void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
void *calloc(size_t, size_t);
div_t div(int, int);
double drand48(void);
char *ecvt(double, int, int *, int *);
double erand48(unsigned short int[3]);
void exit(int);
char *fcvt (double, int, int *, int *);
void free(void *);
char *gcvt(double, int, char *);
char *getenv(const char *);
int getsubopt(char **, char *const *, char **);
int grantpt(int);
char *initstate(unsigned int, char *, size_t);
long int jrand48(unsigned short int[3]);
char *l64a(long);
long int labs(long int);
void lcong48(unsigned short int[7]);
ldiv_t ldiv(long int, long int);
long int lrand48(void);
void *malloc(size_t);
int mblen(const char *, size_t);
size_t mbstowcs(wchar_t *, const char *, size_t);
int mbtowc(wchar_t *, const char *, size_t);
char *mktemp(char *);
int mkstemp(char *);
long int mrand48(void);
long int nrand48(unsigned short int [3]);
char *ptsname(int);
int putenv(char *);
void qsort(void *, size_t, size_t, int (*)(const void *,
const void *));
int rand(void);
int rand_r(unsigned int *);
long random(void);
void *realloc(void *, size_t);
char *realpath(const char *, char *);
unsigned short int seed48(unsigned short int[3]);
void setkey(const char *);
char *setstate(const char *);
void srand(unsigned int);
void srand48(long int);
void srandom(unsigned);
double strtod(const char *, char **);
long int strtol(const char *, char **, int);
unsigned long int
strtoul(const char *, char **, int);
int system(const char *);
int ttyslot(void); /* LEGACY */
int unlockpt(int);
void *valloc(size_t); /* LEGACY */
size_t wcstombs(char *, const wchar_t *, size_t);
int wctomb(char *, wchar_t);
/* MACROS */
#endif /* __STDLIB_H_INCLUDED__ */
/* EOF */

69
posix/include/string.h Normal file
View File

@@ -0,0 +1,69 @@
/* $Id: string.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* string.h
*
* string operations. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __STRING_H_INCLUDED__ /* replace with the appropriate tag */
#define __STRING_H_INCLUDED__ /* replace with the appropriate tag */
/* INCLUDES */
#include <stddef.h>
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
void *memccpy(void *, const void *, int, size_t);
void *memchr(const void *, int, size_t);
int memcmp(const void *, const void *, size_t);
void *memcpy(void *, const void *, size_t);
void *memmove(void *, const void *, size_t);
void *memset(void *, int, size_t);
char *strcat(char *, const char *);
char *strchr(const char *, int);
int strcmp(const char *, const char *);
int strcoll(const char *, const char *);
char *strcpy(char *, const char *);
size_t strcspn(const char *, const char *);
char *strdup(const char *);
char *strerror(int);
size_t strlen(const char *);
char *strncat(char *, const char *, size_t);
int strncmp(const char *, const char *, size_t);
char *strncpy(char *, const char *, size_t);
char *strpbrk(const char *, const char *);
char *strrchr(const char *, int);
size_t strspn(const char *, const char *);
char *strstr(const char *, const char *);
char *strtok(char *, const char *);
char *strtok_r(char *, const char *, char **);
size_t strxfrm(char *, const char *, size_t);
/* MACROS */
#endif /* __STRING_H_INCLUDED__ */ /* replace with the appropriate tag */
/* EOF */

43
posix/include/sys/ipc.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: ipc.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/ipc.h
*
* interprocess communication access structure. Conforming to the Single
* UNIX(r) Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_IPC_H_INCLUDED__
#define __SYS_IPC_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_IPC_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/mman.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: mman.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/mman.h
*
* memory management declarations. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_SOCKET_H_INCLUDED__
#define __SYS_SOCKET_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_SOCKET_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/msg.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: msg.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/msg.h
*
* message queue structures. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_SOCKET_H_INCLUDED__
#define __SYS_SOCKET_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_SOCKET_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,43 @@
/* $Id: resource.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/resource.h
*
* definitions for XSI resource operations. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_RESOURCE_H_INCLUDED__
#define __SYS_RESOURCE_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_RESOURCE_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/sem.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: sem.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/sem.h
*
* semaphore facility. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_SEM_H_INCLUDED__
#define __SYS_SEM_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_SEM_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/shm.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: shm.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/shm.h
*
* shared memory facility. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_SHM_H_INCLUDED__
#define __SYS_SHM_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_SHM_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,43 @@
/* $Id: socket.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/socket.h
*
* Internet Protocol family. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_SOCKET_H_INCLUDED__
#define __SYS_SOCKET_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_SOCKET_H_INCLUDED__ */
/* EOF */

122
posix/include/sys/stat.h Normal file
View File

@@ -0,0 +1,122 @@
/* $Id: stat.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/stat.h
*
* data returned by the stat() function. Conforming to the Single
* UNIX(r) Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_STAT_H_INCLUDED__
#define __SYS_STAT_H_INCLUDED__
/* INCLUDES */
#include <sys/types.h>
/* OBJECTS */
/* TYPES */
struct stat
{
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* file serial number */
mode_t st_mode; /* mode of file (see below) */
nlink_t st_nlink; /* number of links to the file */
uid_t st_uid; /* user ID of file */
gid_t st_gid; /* group ID of file */
dev_t st_rdev; /* device ID (if file is character or block special) */
off_t st_size; /* file size in bytes (if file is a regular file) */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last data modification */
time_t st_ctime; /* time of last status change */
blksize_t st_blksize; /* a filesystem-specific preferred I/O block size for
this object. In some filesystem types, this may
vary from file to file */
blkcnt_t st_blocks; /* number of blocks allocated for this object */
};
/* CONSTANTS */
/*
file type
*/
#define S_IFBLK (1) /* block special */
#define S_IFCHR (2) /* character special */
#define S_IFIFO (3) /* FIFO special */
#define S_IFREG (4) /* regular */
#define S_IFDIR (5) /* directory */
#define S_IFLNK (6) /* symbolic link */
/* type of file */
#define S_IFMT (S_IFBLK | S_IFCHR | S_IFIFO | S_IFREG | S_IFDIR | S_IFLNK)
/*
file mode bits
*/
#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) /* read, write, execute/search by owner */
#define S_IRUSR (0x00000001) /* read permission, owner */
#define S_IWUSR (0x00000002) /* write permission, owner */
#define S_IXUSR (0x00000004) /* execute/search permission, owner */
#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) /* read, write, execute/search by group */
#define S_IRGRP (0x00000010) /* read permission, group */
#define S_IWGRP (0x00000020) /* write permission, group */
#define S_IXGRP (0x00000040) /* execute/search permission, group */
#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) /* read, write, execute/search by others */
#define S_IROTH (0x00000100) /* read permission, others */
#define S_IWOTH (0x00000200) /* write permission, others */
#define S_IXOTH (0x00000400) /* execute/search permission, others */
#define S_ISUID (0x00001000) /* set-user-ID on execution */
#define S_ISGID (0x00002000) /* set-group-ID on execution */
#define S_ISVTX (0x00004000) /* on directories, restricted deletion flag */
/*
the following macros will test whether a file is of the specified type
*/
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
/* shared memory, semaphores and message queues are unlikely to be ever
implemented as files */
#define S_TYPEISMQ(buf) (0) /* Test for a message queue */
#define S_TYPEISSEM(buf) (0) /* Test for a semaphore */
#define S_TYPEISSHM(buf) (0) /* Test for a shared memory object */
/* PROTOTYPES */
int chmod(const char *, mode_t);
int fchmod(int, mode_t);
int fstat(int, struct stat *);
int lstat(const char *, struct stat *);
int mkdir(const char *, mode_t);
int mkfifo(const char *, mode_t);
int mknod(const char *, mode_t, dev_t);
int stat(const char *, struct stat *);
mode_t umask(mode_t);
/* MACROS */
#endif /* __SYS_STAT_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,43 @@
/* $Id: statvfs.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/statvfs.h
*
* VFS Filesystem information structure. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_STATVFS_H_INCLUDED__
#define __SYS_STATVFS_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_STATVFS_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/time.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: time.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/time.h
*
* time types. Conforming to the Single UNIX(r) Specification Version 2,
* System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_TIME_H_INCLUDED__
#define __SYS_TIME_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_TIME_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/timeb.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: timeb.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/timeb.h
*
* additional definitions for date and time. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_TIMEB_H_INCLUDED__
#define __SYS_TIMEB_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_TIMEB_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/times.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: times.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/times.h
*
* file access and modification times structure. Conforming to the Single
* UNIX(r) Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_TIMES_H_INCLUDED__
#define __SYS_TIMES_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_TIMES_H_INCLUDED__ */
/* EOF */

83
posix/include/sys/types.h Normal file
View File

@@ -0,0 +1,83 @@
/* $Id: types.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/types.h
*
* data types. Conforming to the Single UNIX(r) Specification Version 2,
* System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_TYPES_H_INCLUDED__
#define __SYS_TYPES_H_INCLUDED__
/* INCLUDES */
#include <inttypes.h>
/* OBJECTS */
/* TYPES */
/* FIXME: all these types need to be checked */
typedef unsigned long int blkcnt_t; /* Used for file block counts */
typedef unsigned long int blksize_t; /* Used for block sizes */
typedef long long clock_t; /* Used for system times in clock ticks or CLOCKS_PER_SEC */
typedef int clockid_t; /* Used for clock ID type in the clock and timer functions. */
typedef int dev_t; /* Used for device IDs. */
typedef long long fsblkcnt_t; /* Used for file system block counts */
typedef long long fsfilcnt_t; /* Used for file system file counts */
typedef int gid_t; /* Used for group IDs. */
typedef int id_t; /* Used as a general identifier; can be used to contain at least a
pid_t, uid_t or a gid_t. */
typedef uint64_t ino_t; /* Used for file serial numbers. */
typedef int key_t; /* Used for interprocess communication. */
typedef int mode_t; /* Used for some file attributes. */
typedef int nlink_t; /* Used for link counts. */
typedef int64_t off_t; /* Used for file sizes. */
typedef unsigned long int pid_t; /* Used for process IDs and process group IDs. */
/* pthread types */
typedef void * pthread_cond_t; /* Used for condition variables. */
typedef void * pthread_condattr_t; /* Used to identify a condition attribute object. */
typedef void * pthread_key_t; /* Used for thread-specific data keys. */
typedef void * pthread_attr_t; /* Used to identify a thread attribute object. */
typedef void * pthread_mutex_t;
typedef void * pthread_mutexattr_t;
typedef void * pthread_once_t; /* Used for dynamic package initialisation. */
typedef void * pthread_rwlock_t; /* Used for read-write locks. */
typedef void * pthread_rwlockattr_t; /* Used for read-write lock attributes. */
typedef unsigned long int pthread_t; /* Used to identify a thread. */
typedef unsigned long int size_t; /* Used for sizes of objects. */
typedef long int ssize_t; /* Used for a count of bytes or an error indication. */
typedef long long suseconds_t; /* Used for time in microseconds */
typedef unsigned long int time_t; /* Used for time in seconds. */
typedef void * timer_t; /* Used for timer ID returned by timer_create(). */
typedef int uid_t; /* Used for user IDs. */
typedef unsigned long long useconds_t; /* Used for time in microseconds. */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_TYPES_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/uio.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: uio.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/uio.h
*
* definitions for vector I/O operations. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_UIO_H_INCLUDED__
#define __SYS_UIO_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_UIO_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/un.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: un.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/un.h
*
* declarations for definitions for UNIX-domain sockets. Conforming to the
* Single UNIX(r) Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_UN_H_INCLUDED__
#define __SYS_UN_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_UN_H_INCLUDED__ */
/* EOF */

View File

@@ -0,0 +1,54 @@
/* $Id: utsname.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/utsname.h
*
* system name structure. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_UTSNAME_H_INCLUDED__
#define __SYS_UTSNAME_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
struct utsname
{
char sysname[255]; /* name of this implementation of the operating system */
char nodename[255]; /* name of this node within an implementation-dependent
communications network */
char release[255]; /* current release level of this implementation */
char version[255]; /* current version level of this release */
char machine[255]; /* name of the hardware type on which the system is
running */
};
/* CONSTANTS */
/* PROTOTYPES */
int uname(struct utsname *);
/* MACROS */
#endif /* __SYS_UTSNAME_H_INCLUDED__ */
/* EOF */

43
posix/include/sys/wait.h Normal file
View File

@@ -0,0 +1,43 @@
/* $Id: wait.h,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* sys/wait.h
*
* declarations for waiting. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __SYS_WAIT_H_INCLUDED__
#define __SYS_WAIT_H_INCLUDED__
/* INCLUDES */
/* OBJECTS */
/* TYPES */
/* CONSTANTS */
/* PROTOTYPES */
/* MACROS */
#endif /* __SYS_WAIT_H_INCLUDED__ */
/* EOF */

114
posix/include/time.h Normal file
View File

@@ -0,0 +1,114 @@
/* $Id: time.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* time.h
*
* time types. Conforming to the Single UNIX(r) Specification Version 2,
* System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __TIME_H_INCLUDED__
#define __TIME_H_INCLUDED__
/* INCLUDES */
#include <signal.h>
#include <sys/types.h>
/* OBJECTS */
//extern static int getdate_err; /* FIXME */
extern int daylight;
extern long int timezone;
extern char *tzname[];
/* TYPES */
/* pre-declaration of signal.h types to suppress warnings caused by circular
dependencies */
struct sigevent;
struct tm
{
int tm_sec; /* seconds [0,61] */
int tm_min; /* minutes [0,59] */
int tm_hour; /* hour [0,23] */
int tm_mday; /* day of month [1,31] */
int tm_mon; /* month of year [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* day of week [0,6] (Sunday = 0) */
int tm_yday; /* day of year [0,365] */
int tm_isdst; /* daylight savings flag */
};
struct timespec
{
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
struct itimerspec
{
struct timespec it_interval; /* timer period */
struct timespec it_value; /* timer expiration */
};
/* CONSTANTS */
/* FIXME: all the constants are wrong */
/* Number of clock ticks per second returned by the times() function (LEGACY). */
#define CLK_TCK (1)
/* A number used to convert the value returned by the clock() function into
seconds. */
#define CLOCKS_PER_SEC (1)
/* The identifier of the systemwide realtime clock. */
#define CLOCK_REALTIME (0)
/* Flag indicating time is absolute with respect to the clock associated with a
timer. */
#define TIMER_ABSTIME (1)
/* PROTOTYPES */
char *asctime(const struct tm *);
char *asctime_r(const struct tm *, char *);
clock_t clock(void);
int clock_getres(clockid_t, struct timespec *);
int clock_gettime(clockid_t, struct timespec *);
int clock_settime(clockid_t, const struct timespec *);
char *ctime(const time_t *);
char *ctime_r(const time_t *, char *);
double difftime(time_t, time_t);
struct tm *getdate(const char *);
struct tm *gmtime(const time_t *);
struct tm *gmtime_r(const time_t *, struct tm *);
struct tm *localtime(const time_t *);
struct tm *localtime_r(const time_t *, struct tm *);
time_t mktime(struct tm *);
int nanosleep(const struct timespec *, struct timespec *);
size_t strftime(char *, size_t, const char *, const struct tm *);
char *strptime(const char *, const char *, struct tm *);
time_t time(time_t *);
int timer_create(clockid_t, struct sigevent *, timer_t *);
int timer_delete(timer_t);
int timer_gettime(timer_t, struct itimerspec *);
int timer_getoverrun(timer_t);
int timer_settime(timer_t, int, const struct itimerspec *,
struct itimerspec *);
void tzset(void);
/* MACROS */
#endif /* __TIME_H_INCLUDED__ */ /* replace with the appropriate tag */
/* EOF */

62
posix/include/ucontext.h Normal file
View File

@@ -0,0 +1,62 @@
/* $Id: ucontext.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* ucontext.h
*
* user context. Conforming to the Single UNIX(r) Specification Version 2,
* System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __UCONTEXT_H_INCLUDED__
#define __UCONTEXT_H_INCLUDED__
/* INCLUDES */
#include <signal.h>
/* OBJECTS */
/* TYPES */
typedef void * mcontext_t;
typedef struct __tagucontext_t ucontext_t;
struct __tagucontext_t
{
ucontext_t *uc_link; /* pointer to the context that will be resumed
when this context returns */
sigset_t uc_sigmask; /* the set of signals that are blocked when this
context is active */
stack_t uc_stack; /* the stack used by this context */
mcontext_t uc_mcontext; /* a machine-specific representation of the saved
context */
};
/* CONSTANTS */
/* PROTOTYPES */
int getcontext(ucontext_t *);
int setcontext(const ucontext_t *);
void makecontext(ucontext_t *, (void *)(), int, ...);
int swapcontext(ucontext_t *, const ucontext_t *);
/* MACROS */
#endif /* __UCONTEXT_H_INCLUDED__ */
/* EOF */

492
posix/include/unistd.h Normal file
View File

@@ -0,0 +1,492 @@
/* $Id: unistd.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* unistd.h
*
* standard symbolic constants and types. Conforming to the Single UNIX(r)
* Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __UNISTD_H_INCLUDED__
#define __UNISTD_H_INCLUDED__
/* INCLUDES */
#include <sys/types.h>
#include <stdio.h>
#include <inttypes.h>
/* OBJECTS */
extern char *optarg;
extern int optind, opterr, optopt;
/* TYPES */
/* CONSTANTS */
/* FIXME: set these constants appropriately */
/* Integer value indicating version of the ISO<53>POSIX-1 standard (C
language binding). */
#define _POSIX_VERSION (0)
/* Integer value indicating version of the ISO POSIX-2 standard
(Commands). */
#define _POSIX2_VERSION (0)
/* Integer value indicating version of the ISO POSIX-2 standard (C
language binding). */
#define _POSIX2_C_VERSION (0)
/* Integer value indicating version of the X/Open Portability Guide to
which the implementation conforms. */
#define _XOPEN_VERSION (500)
/* The version of the XCU specification to which the implementation
conforms */
/* TODO: set to an appropriate value when commands and utilities will
be available */
#define _XOPEN_XCU_VERSION (-1)
#if _XOPEN_XCU_VERSION != -1
#error TODO: define these constants
#define _POSIX2_C_BIND
#define _POSIX2_C_VERSION
#define _POSIX2_CHAR_TERM
#define _POSIX2_LOCALEDEF
#define _POSIX2_UPE
#define _POSIX2_VERSION
#endif
#if 0
/* TODO: check for conformance to the following specs */
#define _XOPEN_XPG2
#define _XOPEN_XPG3
#define _XOPEN_XPG4
#define _XOPEN_UNIX
#endif
#if 0
/* TODO: don't forget these features */
/* The use of chown() is restricted to a process with appropriate
privileges, and to changing the group ID of a file only to the
effective group ID of the process or to one of its supplementary
group IDs. */
#define _POSIX_CHOWN_RESTRICTED
/* Terminal special characters defined in <termios.h> can be disabled
using this character value. */
#define _POSIX_VDISABLE
/* Each process has a saved set-user-ID and a saved set-group-ID. */
#define _POSIX_SAVED_IDS
/* Implementation supports job control. */
#define _POSIX_JOB_CONTROL
#endif
/* Pathname components longer than {NAME_MAX} generate an error. */
#define _POSIX_NO_TRUNC (1)
/* The implementation supports the threads option. */
#define _POSIX_THREADS (1)
/* FIXME: none of the following is strictly true yet */
/* The implementation supports the thread stack address attribute
option. */ /* FIXME: not currently implemented. Should be trivial */
#define _POSIX_THREAD_ATTR_STACKADDR (1)
/* The implementation supports the thread stack size attribute
option. */ /* FIXME: not currently implemented. Should be trivial */
#define _POSIX_THREAD_ATTR_STACKSIZE (1)
/* The implementation supports the process-shared synchronisation
option. */ /* FIXME? not sure */
#define _POSIX_THREAD_PROCESS_SHARED (1)
/* The implementation supports the thread-safe functions option. */
/* FIXME: fix errno (currently not thread-safe) */
#define _POSIX_THREAD_SAFE_FUNCTIONS (1)
/*
<20>Constants for Options and Feature Groups
*/
/* Implementation supports the C Language Binding option. This will
always have a value other than -1. */
#define _POSIX2_C_BIND (1)
/* Implementation supports the C Language Development Utilities
option. */ /* FIXME: please change this when C compiler and
utilities are ported */
#define _POSIX2_C_DEV (-1)
/* Implementation supports at least one terminal type. */ /* FIXME:
please change this when terminal emulation is complete */
#define _POSIX2_CHAR_TERM (-1)
/* Implementation supports the FORTRAN Development Utilities option. */
/* FIXME: please change this when Fortran compiler and utilities are
ported */
#define _POSIX2_FORT_DEV (-1)
/* Implementation supports the FORTRAN Run-time Utilities option. */
/* FIXME: please change this when Fortran runtimes are ported */
#define _POSIX2_FORT_RUN (-1)
/* Implementation supports the creation of locales by the localedef
utility. */ /* FIXME: please change this when locales are ready */
#define _POSIX2_LOCALEDEF (-1)
/* Implementation supports the Software Development Utilities option. */
/* FIXME? */
#define _POSIX2_SW_DEV (-1)
/* The implementation supports the User Portability Utilities option. */
/* FIXME? */
#define _POSIX2_UPE (-1)
/* The implementation supports the X/Open Encryption Feature Group. */
/* FIXME: please change this when encryption is ready */
#define _XOPEN_CRYPT (-1)
/* The implementation supports the Issue 4, Version 2 Enhanced
Internationalisation Feature Group. This is always set to a value
other than -1. */ /* TODO: high priority. Support for this feature is
needed for a conforming implementation */
#define _XOPEN_ENH_I18N (-1)
/* The implementation supports the Legacy Feature Group. */
#define _XOPEN_LEGACY (1)
/* The implementation supports the X/Open Realtime Feature Group. */
/* FIXME? unlikely to be ever supported */
#define _XOPEN_REALTIME (-1)
/* The implementation supports the X/Open Realtime Threads Feature
Group. */ /* FIXME? really unlikely to be ever supported */
#define _XOPEN_REALTIME_THREADS (-1)
/* The implementation supports the Issue 4, Version 2 Shared Memory
Feature Group. This is always set to a value other than -1. */ /* TODO:
high priority. Support for this feature is needed for a conforming
implementation */
#define _XOPEN_SHM (-1)
/* Implementation provides a C-language compilation environment with
32-bit int, long, pointer and off_t types. */
#define _XBS5_ILP32_OFF32 (1)
/* Implementation provides a C-language compilation environment with
32-bit int, long and pointer types and an off_t type using at
least 64 bits. */ /* FIXME? check the off_t type */
#define _XBS5_ILP32_OFFBIG (1)
/* Implementation provides a C-language compilation environment with
32-bit int and 64-bit long, pointer and off_t types. */ /* FIXME: on
some architectures this may be true */
#define _XBS5_LP64_OFF64 (-1)
/* Implementation provides a C-language compilation environment with
an int type using at least 32 bits and long, pointer and off_t
types using at least 64 bits. */ /* FIXME: on some architectures
this may be true */
#define _XBS5_LPBIG_OFFBIG (-1)
/* Implementation supports the File Synchronisation option. */
/* TODO: high priority. Implement this */
#define _POSIX_FSYNC
/* Implementation supports the Memory Mapped Files option. */
/* TODO: high priority. Implement this */
#define _POSIX_MAPPED_FILES
/* Implementation supports the Memory Protection option. */
/* TODO: high priority. Implement this */
#define _POSIX_MEMORY_PROTECTION
#if 0
/* Implementation supports the Prioritized Input and Output option. */
/* FIXME? unlikely to be ever supported */
#define _POSIX_PRIORITIZED_IO
#endif
/* FIXME: these should be implemented */
/* Asynchronous input or output operations may be performed for the
associated file. */
#define _POSIX_ASYNC_IO (-1)
/* Prioritized input or output operations may be performed for the
associated file. */
#define _POSIX_PRIO_IO (-1)
/* Synchronised input or output operations may be performed for the
associated file. */
#define _POSIX_SYNC_IO (-1)
/*
null pointer
*/
#ifndef NULL
/* NULL seems to be defined pretty much everywhere - we prevent
redefinition */
#define NULL ((void *)(0))
#endif
/*
constants for the access() function
*/
/* Test for read permission. */
#define R_OK (0x00000001)
/* Test for write permission. */
#define W_OK (0x00000002)
/* Test for execute (search) permission. */
#define X_OK (0x00000004)
/* Test for existence of file. */
#define F_OK (0)
/*
constants for the confstr() function
*/
#define _CS_PATH (1)
#define _CS_XBS5_ILP32_OFF32_CFLAGS (2)
#define _CS_XBS5_ILP32_OFF32_LDFLAGS (3)
#define _CS_XBS5_ILP32_OFF32_LIBS (4)
#define _CS_XBS5_ILP32_OFF32_LINTFLAGS (5)
#define _CS_XBS5_ILP32_OFFBIG_CFLAGS (6)
#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS (7)
#define _CS_XBS5_ILP32_OFFBIG_LIBS (8)
#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS (9)
#define _CS_XBS5_LP64_OFF64_CFLAGS (10)
#define _CS_XBS5_LP64_OFF64_LDFLAGS (11)
#define _CS_XBS5_LP64_OFF64_LIBS (12)
#define _CS_XBS5_LP64_OFF64_LINTFLAGS (13)
#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS (14)
#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS (15)
#define _CS_XBS5_LPBIG_OFFBIG_LIBS (16)
#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS (17)
/*
constants for the lseek() and fcntl() functions
*/
#define SEEK_SET (1) /* Set file offset to offset. */
#define SEEK_CUR (2) /* Set file offset to current plus offset. */
#define SEEK_END (3) /* Set file offset to EOF plus offset. */
/*
constants for sysconf()
*/
#define _SC_2_C_BIND (1)
#define _SC_2_C_DEV (2)
#define _SC_2_C_VERSION (3)
#define _SC_2_FORT_DEV (4)
#define _SC_2_FORT_RUN (5)
#define _SC_2_LOCALEDEF (6)
#define _SC_2_SW_DEV (7)
#define _SC_2_UPE (8)
#define _SC_2_VERSION (9)
#define _SC_ARG_MAX (10)
#define _SC_AIO_LISTIO_MAX (11)
#define _SC_AIO_MAX (12)
#define _SC_AIO_PRIO_DELTA_MAX (13)
#define _SC_ASYNCHRONOUS_IO (14)
#define _SC_ATEXIT_MAX (15)
#define _SC_BC_BASE_MAX (16)
#define _SC_BC_DIM_MAX (17)
#define _SC_BC_SCALE_MAX (18)
#define _SC_BC_STRING_MAX (19)
#define _SC_CHILD_MAX (20)
#define _SC_CLK_TCK (21)
#define _SC_COLL_WEIGHTS_MAX (22)
#define _SC_DELAYTIMER_MAX (23)
#define _SC_EXPR_NEST_MAX (24)
#define _SC_FSYNC (25)
#define _SC_GETGR_R_SIZE_MAX (26)
#define _SC_GETPW_R_SIZE_MAX (27)
#define _SC_IOV_MAX (28)
#define _SC_JOB_CONTROL (29)
#define _SC_LINE_MAX (30)
#define _SC_LOGIN_NAME_MAX (31)
#define _SC_MAPPED_FILES (32)
#define _SC_MEMLOCK (33)
#define _SC_MEMLOCK_RANGE (34)
#define _SC_MEMORY_PROTECTION (35)
#define _SC_MESSAGE_PASSING (36)
#define _SC_MQ_OPEN_MAX (37)
#define _SC_MQ_PRIO_MAX (38)
#define _SC_NGROUPS_MAX (39)
#define _SC_OPEN_MAX (40)
#define _SC_PAGE_SIZE (41)
#define _SC_PASS_MAX (42) /* LEGACY */
#define _SC_PRIORITIZED_IO (43)
#define _SC_PRIORITY_SCHEDULING (44)
#define _SC_RE_DUP_MAX (45)
#define _SC_REALTIME_SIGNALS (46)
#define _SC_RTSIG_MAX (47)
#define _SC_SAVED_IDS (48)
#define _SC_SEMAPHORES (49)
#define _SC_SEM_NSEMS_MAX (50)
#define _SC_SEM_VALUE_MAX (51)
#define _SC_SHARED_MEMORY_OBJECTS (52)
#define _SC_SIGQUEUE_MAX (53)
#define _SC_STREAM_MAX (54)
#define _SC_SYNCHRONIZED_IO (55)
#define _SC_THREADS (56)
#define _SC_THREAD_ATTR_STACKADDR (57)
#define _SC_THREAD_ATTR_STACKSIZE (58)
#define _SC_THREAD_DESTRUCTOR_ITERATIONS (59)
#define _SC_THREAD_KEYS_MAX (60)
#define _SC_THREAD_PRIORITY_SCHEDULING (61)
#define _SC_THREAD_PRIO_INHERIT (62)
#define _SC_THREAD_PRIO_PROTECT (63)
#define _SC_THREAD_PROCESS_SHARED (64)
#define _SC_THREAD_SAFE_FUNCTIONS (65)
#define _SC_THREAD_STACK_MIN (66)
#define _SC_THREAD_THREADS_MAX (67)
#define _SC_TIMERS (68)
#define _SC_TIMER_MAX (69)
#define _SC_TTY_NAME_MAX (70)
#define _SC_TZNAME_MAX (71)
#define _SC_VERSION (72)
#define _SC_XOPEN_VERSION (73)
#define _SC_XOPEN_CRYPT (74)
#define _SC_XOPEN_ENH_I18N (75)
#define _SC_XOPEN_SHM (76)
#define _SC_XOPEN_UNIX (77)
#define _SC_XOPEN_XCU_VERSION (78)
#define _SC_XOPEN_LEGACY (79)
#define _SC_XOPEN_REALTIME (80)
#define _SC_XOPEN_REALTIME_THREADS (81)
#define _SC_XBS5_ILP32_OFF32 (82)
#define _SC_XBS5_ILP32_OFFBIG (83)
#define _SC_XBS5_LP64_OFF64 (84)
#define _SC_XBS5_LPBIG_OFFBIG (85)
#define _SC_PAGESIZE _SC_PAGE_SIZE
/* possible values for the function argument to the lockf() function */
/* Lock a section for exclusive use. */
#define F_LOCK (1)
/* Unlock locked sections. */
#define F_ULOCK (2)
/* Test section for locks by other processes. */
#define F_TEST (3)
/* Test and lock a section for exclusive use. */
#define F_TLOCK (4)
/* File number of stdin. It is 0. */
#define STDIN_FILENO (0)
/* File number of stdout. It is 1. */
#define STDOUT_FILENO (1)
/* File number of stderr. It is 2. */
#define STDERR_FILENO (2)
/* PROTOTYPES */
int access(const char *, int);
unsigned int alarm(unsigned int);
int brk(void *);
int chdir(const char *);
int chroot(const char *); /* LEGACY */
int chown(const char *, uid_t, gid_t);
int close(int);
size_t confstr(int, char *, size_t);
char *crypt(const char *, const char *);
char *ctermid(char *);
char *cuserid(char *s); /* LEGACY */
int dup(int);
int dup2(int, int);
void encrypt(char[64], int);
int execl(const char *, const char *, ...);
int execle(const char *, const char *, ...);
int execlp(const char *, const char *, ...);
int execv(const char *, char *const []);
int execve(const char *, char *const [], char *const []);
int execvp(const char *, char *const []);
void _exit(int);
int fchown(int, uid_t, gid_t);
int fchdir(int);
int fdatasync(int);
pid_t fork(void);
long int fpathconf(int, int);
int fsync(int);
int ftruncate(int, off_t);
char *getcwd(char *, size_t);
int getdtablesize(void); /* LEGACY */
gid_t getegid(void);
uid_t geteuid(void);
gid_t getgid(void);
int getgroups(int, gid_t []);
long gethostid(void);
char *getlogin(void);
int getlogin_r(char *, size_t);
int getopt(int, char * const [], const char *);
int getpagesize(void); /* LEGACY */
char *getpass(const char *); /* LEGACY */
pid_t getpgid(pid_t);
pid_t getpgrp(void);
pid_t getpid(void);
pid_t getppid(void);
pid_t getsid(pid_t);
uid_t getuid(void);
char *getwd(char *);
int isatty(int);
int lchown(const char *, uid_t, gid_t);
int link(const char *, const char *);
int lockf(int, int, off_t);
off_t lseek(int, off_t, int);
int nice(int);
long int pathconf(const char *, int);
int pause(void);
int pipe(int [2]);
ssize_t pread(int, void *, size_t, off_t);
int pthread_atfork(void (*)(void), void (*)(void),
void(*)(void));
ssize_t pwrite(int, const void *, size_t, off_t);
ssize_t read(int, void *, size_t);
int readlink(const char *, char *, size_t);
int rmdir(const char *);
void *sbrk(intptr_t);
int setgid(gid_t);
int setpgid(pid_t, pid_t);
pid_t setpgrp(void);
int setregid(gid_t, gid_t);
int setreuid(uid_t, uid_t);
pid_t setsid(void);
int setuid(uid_t);
unsigned int sleep(unsigned int);
void swab(const void *, void *, ssize_t);
int symlink(const char *, const char *);
void sync(void);
long int sysconf(int);
pid_t tcgetpgrp(int);
int tcsetpgrp(int, pid_t);
int truncate(const char *, off_t);
char *ttyname(int);
int ttyname_r(int, char *, size_t);
useconds_t ualarm(useconds_t, useconds_t);
int unlink(const char *);
int usleep(useconds_t);
pid_t vfork(void);
ssize_t write(int, const void *, size_t);
/* MACROS */
#endif /* __UNISTD_H_INCLUDED__ */
/* EOF */

50
posix/include/utime.h Normal file
View File

@@ -0,0 +1,50 @@
/* $Id: utime.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* utime.h
*
* access and modification times structure. Conforming to the Single
* UNIX(r) Specification Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __UTIME_H_INCLUDED__
#define __UTIME_H_INCLUDED__
/* INCLUDES */
#include <sys/types.h>
/* OBJECTS */
/* TYPES */
struct utimbuf
{
time_t actime; /* access time */
time_t modtime; /* modification time */
};
/* CONSTANTS */
/* PROTOTYPES */
int utime(const char *, const struct utimbuf *);
/* MACROS */
#endif /* __UTIME_H_INCLUDED__ */
/* EOF */

139
posix/include/wchar.h Normal file
View File

@@ -0,0 +1,139 @@
/* $Id: wchar.h,v 1.2 2002/02/20 09:17:55 hyperion Exp $
*/
/*
* wchar.h
*
* wide-character types. Conforming to the Single UNIX(r) Specification
* Version 2, System Interface & Headers Issue 5
*
* This file is part of the ReactOS Operating System.
*
* Contributors:
* Created by KJK::Hyperion <noog@libero.it>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __WCHAR_H_INCLUDED__
#define __WCHAR_H_INCLUDED__
/* INCLUDES */
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <time.h>
/* OBJECTS */
/* TYPES */
typedef wchar_t wint_t; /* An integral type capable of storing any valid
value of wchar_t, or WEOF */
typedef long int wctype_t; /* A scalar type of a data object that can hold
values which represent locale-specific
character classification. */
typedef void * mbstate_t; /* An object type other than an array type that
can hold the conversion state information
necessary to convert between sequences of
(possibly multibyte) characters and
wide-characters */
/* CONSTANTS */
/* PROTOTYPES */
wint_t btowc(int);
int fwprintf(FILE *, const wchar_t *, ...);
int fwscanf(FILE *, const wchar_t *, ...);
int iswalnum(wint_t);
int iswalpha(wint_t);
int iswcntrl(wint_t);
int iswdigit(wint_t);
int iswgraph(wint_t);
int iswlower(wint_t);
int iswprint(wint_t);
int iswpunct(wint_t);
int iswspace(wint_t);
int iswupper(wint_t);
int iswxdigit(wint_t);
int iswctype(wint_t, wctype_t);
wint_t fgetwc(FILE *);
wchar_t *fgetws(wchar_t *, int, FILE *);
wint_t fputwc(wchar_t, FILE *);
int fputws(const wchar_t *, FILE *);
int fwide(FILE *, int);
wint_t getwc(FILE *);
wint_t getwchar(void);
int mbsinit(const mbstate_t *);
size_t mbrlen(const char *, size_t, mbstate_t *);
size_t mbrtowc(wchar_t *, const char *, size_t,
mbstate_t *);
size_t mbsrtowcs(wchar_t *, const char **, size_t,
mbstate_t *);
wint_t putwc(wchar_t, FILE *);
wint_t putwchar(wchar_t);
int swprintf(wchar_t *, size_t, const wchar_t *, ...);
int swscanf(const wchar_t *, const wchar_t *, ...);
wint_t towlower(wint_t);
wint_t towupper(wint_t);
wint_t ungetwc(wint_t, FILE *);
int vfwprintf(FILE *, const wchar_t *, va_list);
int vwprintf(const wchar_t *, va_list);
int vswprintf(wchar_t *, size_t, const wchar_t *,
va_list);
size_t wcrtomb(char *, wchar_t, mbstate_t *);
wchar_t *wcscat(wchar_t *, const wchar_t *);
wchar_t *wcschr(const wchar_t *, wchar_t);
int wcscmp(const wchar_t *, const wchar_t *);
int wcscoll(const wchar_t *, const wchar_t *);
wchar_t *wcscpy(wchar_t *, const wchar_t *);
size_t wcscspn(const wchar_t *, const wchar_t *);
size_t wcsftime(wchar_t *, size_t, const wchar_t *,
const struct tm *);
size_t wcslen(const wchar_t *);
wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
int wcsncmp(const wchar_t *, const wchar_t *, size_t);
wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
wchar_t *wcsrchr(const wchar_t *, wchar_t);
size_t wcsrtombs(char *, const wchar_t **, size_t,
mbstate_t *);
size_t wcsspn(const wchar_t *, const wchar_t *);
wchar_t *wcsstr(const wchar_t *, const wchar_t *);
double wcstod(const wchar_t *, wchar_t **);
wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
long int wcstol(const wchar_t *, wchar_t **, int);
unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
wchar_t *wcswcs(const wchar_t *, const wchar_t *);
int wcswidth(const wchar_t *, size_t);
size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
int wctob(wint_t);
wctype_t wctype(const char *);
int wcwidth(wchar_t);
wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
int wmemcmp(const wchar_t *, const wchar_t *, size_t);
wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t);
wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
wchar_t *wmemset(wchar_t *, wchar_t, size_t);
int wprintf(const wchar_t *, ...);
int wscanf(const wchar_t *, ...);
/* MACROS */
#define WCHAR_MAX (0xFFFF)
#define WCHAR_MIN (0x0000)
/* FIXME? */
#define WEOF (0xFFFF)
#endif /* __WCHAR_H_INCLUDED__ */
/* EOF */

46
posix/lib/crt0w32.c Normal file
View File

@@ -0,0 +1,46 @@
/* $Id: crt0w32.c,v 1.1 2002/01/20 21:24:49 ea Exp $
*
* PROJECT : ReactOS / POSIX+ personality
* FILE : subsys/psx/lib/cr0w32.c
* DESCRIPTION: startup code for POSIX+ applications.
* DATE : 2002-01-18
* AUTHOR : Emanuele Aliberti <ea@iol.it>
*/
extern void __stdcall __PdxInitializeData(int*,char***);
extern int main (int,char**,char**);
extern void exit(int);
/* ANSI ENVIRONMENT */
char **_environ = (char**) 0;
int errno = 0;
#ifdef __SUBSYSTEM_WINDOWS__
void WinMainCRTStartup (void)
#else
void mainCRTStartup (void)
#endif
{
char * argv[2] = {"none", 0};
/* TODO: parse the command line */
exit(main(1,argv,0));
}
void __main ()
{
/*
* Store in PSXDLL.DLL two well known global symbols
* references.
*/
__PdxInitializeData (& errno, & _environ); /* PSXDLL.__PdxInitializeData */
/* CRT initialization. */
#ifdef __SUBSYSTEM_WINDOWS__
WinMainCRTStartup ();
#else
mainCRTStartup ();
#endif
}
/* EOF */

117
posix/lib/psxdll/Makefile Normal file
View File

@@ -0,0 +1,117 @@
# $Id: Makefile,v 1.2 2002/02/20 09:17:56 hyperion Exp $
PATH_TO_TOP = ../../../..
TARGET_TYPE = dynlink
TARGET_NAME = psxdll
TARGET_LFLAGS = -nostartfiles
TARGET_SDKLIBS = ntdll.a
TARGET_BASE = 0x68EB0000
TARGET_ENTRY = _DllMain@12
TARGET_CFLAGS = -W -nostdinc -nostdlib -fno-builtin -I$(PATH_TO_TOP)/subsys/psx/include -D__PSXDLL__ -D__PSX_DEBUG_WANT_ALL__
TARGET_OBJECTS = $(TARGET_NAME).o
TARGET_CLEAN = $(OBJECTS)
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
OBJECTS_MISC = \
misc/main.o \
misc/interlock.o \
misc/safeobj.o \
misc/path.o \
misc/fdtable.o
OBJECTS_DIRENT = \
dirent/opendir.o \
dirent/readdir.o \
dirent/closedir.o
OBJECTS_DLFCN = \
dlfcn/dlopen.o \
dlfcn/dlclose.o \
dlfcn/dlsym.o \
dlfcn/dlerror.o
OBJECTS_ERRNO = \
errno/errno.o
OBJECTS_FCNTL = \
fcntl/open.o \
fcntl/fcntl.o
OBJECTS_LIBGEN = \
libgen/basename.o
OBJECTS_SCHED = \
sched/yield.o
OBJECTS_SIGNAL = \
pthread/kill.o \
signal/raise.o
OBJECTS_STDLIB = \
stdlib/abort.o \
stdlib/malloc.o \
stdlib/exit.o
OBJECTS_STRING = \
string/strdup.o \
string/strerror.o
OBJECTS_PTHREAD = \
pthread/create.o \
pthread/exit.o \
pthread/join.o \
pthread/mutex.o \
pthread/self.o
OBJECTS_SYS_UTSNAME = \
sys/utsname/uname.o
OBJECTS_UNISTD = \
unistd/close.o \
unistd/dup.o \
unistd/getcwd.o \
unistd/getpid.o \
unistd/getppid.o
OBJECTS = \
$(OBJECTS_MISC) \
$(OBJECTS_DIRENT) \
$(OBJECTS_DLFCN) \
$(OBJECTS_ERRNO) \
$(OBJECTS_FCNTL) \
$(OBJECTS_LIBGEN) \
$(OBJECTS_SCHED) \
$(OBJECTS_SIGNAL) \
$(OBJECTS_STDLIB) \
$(OBJECTS_STRING) \
$(OBJECTS_PTHREAD) \
$(OBJECTS_SYS_UTSNAME) \
$(OBJECTS_UNISTD)
DEP_OBJECTS = $(OBJECTS)
include $(TOOLS_PATH)/depend.mk
$(TARGET_NAME).o: $(OBJECTS)
$(LD) -r $(OBJECTS) -o $(TARGET_NAME).o
DTFLAGS = -k -l $@
$(TARGET_NAME).a: $(TARGET_NAME).def
$(DLLTOOL) \
$(DTFLAGS) \
-D $(TARGET_NAME).dll \
-d $(TARGET_NAME).def
# EOF

View File

@@ -0,0 +1,36 @@
/* $Id: closedir.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dirent/closedir.c
* PURPOSE: Close a directory stream
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 01/02/2002: Created
* 13/02/2002: KJK::Hyperion: modified to use file descriptors
*/
#include <dirent.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <psx/dirent.h>
#include <psx/safeobj.h>
int closedir(DIR *dirp)
{
/* check the "magic" signature */
if(!__safeobj_validate(dirp, __IDIR_MAGIC))
{
errno = EBADF;
return (-1);
}
/* this will close the handle, deallocate the internal object and
invalidate the descriptor */
return (close(((struct __internal_DIR *)dirp)->fildes));
}
/* EOF */

View File

@@ -0,0 +1,100 @@
/* $Id: opendir.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dirent/opendir.c
* PURPOSE: Open a directory
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/01/2002: Created
* 13/02/2002: KJK::Hyperion: modified to use file descriptors
*/
#include <sys/types.h>
#include <fcntl.h>
#include <dirent.h>
#include <wchar.h>
#include <errno.h>
#include <psx/debug.h>
#include <psx/stdlib.h>
#include <psx/dirent.h>
#include <psx/safeobj.h>
DIR *opendir(const char *dirname)
{
ANSI_STRING strDirName;
UNICODE_STRING wstrDirName;
DIR *pdData;
RtlInitAnsiString(&strDirName, (PCSZ)dirname);
RtlAnsiStringToUnicodeString(&wstrDirName, &strDirName, TRUE);
pdData = (DIR *)_Wopendir(wstrDirName.Buffer);
RtlFreeUnicodeString(&wstrDirName);
return (pdData);
}
DIR *_Wopendir(const wchar_t *dirname)
{
struct __internal_DIR *pidData;
int nFileNo;
/* allocate internal object */
pidData = __malloc(sizeof(*pidData));
/* allocation failed */
if(pidData == 0)
{
errno = ENOMEM;
return (0);
}
/* open the directory */
nFileNo = _Wopen(dirname, O_RDONLY | _O_DIRFILE);
/* failure */
if(nFileNo < 0)
{
__free(pidData);
return (0);
}
/* directory file descriptors must be closed on exec() */
if(fcntl(nFileNo, F_SETFD, FD_CLOEXEC) == -1)
WARN
(
"couldn't set FD_CLOEXEC flag on file number %u, errno %u",
nFileNo,
errno
);
/* associate the internal data to the file descriptor */
if(fcntl(nFileNo, F_SETXP, pidData) == -1)
WARN
(
"couldn't associate the object at 0x%X to the file number %u, errno %u",
pidData,
nFileNo,
errno
);
if(fcntl(nFileNo, F_SETXS, sizeof(*pidData)) == -1)
WARN
(
"couldn't set the extra data size of the file number %u, errno %u",
nFileNo,
errno
);
pidData->signature = __IDIR_MAGIC;
/* success */
return ((DIR *)pidData);
}
/* EOF */

View File

@@ -0,0 +1,214 @@
/* $Id: readdir.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dirent/readdir.c
* PURPOSE: Read directory
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/01/2002: Created
* 13/02/2002: KJK::Hyperion: modified to use file descriptors
*/
#include <sys/types.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stddef.h>
#include <dirent.h>
#include <psx/dirent.h>
#include <psx/debug.h>
#include <psx/errno.h>
#include <psx/safeobj.h>
#include <ddk/ntddk.h>
struct dirent *readdir(DIR *dirp)
{
struct _Wdirent *lpwdReturn;
struct __internal_DIR *pidData;
ANSI_STRING strFileName;
UNICODE_STRING wstrFileName;
NTSTATUS nErrCode;
/* call Unicode function */
lpwdReturn = _Wreaddir(dirp);
/* failure */
if(lpwdReturn == 0)
return (0);
/* get the internal data object */
pidData = ((struct __internal_DIR *)dirp);
/* create NT Unicode string from the Unicode dirent's buffer */
RtlInitUnicodeString(&wstrFileName, pidData->ent.de_unicode.d_name);
/* HACK: make the ANSI string point to the same buffer where the Unicode string is stored */
strFileName.Buffer = (PCSZ)&pidData->info.FileName[0];
strFileName.Length = 0;
strFileName.MaximumLength = MAX_PATH;
/* convert the filename to ANSI */
nErrCode = RtlUnicodeStringToAnsiString(&strFileName, &wstrFileName, FALSE);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
errno = __status_to_errno(nErrCode);
return (0);
}
/* make the ANSI dirent filename point to the ANSI buffer */
pidData->ent.de_ansi.d_name = strFileName.Buffer;
/* null-terminate the ANSI name */
pidData->ent.de_ansi.d_name[strFileName.Length] = 0;
/* success */
return (&(pidData->ent.de_ansi));
}
int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result)
{
errno = ENOSYS;
return (0);
}
struct _Wdirent *_Wreaddir(DIR *dirp)
{
HANDLE hFile;
HANDLE hDir;
OBJECT_ATTRIBUTES oaFileAttribs;
UNICODE_STRING wstrFileName;
FILE_INTERNAL_INFORMATION fiiInfo;
IO_STATUS_BLOCK isbStatus;
NTSTATUS nErrCode;
struct __internal_DIR *pidData;
/* check the "magic" signature */
if(!__safeobj_validate(dirp, __IDIR_MAGIC))
{
errno = EINVAL;
return (0);
}
/* get internal data */
pidData = (struct __internal_DIR *)dirp;
/* get handle */
hDir = (HANDLE)fcntl(pidData->fildes, F_GETFH);
/* failure */
if(((int)hDir) == -1)
return (0);
/* read next directory entry */
nErrCode = NtQueryDirectoryFile
(
hDir,
NULL,
NULL,
NULL,
&isbStatus,
(PVOID)&pidData->info,
sizeof(pidData->info) + sizeof(WCHAR) * (MAX_PATH - 1),
FileDirectoryInformation,
TRUE,
NULL,
FALSE
);
/* failure or EOF */
if(!NT_SUCCESS(nErrCode))
{
if(nErrCode == (NTSTATUS)STATUS_NO_MORE_FILES)
return (0);
else
{
ERR("NtQueryDirectoryFile() failed with status 0x%08X", nErrCode);
errno = __status_to_errno(nErrCode);
return (0);
}
}
/* null-terminate the filename, just in case */
pidData->info.FileName[pidData->info.FileNameLength / sizeof(WCHAR)] = 0;
INFO("this entry: %ls", pidData->info.FileName);
#if 0
/* file inodes are not returned by NtQueryDirectoryFile, we have to open every file */
/* set file's object attributes */
wstrFileName.Length = pidData->info.FileNameLength;
wstrFileName.MaximumLength = sizeof(WCHAR) * MAX_PATH;
wstrFileName.Buffer = &pidData->info.FileName[0];
oaFileAttribs.Length = sizeof(OBJECT_ATTRIBUTES);
oaFileAttribs.RootDirectory = pidData->dirhandle;
oaFileAttribs.ObjectName = &wstrFileName;
oaFileAttribs.Attributes = 0;
oaFileAttribs.SecurityDescriptor = NULL;
oaFileAttribs.SecurityQualityOfService = NULL;
/* open the file */
nErrCode = NtOpenFile
(
&hFile,
FILE_READ_ATTRIBUTES,
&oaFileAttribs,
&isbStatus,
0,
FILE_SYNCHRONOUS_IO_NONALERT
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
ERR("NtOpenFile() failed with status %#X", nErrCode);
errno = __status_to_errno(nErrCode);
return (0);
}
/* get the internal information for the file */
nErrCode = NtQueryInformationFile
(
hFile,
&isbStatus,
&fiiInfo,
sizeof(FILE_INTERNAL_INFORMATION),
FileInternalInformation
);
/* close the handle (not needed anymore) */
NtClose(hFile);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
ERR("NtQueryInformationFile() failed with status %#X", nErrCode);
errno = __status_to_errno(nErrCode);
return (0);
}
/* return file inode */
pidData->ent.de_unicode.d_ino = (ino_t)fiiInfo.IndexNumber.QuadPart;
#endif
FIXME("file inodes currently hardcoded to 0");
pidData->ent.de_unicode.d_ino = 0;
/* return file name */
pidData->ent.de_unicode.d_name = &pidData->info.FileName[0];
/* success */
return &(pidData->ent.de_unicode);
}
int _Wreaddir_r(DIR *dirp, struct _Wdirent *entry, struct _Wdirent **result)
{
errno = ENOSYS;
return (0);
}
/* EOF */

View File

@@ -0,0 +1,60 @@
/* $Id: dlclose.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dlfcn/dlclose.c
* PURPOSE: Close a dlopen() object
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <ntdll/ldr.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <psx/debug.h>
#include <psx/dlfcn.h>
#include <psx/errno.h>
int dlclose(void *handle)
{
if(handle == 0)
{
ERR("invalid handle passed to dlclose");
__dl_set_last_error(EFAULT); /* FIXME? maybe EINVAL? */
return (-1);
}
if(((struct __dlobj *)handle)->global)
{
TODO("global symbol matching not implemented");
__dl_set_last_error(EINVAL);
return (-1);
}
else
{
NTSTATUS nErrCode = LdrUnloadDll(((struct __dlobj *)handle)->handle);
if(!NT_SUCCESS(nErrCode))
{
ERR("LdrUnloadDll(%#x) failed with status %d", ((struct __dlobj *)handle)->handle, nErrCode);
free(handle);
__dl_set_last_error(__status_to_errno(nErrCode));
return (-1);
}
}
free(handle);
return (0);
}
/* EOF */

View File

@@ -0,0 +1,36 @@
/* $Id: dlerror.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dlfcn/dlerror.c
* PURPOSE: Gain access to an executable object file
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <ntdll/ldr.h>
#include <dlfcn.h>
#include <string.h>
#include <psx/debug.h>
#include <psx/dlfcn.h>
#include <psx/errno.h>
static int __dl_last_error = 0;
void __dl_set_last_error(int err)
{
FIXME("dlfcn error handling not thread safe");
__dl_last_error = err;
}
char *dlerror(void)
{
return strerror(__dl_last_error);
}
/* EOF */

View File

@@ -0,0 +1,129 @@
/* $Id: dlopen.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dlfcn/dlopen.c
* PURPOSE: Gain access to an executable object file
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <ntdll/ldr.h>
#include <wchar.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <psx/dlfcn.h>
#include <psx/errno.h>
#include <psx/debug.h>
void *__wdlopen(const wchar_t *, int);
void *dlopen(const char *file, int mode)
{
/* TODO: ANSI-to-Unicode stubs like this need to be standardized in some way */
void * pRetVal;
ANSI_STRING strFile;
UNICODE_STRING wstrFile;
RtlInitAnsiString(&strFile, (LPSTR)file);
RtlAnsiStringToUnicodeString (&wstrFile, &strFile, TRUE);
pRetVal = __wdlopen((wchar_t *)wstrFile.Buffer, mode);
free(wstrFile.Buffer);
return pRetVal;
}
void *__wdlopen(const wchar_t *file, int mode)
{
NTSTATUS nErrCode;
UNICODE_STRING wstrNativePath;
struct __dlobj * pdloObject;
if(file == 0)
{
/* POSIX dynamic linking allows for global symbol matching */
pdloObject = (struct __dlobj *)malloc(sizeof(struct __dlobj));
TODO("\
move the global symbol matching semantics into the PE Loader \
(NTDLL Ldr family of calls), and just return a pointer to the module \
image\
");
pdloObject->global = 1;
return (pdloObject);
}
FIXME("\
LdrLoadDll() only accepts DOS paths - probably because the POSIX \
standard didn't specify dynamic linking interfaces at the time Windows NT \
was born \
");
#if 0
/* TODO: LdrLoadNtDll() or LdrLoadDllEx() (the former is preferrable, since
the latter is more likely to be implemented with different purposes from
Microsoft), accepting native NT paths */
if(wcschr(file, '/'L) != NULL)
{
/* TODO: RtlPosixPathNameToNtPathName_U */
if(!RtlPosixPathNameToNtPathName_U((LPWSTR)file, &wstrNativePath, NULL, NULL))
{
__dl_set_last_error(ENOENT);
return (NULL);
}
}
else
{
RtlInitUnicodeString(&wstrNativePath, (LPWSTR)file);
}
#endif
RtlInitUnicodeString(&wstrNativePath, (LPWSTR)file);
pdloObject = (struct __dlobj *)malloc(sizeof(struct __dlobj));
pdloObject->global = 0;
WARN("\
mode flags are not fully supported by Windows NT, due to the \
completely different semantics of dynamical linking (for \
example the global symbol matching is unsupported). This \
implementation will then behave as if mode was set to \
(RTLD_NOW | RTLD_GLOBAL), and fail if other flags are set.\
");
if(__dl_get_scope_flag(mode) == RTLD_LOCAL)
{
__dl_set_last_error(EINVAL);
return (NULL);
}
/* load the DLL */
nErrCode = LdrLoadDll
(
NULL,
0,
&wstrNativePath,
(PVOID*)&pdloObject->handle
);
if(!NT_SUCCESS(nErrCode))
{
__dl_set_last_error(__status_to_errno(nErrCode));
return (NULL);
}
return (pdloObject);
}
/* EOF */

View File

@@ -0,0 +1,92 @@
/* $Id: dlsym.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/dlfcn/dlsym.c
* PURPOSE: Obtain the address of a symbol from a dlopen() object
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <ntdll/ldr.h>
#include <dlfcn.h>
#include <psx/dlfcn.h>
#include <psx/errno.h>
#include <psx/debug.h>
void *__dlsymn(void *, unsigned long int);
void *__dlsym(void *, int, const char *, unsigned long int);
void *dlsym(void *handle, const char *name)
{
return (__dlsym(handle, 1, name, 0));
}
void *__dlsymn(void *handle, unsigned long int ordinal)
{
return (__dlsym(handle, 0, 0, ordinal));
}
void *__dlsym(void *handle, int by_name, const char *name, unsigned long int ordinal)
{
struct __dlobj * pdloObject;
void * pProcAddr;
NTSTATUS nErrCode;
if(handle == RTLD_NEXT)
{
FIXME("implement RTLD_NEXT semantics");
return (NULL);
}
pdloObject = (struct __dlobj *) handle;
if(pdloObject->global)
{
FIXME("implement global symbol matching");
return (NULL);
}
if(by_name)
{
ANSI_STRING strName;
RtlInitAnsiString(&strName, (LPSTR)name);
nErrCode = LdrGetProcedureAddress
(
pdloObject->handle,
&strName,
0,
(PVOID *)&pProcAddr
);
}
else
{
nErrCode = LdrGetProcedureAddress
(
pdloObject->handle,
NULL,
ordinal,
(PVOID *)&pProcAddr
);
}
if(!NT_SUCCESS(nErrCode))
{
__dl_set_last_error(__status_to_errno(nErrCode));
return (NULL);
}
return pProcAddr;
}
/* EOF */

View File

@@ -0,0 +1,25 @@
/* $Id: errno.c,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/errno/errno.c
* PURPOSE: Internal errno implementation
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/12/2001: Created
*/
#include <psx/debug.h>
#include <psx/errno.h>
static int __errno_storage = 0;
int * __PdxGetThreadErrNum(void)
{
FIXME("errno currently not thread-safe");
return (&__errno_storage);
}
/* EOF */

View File

@@ -0,0 +1,311 @@
/* $Id: fcntl.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/fcntl/fcntl.c
* PURPOSE: File control
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 13/02/2002: Created
* 15/02/2002: Implemented fcntl() (KJK::Hyperion)
*/
#include <ddk/ntddk.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdarg.h>
#include <psx/errno.h>
#include <psx/stdlib.h>
#include <psx/fdtable.h>
#include <psx/pdata.h>
#include <psx/debug.h>
int fcntl(int fildes, int cmd, ...)
{
__fdtable_t *pftFdTable;
__fildes_t *pfdDescriptor;
NTSTATUS nErrCode;
int nRetVal;
int nThirdArg;
void *pThirdArg;
va_list vlArgs;
/* lock the environment */
__PdxAcquirePdataLock();
/* get the file descriptors table */
pftFdTable = __PdxGetProcessData()->FdTable;
/* fildes is an invalid, closed or uninitialized descriptor */
if
(
fildes < 0 ||
fildes >= OPEN_MAX ||
__fdtable_entry_isavail(pftFdTable, fildes) == 0 ||
__fdtable_entry_get(pftFdTable, fildes) == 0
)
{
errno = EBADF;
__PdxReleasePdataLock();
return (-1);
}
/* get the file descriptor referenced by fildes */
pfdDescriptor = __fdtable_entry_get(pftFdTable, fildes);
/* get third argument as integer */
va_start(vlArgs, cmd);
nThirdArg = va_arg(vlArgs, int);
va_end(vlArgs);
/* get third argument as pointer */
va_start(vlArgs, cmd);
pThirdArg = va_arg(vlArgs, void *);
va_end(vlArgs);
/* initialize return value */
nRetVal = -1;
switch(cmd)
{
case F_DUPFD:
{
va_list vlArgs;
int nDupFileNo;
__fildes_t *pfdDupDescriptor;
/* allocate the duplicated descriptor */
nDupFileNo = __fdtable_entry_add(pftFdTable, nThirdArg, 0, &pfdDupDescriptor);
if(nDupFileNo)
break;
/* copy the open flags */
pfdDupDescriptor->OpenFlags = pfdDescriptor->OpenFlags;
/* clear the FD_CLOEXEC flag */
pfdDupDescriptor->FdFlags = pfdDescriptor->FdFlags & ~FD_CLOEXEC;
/* duplicate the extra data */
if(pfdDescriptor->ExtraDataSize != 0 && pfdDescriptor->ExtraData != 0)
{
/* allocate space for the duplicated extra data */
pfdDupDescriptor->ExtraDataSize = pfdDescriptor->ExtraDataSize;
pfdDupDescriptor->ExtraData = __malloc(pfdDupDescriptor->ExtraDataSize);
/* failure */
if(pfdDupDescriptor->ExtraData == 0)
{
errno = ENOMEM;
break;
}
/* copy the extra data */
memcpy(pfdDupDescriptor->ExtraData, pfdDescriptor->ExtraData, pfdDupDescriptor->ExtraDataSize);
INFO
(
"copied %u bytes from 0x%08X into 0x%08X",
pfdDupDescriptor->ExtraDataSize,
pfdDescriptor->ExtraData,
pfdDupDescriptor->ExtraData
);
}
/* duplicate the handle */
nErrCode = NtDuplicateObject
(
NtCurrentProcess(),
pfdDescriptor->FileHandle,
NtCurrentProcess(),
&pfdDupDescriptor->FileHandle,
0,
0,
DUPLICATE_SAME_ACCESS /* | DUPLICATE_SAME_ATTRIBUTES */
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
__free(pfdDupDescriptor->ExtraData);
errno = __status_to_errno(nErrCode);
break;
}
INFO
(
"duplicated handle 0x%08X into handle 0x%08X",
pfdDescriptor->FileHandle,
pfdDupDescriptor->FileHandle
);
/* return the duplicated file number */
nRetVal = nDupFileNo;
break;
}
case F_GETFD:
{
nRetVal = pfdDescriptor->FdFlags;
break;
}
case F_SETFD:
{
pfdDescriptor->FdFlags = nThirdArg;
nRetVal = 0;
break;
}
case F_GETFL:
{
nRetVal = pfdDescriptor->OpenFlags;
break;
}
case F_SETFL:
{
pfdDescriptor->OpenFlags = nThirdArg;
nRetVal = 0;
break;
}
case F_GETLK:
{
errno = EINVAL;
break;
}
case F_SETLK:
{
errno = EINVAL;
break;
}
case F_SETLKW:
{
errno = EINVAL;
break;
}
case F_NEWFD:
{
/* allocate a new descriptor */
nRetVal = __fdtable_entry_add(pftFdTable, fildes, (__fildes_t *)pThirdArg, 0);
break;
}
case F_DELFD:
{
/* invalid return pointer */
if(pThirdArg == 0)
{
errno = EINVAL;
break;
}
memcpy((__fildes_t *)pThirdArg, pfdDescriptor, sizeof(*pfdDescriptor));
/* remove file descriptor */
nRetVal = __fdtable_entry_remove(pftFdTable, fildes);
}
case F_GETALL:
{
/* invalid return pointer */
if(pThirdArg == 0)
{
errno = EINVAL;
break;
}
/* return a copy of the file descriptor */
memcpy((__fildes_t *)pThirdArg, pfdDescriptor, sizeof(*pfdDescriptor));
nRetVal = 0;
}
case F_SETALL:
{
/* invalid file descriptor to copy attributes from */
if(pThirdArg == 0)
{
errno = EINVAL;
break;
}
/* copy the attributes of file descriptor from the provided descriptor */
memcpy(pfdDescriptor, pThirdArg, sizeof(*pfdDescriptor));
nRetVal = 0;
}
case F_GETXP:
{
/* invalid return pointer */
if(pThirdArg == 0)
{
errno = EINVAL;
break;
}
/* return a pointer to the extra data associated to the descriptor */
*((void **)pThirdArg) = pfdDescriptor->ExtraData;
nRetVal = 0;
break;
}
case F_SETXP:
{
/* set the pointer to the extra data associated */
pfdDescriptor->ExtraData = pThirdArg;
nRetVal = 0;
break;
}
case F_GETXS:
{
nRetVal = pfdDescriptor->ExtraDataSize;
break;
}
case F_SETXS:
{
pfdDescriptor->ExtraDataSize = nThirdArg;
nRetVal = 0;
break;
}
case F_GETFH:
{
/* invalid return pointer */
if(pThirdArg == 0)
{
errno = EINVAL;
break;
}
/* return the handle associated to the descriptor */
*((void **)pThirdArg) = pfdDescriptor->FileHandle;
nRetVal = 0;
break;
}
case F_SETFH:
{
pfdDescriptor->FileHandle = pThirdArg;
nRetVal = 0;
break;
}
default:
errno = EINVAL;
}
/* unlock the environment */
__PdxReleasePdataLock();
return (nRetVal);
}
/* EOF */

View File

@@ -0,0 +1,181 @@
/* $Id: open.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/fcntl/open.c
* PURPOSE: Open a file
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 04/02/2002: Created
*/
#include <ddk/ntddk.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <psx/path.h>
#include <psx/debug.h>
#include <psx/errno.h>
#include <psx/pdata.h>
int open(const char *path, int oflag, ...)
{
ANSI_STRING strPath;
UNICODE_STRING wstrPath;
int nRetVal;
RtlInitAnsiString(&strPath, (PCSZ)path);
RtlAnsiStringToUnicodeString(&wstrPath, &strPath, TRUE);
nRetVal = _Wopen(wstrPath.Buffer, oflag);
RtlFreeUnicodeString(&wstrPath);
return (nRetVal);
}
int _Wopen(const wchar_t *path, int oflag, ...)
{
OBJECT_ATTRIBUTES oaFileAttribs;
IO_STATUS_BLOCK isbStatus;
UNICODE_STRING wstrNativePath;
NTSTATUS nErrCode;
ULONG nDesiredAccess;
ULONG nCreateDisposition;
ULONG nCreateOptions;
HANDLE hFile;
#if 0
mode_t mFileMode;
#endif
int nFileNo;
__fdtable_t *pftTable;
__fildes_t fdDescriptor;
/* translate file access flag */
switch(oflag & O_ACCMODE)
{
case O_RDONLY:
{
nDesiredAccess = FILE_READ_ACCESS;
nCreateOptions = 0;
break;
}
case O_WRONLY:
{
nDesiredAccess = FILE_WRITE_ACCESS;
nCreateOptions = FILE_NON_DIRECTORY_FILE; /* required by the specification */
break;
}
case O_RDWR:
{
nDesiredAccess = FILE_READ_ACCESS | FILE_WRITE_ACCESS;
nCreateOptions = FILE_NON_DIRECTORY_FILE; /* required by the specification */
break;
}
default:
{
errno = EINVAL;
return (-1);
}
}
/* miscellaneous flags */
if((oflag & _O_DIRFILE) == _O_DIRFILE)
nCreateOptions |= FILE_DIRECTORY_FILE;
/* creation disposition */
if((oflag & O_CREAT) == O_CREAT)
if((oflag & O_EXCL) == O_EXCL)
nCreateDisposition = FILE_CREATE; /* O_CREAT + O_EXCL: create file, fail if file exists */
else
nCreateDisposition = FILE_OPEN_IF; /* O_CREAT: open file, create if file doesn't exist */
else if((oflag & O_TRUNC) == O_TRUNC)
nCreateDisposition = FILE_OVERWRITE; /* O_TRUNC: truncate existing file */
else
nCreateDisposition = FILE_OPEN; /* normal: open file, fail if file doesn't exist */
/* lock the environment */
__PdxAcquirePdataLock();
/* convert the path into a native path */
if(!__PdxPosixPathNameToNtPathName((LPWSTR)path, __PdxGetNativePathBuffer(), __PdxGetCurDir(), NULL))
{
__PdxReleasePdataLock();
return (-1);
}
/* set file generic object attributes */
oaFileAttribs.Length = sizeof(oaFileAttribs);
oaFileAttribs.RootDirectory = __PdxGetRootHandle();
oaFileAttribs.ObjectName = &wstrNativePath;
oaFileAttribs.Attributes = OBJ_INHERIT; /* child processes inherit all file descriptors */
oaFileAttribs.SecurityDescriptor = NULL;
oaFileAttribs.SecurityQualityOfService = NULL;
/* open or create the file */
nErrCode = NtCreateFile
(
&hFile,
nDesiredAccess | SYNCHRONIZE,
&oaFileAttribs,
&isbStatus,
NULL,
0,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
nCreateDisposition,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
nCreateOptions
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
ERR("NtCreateFile() failed with status 0x%08X", nErrCode);
__PdxReleasePdataLock();
errno = __status_to_errno(nErrCode);
return (-1);
}
/* initialize descriptor constructor */
memset(&fdDescriptor, 0, sizeof(fdDescriptor));
fdDescriptor.FileHandle = hFile;
fdDescriptor.OpenFlags = oflag;
/* allocate a new file descriptor */
nFileNo = fcntl(0, F_NEWFD, &fdDescriptor);
/* unlock the environment */
__PdxReleasePdataLock();
/* could not allocate the file descriptor */
if(nFileNo < 0)
{
NtClose(hFile);
return (-1);
}
/* return the file number */
return (nFileNo);
}
int creat(const char *path, mode_t mode)
{
return (open(path, O_WRONLY | O_CREAT | O_TRUNC, mode));
}
int _Wcreat(const wchar_t *path, mode_t mode)
{
return (_Wopen(path, O_WRONLY | O_CREAT | O_TRUNC, mode));
}
/* EOF */

View File

@@ -0,0 +1,114 @@
/* $Id: basename.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/libgen/basename.c
* PURPOSE: Return the last component of a pathname
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 15/02/2002: Created
*/
#include <sys/types.h>
#include <libgen.h>
#include <wchar.h>
#include <psx/path.h>
static const char *__basename_dot = ".";
static const wchar_t *__Wbasename_dot = L".";
char *basename(char *path)
{
char *pcTail;
size_t nStrLen;
/* null or empty string */
if(path == 0 && ((nStrLen = strlen(path)) == 0))
return ((char *)__basename_dot);
if(nStrLen == 1)
{
/* path is "/", return "/" */
if(IS_CHAR_DELIMITER_A(path[0]))
{
path[0] = '/';
path[1] = 0;
return (path);
}
/* path is a single character, return it */
else
{
return (path);
}
}
/* tail of the string (null terminator excluded) */
pcTail = &path[nStrLen - 1];
/* skip trailing slashes */
while(pcTail > path && IS_CHAR_DELIMITER_A(*pcTail))
pcTail --;
pcTail[1] = 0;
/* go backwards until a delimiter char or the beginning of the string */
while(pcTail >= path)
/* delimiter found, return the basename */
if(IS_CHAR_DELIMITER_A(*pcTail))
return (&pcTail[1]);
else
pcTail --;
/* return all the path */
return (path);
}
wchar_t *_Wbasename(wchar_t *path)
{
wchar_t *pwcTail;
size_t nStrLen;
/* null or empty string */
if(path == 0 && ((nStrLen = wcslen(path)) == 0))
return ((wchar_t *)__Wbasename_dot);
if(nStrLen == 1)
{
/* path is "/", return "/" */
if(IS_CHAR_DELIMITER_U(path[0]))
{
path[0] = L'/';
path[1] = 0;
return (path);
}
/* path is a single character, return it */
else
{
return (path);
}
}
/* tail of the string (null terminator excluded) */
pwcTail = &path[nStrLen - 1];
/* skip trailing slashes */
while(pwcTail > path && IS_CHAR_DELIMITER_U(*pwcTail))
pwcTail --;
pwcTail[1] = 0;
/* go backwards until a delimiter char or the beginning of the string */
while(pwcTail >= path)
/* delimiter found, return the basename */
if(IS_CHAR_DELIMITER_U(*pwcTail))
return (&pwcTail[1]);
else
pwcTail --;
/* return all the path */
return (path);
}
/* EOF */

View File

@@ -0,0 +1,234 @@
/* $Id: fdtable.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/misc/fdtable.c
* PURPOSE: File descriptors table functions
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 12/02/2002: Created
*/
#include <string.h>
#include <errno.h>
#include <psx/fdtable.h>
#include <psx/stdlib.h>
#include <psx/debug.h>
#include <psx/safeobj.h>
int __fdtable_init(__fdtable_t * fdtable)
{
if(fdtable == 0)
{
errno = EINVAL;
return (-1);
}
memset(fdtable, 0, sizeof(*fdtable));
fdtable->Signature = __FDTABLE_MAGIC;
return (0);
}
int __fdtable_free(__fdtable_t * fdtable)
{
if(fdtable == 0)
{
errno = EINVAL;
return (-1);
}
__free(&fdtable->Descriptors);
memset(fdtable, 0, sizeof(*fdtable));
fdtable->Signature = MAGIC('B', 'A', 'A', 'D');
return (0);
}
int __fdtable_entry_isavail(__fdtable_t * fdtable, int fileno)
{
return ((fdtable->DescriptorsBitmap[fileno / 32] >> (fileno % 32)) % 2);
}
int __fdtable_entry_nextavail(__fdtable_t * fdtable, int fileno)
{
int nCurMapIndex;
int nUnusedIndex;
uint32_t nCurMapCell;
nUnusedIndex = fileno;
/* The file descriptors bitmap is an array of 32 bit unsigned integers (32 bit
integers were chosen for proper data alignment without padding). The array is
big enough to hold at least OPEN_MAX bits, that is it has OPEN_MAX / 32 cells
(see also the __fdtable_t definition in psx/fdtable.h). Bits correspond to
file numbers: if a bit is 1, the corresponding file number is in use, else
it's unused. Bit numbering is right-to-left wise, that is the rightmost (least
significative) bit of cell 0 corresponds to file number 0, the leftmost (most
significative) bit of cell 0 to file number 7, the leftmost bit of cell 1 to
file number 8, and so on
*/
/* NOTE: I'm sure the algorytm can be greatly optimized, but I prefer to privilege
readability - it allows for more maintenable code. Please don't pretend to
outsmart the compiler: such optimizations as performing divisions as bit shifts
are useless */
/* index of the bitmap cell containing nUnusedIndex */
nCurMapIndex = nUnusedIndex / 32;
/* get a copy of the bitmap cell containg nUnusedIndex, and shift it to the right
so that the rightmost (least significative) bit is the one referencing nUnusedIndex */
nCurMapCell = fdtable->DescriptorsBitmap[nCurMapIndex] >> (nUnusedIndex % 32);
while(1)
{
/* if the least significative bit of the current cell is 0, we've found an unused
fileno, and we return it */
if((nCurMapCell % 2) == 0)
return (nUnusedIndex);
/* on to next fileno */
nUnusedIndex ++;
/* this is NOT a failure. -1 with undefined errno means that no unused file
number exists */
if(nUnusedIndex >= OPEN_MAX)
return (-1);
/* this fileno is referenced in the next cell */
if((nUnusedIndex % 32) == 0)
{
nCurMapIndex ++;
nCurMapCell = fdtable->DescriptorsBitmap[nCurMapIndex];
}
/* on to next fileno (bit) in the current cell */
else
nCurMapCell >>= 1;
}
return (-1);
}
int __fdtable_entry_add(__fdtable_t * fdtable, int fileno, __fildes_t * fildes, __fildes_t ** newfd)
{
int nFileNo;
/* descriptors count reached OPEN_MAX */
if(fdtable->UsedDescriptors >= OPEN_MAX)
{
ERR("file descriptor table full");
errno = EMFILE;
return (-1);
}
/* base fileno less than zero: use the lowest unused fileno */
if(fileno < 0)
nFileNo = fdtable->LowestUnusedFileNo;
/* base fileno greater than or equal to zero: use the next available fileno */
else
nFileNo = __fdtable_entry_nextavail(fdtable, fileno);
INFO("lowest unused file number is %d", nFileNo);
/* descriptors count reached OPEN_MAX */
if(nFileNo < 0)
{
ERR("nFileNo is less than zero");
errno = EMFILE;
return (-1);
}
/* if the table doesn't have enough space for the next entry ... */
if(nFileNo >= fdtable->AllocatedDescriptors)
{
void * pTemp;
INFO
(
"growing the array from %lu to %lu bytes",
fdtable->AllocatedDescriptors * sizeof(*fdtable->Descriptors),
(nFileNo + 1) * sizeof(*fdtable->Descriptors)
);
/* ... try to increase the size of the table */
pTemp = __realloc
(
fdtable->Descriptors,
(nFileNo + 1) * sizeof(*fdtable->Descriptors)
);
/* reallocation failed */
if(pTemp == 0)
{
ERR("__realloc() failed");
errno = ENOMEM;
return (-1);
}
/* update the table */
fdtable->AllocatedDescriptors = nFileNo + 1;
fdtable->Descriptors = pTemp;
}
/* initialize descriptor */
if(fildes == 0)
memset(&fdtable->Descriptors[nFileNo], 0, sizeof(__fildes_t));
else
memcpy(&fdtable->Descriptors[nFileNo], fildes, sizeof(__fildes_t));
if(newfd != 0)
*newfd = &fdtable->Descriptors[nFileNo];
INFO
(
"file number %d: handle 0x%08X, open flags 0x%08X, flags 0x%08X, extra data size %u, extra data at 0x%08X",
nFileNo,
fdtable->Descriptors[nFileNo].FileHandle,
fdtable->Descriptors[nFileNo].OpenFlags,
fdtable->Descriptors[nFileNo].FdFlags,
fdtable->Descriptors[nFileNo].ExtraDataSize,
fdtable->Descriptors[nFileNo].ExtraData
);
INFO
(
"incrementing used descriptors count from %u to %u",
fdtable->UsedDescriptors,
fdtable->UsedDescriptors + 1
);
fdtable->UsedDescriptors ++;
INFO
(
"setting bit %u of cell %u of the bitmap to 1",
nFileNo % 32,
nFileNo / 32
);
fdtable->DescriptorsBitmap[nFileNo / 32] |= (1 << (nFileNo % 32));
fdtable->LowestUnusedFileNo = __fdtable_entry_nextavail(fdtable, nFileNo);
INFO("setting the lowest unused file number to %d", fdtable->LowestUnusedFileNo);
return (nFileNo);
}
int __fdtable_entry_remove(__fdtable_t * fdtable, int fileno)
{
return (-1);
}
__fildes_t *__fdtable_entry_get(__fdtable_t * fdtable, int fileno)
{
/* this fileno hasn't been allocated */
if(fileno >= fdtable->AllocatedDescriptors)
return (0);
return (&fdtable->Descriptors[fileno]);
}
/* EOF */

View File

@@ -0,0 +1,83 @@
/* $Id: interlock.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/misc/interlock.c
* PURPOSE: inter-locked increments/decrements
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 20/01/2002: Adapted from lib/kernel32/synch/intrlck.c
*/
/*
* NOTE by KJK::Hyperion: I do not understand what's behind these functions.
* Don't ask me how they work, or to fix errors in them.
* Please refer to the authors referenced in the original
* file, lib/kernel32/synch/intrlck.c
*/
/* TODO? move these in some shared library */
#include <psx/interlock.h>
int __interlock_inc(int * addend)
{
int ret = 0;
__asm__
(
" lock\n" /* for SMP systems */
" incl (%1)\n"
" je 2f\n"
" jl 1f\n"
" incl %0\n"
" jmp 2f\n"
"1: dec %0\n"
"2:\n"
:"=r" (ret):"r" (addend), "0" (0): "memory"
);
return (ret);
}
int __interlock_dec(int * addend)
{
int ret = 0;
__asm__
(
" lock\n" /* for SMP systems */
" decl (%1)\n"
" je 2f\n"
" jl 1f\n"
" incl %0\n"
" jmp 2f\n"
"1: dec %0\n"
"2:\n"
:"=r" (ret):"r" (addend), "0" (0): "memory"
);
return (ret);
}
int __interlock_add(int * addend, int increment)
{
int ret = 0;
__asm__
(
" lock\n" /* for SMP systems */
" xaddl %0,(%1)"
:"=r" (ret)
:"r" (addend), "0" (increment)
:"memory"
);
return (ret);
}
/* EOF */

View File

@@ -0,0 +1,19 @@
/* $Id: main.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/misc/main.c
* PURPOSE: psxdll.dll entry point
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/12/2001: Created
*/
int __stdcall DllMain(void *hinstDll, unsigned long int dwReason, void *reserved)
{
return (1);
}
/* EOF */

View File

@@ -0,0 +1,460 @@
/* $Id: path.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/misc/path.c
* PURPOSE: POSIX subsystem path utilities
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 31/01/2002: Created
*/
#include <ddk/ntddk.h>
#include <errno.h>
#include <string.h>
#include <psx/stdlib.h>
#include <psx/pdata.h>
#include <psx/path.h>
BOOLEAN
__PdxPosixPathGetNextComponent_U
(
IN UNICODE_STRING PathName,
IN OUT PUNICODE_STRING PathComponent,
OUT PBOOLEAN TrailingDelimiter OPTIONAL
)
{
int i, j;
USHORT l = PathName.Length / sizeof(WCHAR);
if(PathComponent->Buffer == 0)
i = 0;
else
i = ((ULONG)PathComponent->Buffer - (ULONG)PathName.Buffer + PathComponent->Length) / sizeof(WCHAR);
/* skip leading empty components */
while(1)
if(i >= l)
{
PathComponent->Length = PathComponent->MaximumLength = 0;
return (FALSE);
}
else if(IS_CHAR_DELIMITER_U(PathName.Buffer[i]))
i ++;
else
break;
if(i > l)
{
PathComponent->Length = PathComponent->MaximumLength = 0;
return (FALSE);
}
PathComponent->Buffer = &PathName.Buffer[i];
j = i + 1;
/* advance until the end of the string, or the next delimiter */
while(1)
{
if(j >= l)
{
if(TrailingDelimiter != 0)
*TrailingDelimiter = FALSE;
break;
}
else if (IS_CHAR_DELIMITER_U(PathName.Buffer[j]))
{
if(TrailingDelimiter != 0)
*TrailingDelimiter = TRUE;
break;
}
else
j ++;
}
PathComponent->Length = PathComponent->MaximumLength = (j - i) * sizeof(WCHAR);
return (TRUE);
}
BOOLEAN
__PdxPosixPathResolve_U
(
IN UNICODE_STRING PathName,
OUT PUNICODE_STRING ResolvedPathName,
IN WCHAR PathDelimiter OPTIONAL
)
{
UNICODE_STRING wstrThisComponent = {0, 0, NULL};
PWCHAR pwcCurPos;
PWCHAR pwcStartPos;
BOOLEAN bIsDirectory;
if(PathDelimiter == 0)
PathDelimiter = L'/';
/* start from the beginning of the return buffer */
pwcCurPos = ResolvedPathName->Buffer;
/* path begins with a delimiter (absolute path) */
if(IS_CHAR_DELIMITER_U(PathName.Buffer[0]))
{
/* put a delimiter in front of the return buffer */
*pwcCurPos = PathDelimiter;
/* move to next character */
pwcCurPos ++;
}
pwcStartPos = pwcCurPos;
/* repeat until the end of the path string */
while(__PdxPosixPathGetNextComponent_U(PathName, &wstrThisComponent, &bIsDirectory))
{
/* ".": skip */
if(IS_COMPONENT_DOT_U(wstrThisComponent))
continue;
/* "..": go back to the last component */
else if(IS_COMPONENT_DOTDOT_U(wstrThisComponent))
{
if(pwcCurPos == pwcStartPos)
continue;
/* skip the last (undefined) character */
pwcCurPos --;
/* down to the previous path delimiter */
do{ pwcCurPos --; }while(!IS_CHAR_DELIMITER_U(*pwcCurPos));
/* include the delimiter */
pwcCurPos ++;
}
else
{
/* copy this component into the return string */
memcpy
(
pwcCurPos,
wstrThisComponent.Buffer,
wstrThisComponent.Length
);
/* move the current position to the end of the string */
pwcCurPos = (PWCHAR)((PBYTE)pwcCurPos + wstrThisComponent.Length);
/* component had a trailing delimiter */
if(bIsDirectory)
{
/* append a delimiter */
*pwcCurPos = PathDelimiter;
/* on to next character */
pwcCurPos ++;
}
}
}
/* set the return string's length as the byte offset between the initial buffer
position and the current position */
ResolvedPathName->Length = ((ULONG)pwcCurPos - (ULONG)ResolvedPathName->Buffer);
return (TRUE);
}
BOOLEAN
__PdxPosixPathGetNextComponent_A
(
IN ANSI_STRING PathName,
IN OUT PANSI_STRING PathComponent,
OUT PBOOLEAN TrailingDelimiter OPTIONAL
)
{
int i, j;
if(PathComponent->Buffer == 0)
i = 0;
else
i = ((ULONG)PathComponent->Buffer - (ULONG)PathName.Buffer + PathComponent->Length);
/* skip leading empty components */
while(1)
if(i >= PathName.Length)
{
PathComponent->Length = PathComponent->MaximumLength = 0;
return (FALSE);
}
else if(IS_CHAR_DELIMITER_A(PathName.Buffer[i]))
i ++;
else
break;
if(i > PathName.Length)
{
PathComponent->Length = PathComponent->MaximumLength = 0;
return (FALSE);
}
PathComponent->Buffer = &PathName.Buffer[i];
j = i + 1;
/* advance until the end of the string, or the next delimiter */
while(1)
{
if(j >= PathName.Length)
{
if(TrailingDelimiter != 0)
*TrailingDelimiter = FALSE;
break;
}
else if (IS_CHAR_DELIMITER_A(PathName.Buffer[j]))
{
if(TrailingDelimiter != 0)
*TrailingDelimiter = TRUE;
break;
}
else
j ++;
}
PathComponent->Length = PathComponent->MaximumLength = j - i;
return (TRUE);
}
BOOLEAN
__PdxPosixPathResolve_A
(
IN ANSI_STRING PathName,
OUT PANSI_STRING ResolvedPathName,
IN CHAR PathDelimiter OPTIONAL
)
{
ANSI_STRING strThisComponent = {0, 0, NULL};
PCHAR pcCurPos;
PCHAR pcStartPos;
BOOLEAN bIsDirectory;
if(PathDelimiter == 0)
PathDelimiter = '/';
/* start from the beginning of the return buffer */
pcCurPos = ResolvedPathName->Buffer;
/* path begins with a delimiter (absolute path) */
if(IS_CHAR_DELIMITER_A(PathName.Buffer[0]))
{
/* put a delimiter in front of the return buffer */
*pcCurPos = PathDelimiter;
/* move to next character */
pcCurPos ++;
}
pcStartPos = pcCurPos;
/* repeat until the end of the path string */
while(__PdxPosixPathGetNextComponent_A(PathName, &strThisComponent, &bIsDirectory))
{
/* ".": skip */
if(IS_COMPONENT_DOT_A(strThisComponent))
continue;
/* "..": go back to the last component */
else if(IS_COMPONENT_DOTDOT_A(strThisComponent))
{
if(pcCurPos == pcStartPos)
continue;
/* skip the last (undefined) character */
pcCurPos --;
/* down to the previous path delimiter */
do{ pcCurPos --; }while(!IS_CHAR_DELIMITER_A(*pcCurPos));
/* include the delimiter */
pcCurPos ++;
}
else
{
/* copy this component into the return string */
strncpy
(
pcCurPos,
strThisComponent.Buffer,
strThisComponent.Length
);
/* move the current position to the end of the string */
pcCurPos = (PCHAR)((PBYTE)pcCurPos + strThisComponent.Length);
/* component had a trailing delimiter */
if(bIsDirectory)
{
/* append a delimiter */
*pcCurPos = PathDelimiter;
/* on to next character */
pcCurPos ++;
}
}
}
/* set the return string's length as the byte offset between the initial buffer
position and the current position */
ResolvedPathName->Length = ((ULONG)pcCurPos - (ULONG)ResolvedPathName->Buffer);
return (TRUE);
}
BOOLEAN
__PdxPosixPathNameToNtPathName
(
IN PWCHAR PosixPath,
OUT PUNICODE_STRING NativePath,
IN PUNICODE_STRING CurDir OPTIONAL,
IN PUNICODE_STRING RootDir OPTIONAL
)
{
UNICODE_STRING wstrPosixPath;
UNICODE_STRING wstrTempString;
/* parameter validation */
if
(
PosixPath == 0 ||
NativePath == 0 ||
NativePath->Buffer == 0 ||
NativePath->MaximumLength == 0 ||
(RootDir != 0 && RootDir->Buffer == 0)
)
{
errno = EINVAL;
return (FALSE);
}
RtlInitUnicodeString(&wstrPosixPath, PosixPath);
/* path is null */
if(0 == wstrPosixPath.Length)
{
errno = EINVAL;
return (FALSE);
}
/* first, copy the root path into the return buffer */
/* if no root dir passed by the caller... */
if(RootDir == 0)
/* return buffer too small */
if(NativePath->MaximumLength < sizeof(WCHAR))
{
errno = ENOBUFS;
return (FALSE);
}
/* set the first character to a backslash, and set length accordingly */
else
{
NativePath->Buffer[0] = L'\\';
NativePath->Length = sizeof(WCHAR);
}
/* ... else copy the root dir into the return buffer */
else
/* return buffer too small */
if(NativePath->MaximumLength < RootDir->Length)
{
errno = ENOBUFS;
return (FALSE);
}
/* copy the root directory into the return buffer, and set length */
else
{
memcpy(NativePath->Buffer, RootDir->Buffer, RootDir->Length);
NativePath->Length = RootDir->Length;
}
/* path is "/" - our work is done */
if(sizeof(WCHAR) == wstrPosixPath.Length && IS_CHAR_DELIMITER_U(wstrPosixPath.Buffer[0]))
return (TRUE);
/* temp string pointing to the tail of the return buffer */
wstrTempString.Length = 0;
wstrTempString.MaximumLength = NativePath->MaximumLength - NativePath->Length;
wstrTempString.Buffer = (PWCHAR)(((PBYTE)(NativePath->Buffer)) + NativePath->Length);
/* path begins with '/': absolute path. Append the resolved path to the return buffer */
if(IS_CHAR_DELIMITER_U(wstrPosixPath.Buffer[0]))
{
/* copy the resolved path in the return buffer */
__PdxPosixPathResolve_U(wstrPosixPath, &wstrTempString, L'\\');
return (TRUE);
}
else
{
UNICODE_STRING wstrAbsolutePath;
if(CurDir == 0)
CurDir = __PdxGetCurDir();
/* initialize the buffer for the absolute path */
wstrAbsolutePath.Length = 0;
wstrAbsolutePath.MaximumLength = 0xFFFF;
wstrAbsolutePath.Buffer = __malloc(0xFFFF);
/* if the current directory is not null... */
if(!(CurDir->Buffer == 0 || CurDir->Length == 0))
{
/* copy it into the absolute path buffer */
memcpy(wstrAbsolutePath.Buffer, CurDir->Buffer, CurDir->Length);
wstrAbsolutePath.Length += CurDir->Length;
}
/* not enough space to append an extra slash */
if((wstrAbsolutePath.MaximumLength - wstrAbsolutePath.Length) < (USHORT)sizeof(WCHAR))
{
__free(wstrAbsolutePath.Buffer);
NativePath->Length = 0;
errno = ENOBUFS;
return (FALSE);
}
/* append an extra slash */
wstrAbsolutePath.Buffer[wstrAbsolutePath.Length / sizeof(WCHAR)] = L'/';
wstrAbsolutePath.Length += sizeof(WCHAR);
/* not enough space to copy the relative path */
if((wstrAbsolutePath.MaximumLength - wstrAbsolutePath.Length) < wstrPosixPath.Length)
{
__free(wstrAbsolutePath.Buffer);
NativePath->Length = 0;
errno = ENOBUFS;
return (FALSE);
}
/* append the relative path to the absolute path */
memcpy(
(PWCHAR)(((PBYTE)wstrAbsolutePath.Buffer) + wstrAbsolutePath.Length),
wstrPosixPath.Buffer,
wstrPosixPath.Length
);
wstrAbsolutePath.Length += wstrPosixPath.Length;
/* resolve the path */
__PdxPosixPathResolve_U(wstrAbsolutePath, &wstrTempString, L'\\');
__free(wstrAbsolutePath.Buffer);
return (TRUE);
}
return (FALSE);
}
/* EOF */

View File

@@ -0,0 +1,45 @@
/* $Id: safeobj.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/misc/safeobj.c
* PURPOSE: safe checking of user-provided objects
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 09/01/2002: Created
*/
#include <psx/safeobj.h>
#include <psx/debug.h>
int __safeobj_validate(void *obj, __magic_t refsignature)
{
if(obj == 0)
return (0);
else
{
/* cast the object to a magic number */
__magic_t mSignature = *((__magic_t *)obj);
ERRIF
(
mSignature != refsignature,
"invalid object at %X: signature is \"%c%c%c%c\", should be \"%c%c%c%c\"",
obj,
MAGIC_DECOMPOSE(refsignature),
MAGIC_DECOMPOSE(mSignature)
);
if(mSignature == refsignature)
/* signatures match: ok */
return (-1);
else
/* signatures mismatch: fail */
return (0);
}
}
/* EOF */

View File

@@ -0,0 +1,25 @@
/* $Id: template.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
How to create a new source file from this template:
- copy the template in the new file (never edit this file directly, unless
that's what you want)
- search for the string "EDITME" in the file, and follow the instructions
- remove this comment block, all blocks containing DELETEME, and all EDITME
instructions
- save your file, and Have Fun! (TM)
*/
/* $ Id $ (EDITME: replace "$ Id $" with "$Id: template.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $")
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: (EDITME: put real path of the file here)
* PURPOSE: (EDITME: put a very syntetic description of the file here)
* PROGRAMMER: <john.doe@mail.com> (EDITME: your name and e-mail go here)
* UPDATE HISTORY:
* (EDITME: put here the creation date): Created
*/
/* EDITME: your code here */
/* EOF */

143
posix/lib/psxdll/psxdll.def Normal file
View File

@@ -0,0 +1,143 @@
; $Id: psxdll.def,v 1.2 2002/02/20 09:17:56 hyperion Exp $
;
; ReactOS POSIX+ Client Library
;
LIBRARY PSXDLL.DLL
EXPORTS
;dirent
opendir
readdir
closedir
;dlfcn
dlopen
dlclose
dlsym
dlerror
;errno
__PdxGetThreadErrNum
;fcntl
open
creat
fcntl
;libgen
basename
;misc
;path
__PdxPosixPathGetNextComponent_A
__PdxPosixPathGetNextComponent_U
__PdxPosixPathResolve_A
__PdxPosixPathResolve_U
__PdxPosixPathNameToNtPathName
;fdtable
__fdtable_init
__fdtable_free
__fdtable_entry_nextavail
__fdtable_entry_add
__fdtable_entry_remove
__fdtable_entry_get
;safeobj
__safeobj_validate
;pthread
pthread_create
pthread_exit
pthread_join
pthread_mutex_destroy
pthread_mutex_init
pthread_mutex_lock
pthread_mutex_trylock
pthread_mutex_unlock
pthread_mutex_getprioceiling
pthread_mutex_setprioceiling
pthread_mutexattr_destroy
pthread_mutexattr_getpshared
pthread_mutexattr_init
pthread_mutexattr_setpshared
pthread_mutexattr_gettype
pthread_mutexattr_settype
pthread_mutexattr_getprioceiling
pthread_mutexattr_getprotocol
pthread_mutexattr_setprioceiling
pthread_mutexattr_setprotocol
;sched
sched_yield
;signal
pthread_kill
raise
;stdio
printf
gets
;stdlib
abort
malloc
realloc
free
calloc
exit
;string
;forward-exports to NTDLL
memchr
memcmp
memcpy
memmove
memset
strcat
strchr
strcmp
strcpy
strcspn
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
;implemented internally
strdup
;sys/utsname
uname
;unistd
close
dup
dup2
getcwd
getpid
getppid
;wchar
;forward-exports to NTDLL
wcscat
wcschr
wcscmp
wcscpy
wcscspn
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsspn
wcsstr
wcstol
wcstombs
wcstoul
;implemented internally
;EOF

143
posix/lib/psxdll/psxdll.edf Normal file
View File

@@ -0,0 +1,143 @@
; $Id: psxdll.edf,v 1.2 2002/02/20 09:17:56 hyperion Exp $
;
; ReactOS POSIX+ Client Library
;
LIBRARY PSXDLL.DLL
EXPORTS
;dirent
opendir=opendir
readdir=readdir
closedir=closedir
;dlfcn
dlopen=dlopen
dlclose=dlclose
dlsym=dlsym
dlerror=dlerror
;errno
__PdxGetThreadErrNum=__PdxGetThreadErrNum
;fcntl
open=open
creat=creat
fcntl=fcntl
;libgen
basename=basename
;misc
;path
__PdxPosixPathGetNextComponent_A=__PdxPosixPathGetNextComponent_A
__PdxPosixPathGetNextComponent_U=__PdxPosixPathGetNextComponent_U
__PdxPosixPathResolve_A=__PdxPosixPathResolve_A
__PdxPosixPathResolve_U=__PdxPosixPathResolve_U
__PdxPosixPathNameToNtPathName=__PdxPosixPathNameToNtPathName
;fdtable
__fdtable_init=__fdtable_init
__fdtable_free=__fdtable_free
__fdtable_entry_nextavail=__fdtable_entry_nextavail
__fdtable_entry_add=__fdtable_entry_add
__fdtable_entry_remove=__fdtable_entry_remove
__fdtable_entry_get=__fdtable_entry_get
;safeobj
__safeobj_validate=__safeobj_validate
;pthread
pthread_create=pthread_create
pthread_exit=pthread_exit
pthread_join=pthread_join
pthread_mutex_destroy=pthread_mutex_destroy
pthread_mutex_init=pthread_mutex_init
pthread_mutex_lock=pthread_mutex_lock
pthread_mutex_trylock=pthread_mutex_trylock
pthread_mutex_unlock=pthread_mutex_unlock
pthread_mutex_getprioceiling=pthread_mutex_getprioceiling
pthread_mutex_setprioceiling=pthread_mutex_setprioceiling
pthread_mutexattr_destroy=pthread_mutexattr_destroy
pthread_mutexattr_getpshared=pthread_mutexattr_getpshared
pthread_mutexattr_init=pthread_mutexattr_init
pthread_mutexattr_setpshared=pthread_mutexattr_setpshared
pthread_mutexattr_gettype=pthread_mutexattr_gettype
pthread_mutexattr_settype=pthread_mutexattr_settype
pthread_mutexattr_getprioceiling=pthread_mutexattr_getprioceiling
pthread_mutexattr_getprotocol=pthread_mutexattr_getprotocol
pthread_mutexattr_setprioceiling=pthread_mutexattr_setprioceiling
pthread_mutexattr_setprotocol=pthread_mutexattr_setprotocol
;sched
sched_yield=sched_yield
;signal
pthread_kill=pthread_kill
raise=raise
;stdio
printf=MSVCRT.printf
gets=MSVCRT.gets
;stdlib
abort=abort
malloc=malloc
realloc=realloc
free=free
calloc=calloc
exit=exit
;string
;forward-exports to NTDLL
memchr=NTDLL.memchr
memcmp=NTDLL.memcmp
memcpy=NTDLL.memcpy
memmove=NTDLL.memmove
memset=NTDLL.memset
strcat=NTDLL.strcat
strchr=NTDLL.strchr
strcmp=NTDLL.strcmp
strcpy=NTDLL.strcpy
strcspn=NTDLL.strcspn
strlen=NTDLL.strlen
strncat=NTDLL.strncat
strncmp=NTDLL.strncmp
strncpy=NTDLL.strncpy
strpbrk=NTDLL.strpbrk
strrchr=NTDLL.strrchr
strspn=NTDLL.strspn
strstr=NTDLL.strstr
;implemented internally
strdup
;sys/utsname
uname=uname
;unistd
close=close
dup=dup
dup2=dup2
getcwd=getcwd
getpid=getpid
getppid=getppid
;wchar
;forward-exports to NTDLL
wcscat=NTDLL.wcscat
wcschr=NTDLL.wcschr
wcscmp=NTDLL.wcscmp
wcscpy=NTDLL.wcscpy
wcscspn=NTDLL.wcscspn
wcslen=NTDLL.wcslen
wcsncat=NTDLL.wcsncat
wcsncmp=NTDLL.wcsncmp
wcsncpy=NTDLL.wcsncpy
wcspbrk=NTDLL.wcspbrk
wcsrchr=NTDLL.wcsrchr
wcsspn=NTDLL.wcsspn
wcsstr=NTDLL.wcsstr
wcstol=NTDLL.wcstol
wcstombs=NTDLL.wcstombs
wcstoul=NTDLL.wcstoul
;implemented internally
;EOF

View File

@@ -1,11 +1,13 @@
#include "../../include/defines.h"
#include "../../include/reactos/resource.h"
/* $Id: psxdll.rc,v 1.2 2002/02/20 09:17:56 hyperion Exp $
*/
#include <defines.h>
#include <reactos/resource.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -21,7 +23,7 @@ BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "POSIX+ Subsystem Client DLL\0"
VALUE "FileDescription", "POSIX+ Client DLL\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "psxdll\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
@@ -35,4 +37,3 @@ BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

@@ -0,0 +1,198 @@
/* $Id: create.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/pthread/create.c
* PURPOSE: Thread creation
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <string.h>
#include <sys/types.h>
#include <pthread.h>
#include <psx/debug.h>
#include <psx/errno.h>
#include <napi/i386/segment.h>
/* thread creation code adapted from kernel32's CreateRemoteThread() function */
static void __threadentry (void *(*start_routine)(void*), void *arg)
{
INFO("hello world! thread successfully created");
TODO("initialize thread data");
TODO("notify DLLs");
TODO("notify psxss");
INFO("about to call start routine at %#x with argument %#x", start_routine, arg);
pthread_exit(start_routine(arg));
}
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg)
{
HANDLE hThread;
OBJECT_ATTRIBUTES oaThreadAttrs;
CLIENT_ID ciId;
CONTEXT cxThreadContext;
INITIAL_TEB itInitialTeb;
BOOLEAN fSuspended;
ULONG nOldPageProtection;
NTSTATUS nErrCode;
/* initialize generic object attributes */
oaThreadAttrs.Length = sizeof(OBJECT_ATTRIBUTES);
oaThreadAttrs.RootDirectory = NULL;
oaThreadAttrs.ObjectName = NULL;
oaThreadAttrs.Attributes = 0;
oaThreadAttrs.SecurityDescriptor = NULL;
oaThreadAttrs.SecurityQualityOfService = NULL;
/* initialize thread attributes */
fSuspended = FALSE; /* FIXME? really needed? can we hardcode this to FALSE? */
/* stack attributes */
FIXME("stack size defaulted to 0x100000 - thread attributes ignored");
/* stack reserve size */
itInitialTeb.StackReserve = 0x100000;
/* stack commit size */
itInitialTeb.StackCommit = itInitialTeb.StackReserve - PAGESIZE;
/* guard page */
itInitialTeb.StackCommit += PAGESIZE;
/* reserve stack */
itInitialTeb.StackAllocate = NULL;
nErrCode = NtAllocateVirtualMemory
(
NtCurrentProcess(),
&itInitialTeb.StackAllocate,
0,
&itInitialTeb.StackReserve,
MEM_RESERVE,
PAGE_READWRITE
);
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode)); /* FIXME? TODO? pthread specific error codes? */
}
itInitialTeb.StackBase = (PVOID)((ULONG)itInitialTeb.StackAllocate + itInitialTeb.StackReserve);
itInitialTeb.StackLimit = (PVOID)((ULONG)itInitialTeb.StackBase - itInitialTeb.StackCommit);
/* commit stack */
nErrCode = NtAllocateVirtualMemory
(
NtCurrentProcess(),
&itInitialTeb.StackLimit,
0,
&itInitialTeb.StackCommit,
MEM_COMMIT,
PAGE_READWRITE
);
if(!NT_SUCCESS(nErrCode))
{
NtFreeVirtualMemory
(
NtCurrentProcess(),
itInitialTeb.StackAllocate,
&itInitialTeb.StackReserve,
MEM_RELEASE
);
return (__status_to_errno(nErrCode));
}
/* protect guard page */
nErrCode = NtProtectVirtualMemory
(
NtCurrentProcess(),
itInitialTeb.StackLimit,
PAGESIZE,
PAGE_GUARD | PAGE_READWRITE,
&nOldPageProtection
);
if(!NT_SUCCESS(nErrCode))
{
NtFreeVirtualMemory
(
NtCurrentProcess(),
itInitialTeb.StackAllocate,
&itInitialTeb.StackReserve,
MEM_RELEASE
);
return (__status_to_errno(nErrCode));
}
/* initialize thread registers */
//#ifdef __i386__
memset(&cxThreadContext, 0, sizeof(CONTEXT));
cxThreadContext.Eip = (LONG)__threadentry;
cxThreadContext.SegGs = USER_DS;
cxThreadContext.SegFs = TEB_SELECTOR;
cxThreadContext.SegEs = USER_DS;
cxThreadContext.SegDs = USER_DS;
cxThreadContext.SegCs = USER_CS;
cxThreadContext.SegSs = USER_DS;
cxThreadContext.Esp = (ULONG)itInitialTeb.StackBase - 12;
cxThreadContext.EFlags = (1<<1) + (1<<9);
/* initialize call stack */
*((PULONG)((ULONG)itInitialTeb.StackBase - 4)) = (ULONG)arg; /* thread argument */
*((PULONG)((ULONG)itInitialTeb.StackBase - 8)) = (ULONG)start_routine; /* thread start routine */
*((PULONG)((ULONG)itInitialTeb.StackBase - 12)) = 0xDEADBEEF; /* "shouldn't see me" */
//#else
//#error Unsupported architecture
//#endif
INFO("about to create new thread - start routine at %#x, argument %#x", start_routine, arg);
/* create thread */
nErrCode = NtCreateThread
(
&hThread,
THREAD_ALL_ACCESS,
&oaThreadAttrs,
NtCurrentProcess(),
&ciId,
&cxThreadContext,
&itInitialTeb,
fSuspended
);
if(!NT_SUCCESS(nErrCode))
{
NtFreeVirtualMemory
(
NtCurrentProcess(),
itInitialTeb.StackAllocate,
&itInitialTeb.StackReserve,
MEM_RELEASE
);
return (__status_to_errno(nErrCode));
}
/* FIXME? should we return the thread handle or the thread id? */
if(thread != 0)
*thread = (pthread_t)&ciId.UniqueThread; /* for the moment, we return the id */
return (0);
}
/* EOF */

View File

@@ -0,0 +1,78 @@
/* $Id: exit.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/pthread/exit.c
* PURPOSE: Thread termination
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <ntdll/ldr.h>
#include <errno.h>
#include <stdlib.h>
#include <pthread.h>
#include <psx/debug.h>
void pthread_exit(void *value_ptr)
{
NTSTATUS nErrCode;
BOOLEAN fLastThread;
/* terminate process if this is the last thread of the current process */
nErrCode = NtQueryInformationThread
(
NtCurrentThread(),
ThreadAmILastThread,
&fLastThread,
sizeof(BOOLEAN),
NULL
);
if(NT_SUCCESS(nErrCode))
{
if(fLastThread)
{
INFO("this thread is the last in the current process - about to call exit(0)");
exit(0);
}
}
else
{
WARN
(
"NtQueryInformationThread(ThreadAmILastThread) failed with status %#x. \
Can't determine if the current thread is the last in the process. The process \
could hang",
nErrCode
);
}
TODO("Notify psxss of thread termination");
LdrShutdownThread(); /* detach DLLs */
/* kill this thread */
WARNIF(
sizeof(ULONG) < sizeof(typeof(value_ptr)),
"\
the value returned from the current thread will be truncated (pointers shorter \
than long integers on this architecture?) - expect trouble"
);
INFO("bye bye. Current thread about to die");
NtTerminateThread(NtCurrentThread(), (ULONG)value_ptr);
/* "The pthread_exit() function cannot return to its caller." */
NtDelayExecution(FALSE, NULL);
}
/* EOF */

View File

@@ -0,0 +1,98 @@
/* $Id: join.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/pthread/join.c
* PURPOSE: Wait for thread termination
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <ntdll/ldr.h>
#include <errno.h>
#include <sys/types.h>
#include <pthread.h>
#include <psx/debug.h>
#include <psx/errno.h>
int pthread_join(pthread_t thread, void **value_ptr)
{
HANDLE hThread;
NTSTATUS nErrCode;
OBJECT_ATTRIBUTES oaThreadAttrs;
CLIENT_ID ciId;
THREAD_BASIC_INFORMATION tbiThreadInfo;
/* "[EDEADLK] A deadlock was detected or the value of thread specifies
the calling thread" */
if(thread == pthread_self())
return (EDEADLK);
/* initialize id */
ciId.UniqueProcess = (HANDLE)-1;
ciId.UniqueThread = (HANDLE)thread;
/* initialize object attributes */
oaThreadAttrs.Length = sizeof(OBJECT_ATTRIBUTES);
oaThreadAttrs.RootDirectory = NULL;
oaThreadAttrs.ObjectName = NULL;
oaThreadAttrs.Attributes = 0;
oaThreadAttrs.SecurityDescriptor = NULL;
oaThreadAttrs.SecurityQualityOfService = NULL;
/* open the thread */
nErrCode = NtOpenThread
(
&hThread,
SYNCHRONIZE | THREAD_QUERY_INFORMATION,
&oaThreadAttrs,
&ciId
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* wait for thread termination */
nErrCode = NtWaitForSingleObject
(
hThread,
FALSE,
NULL
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
NtClose(hThread);
return (__status_to_errno(nErrCode));
}
/* get thread basic information (includes return code) */
nErrCode = NtQueryInformationThread
(
hThread,
ThreadBasicInformation,
&tbiThreadInfo,
sizeof(THREAD_BASIC_INFORMATION),
NULL
);
NtClose(hThread);
if(!value_ptr)
return (EFAULT);
*value_ptr = (void *)tbiThreadInfo.ExitStatus;
return (0);
}
/* EOF */

View File

@@ -0,0 +1,22 @@
/* $Id: kill.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/pthread/kill.c
* PURPOSE: Send a signal to a thread
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 15/02/2002: Created
*/
#include <signal.h>
#include <errno.h>
int pthread_kill(pthread_t thread, int sig)
{
return (ENOSYS);
}
/* EOF */

View File

@@ -0,0 +1,465 @@
/* $Id: mutex.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/pthread/mutex.c
* PURPOSE: Mutex functions
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 19/12/2001: Created
*/
#include <ntos.h>
#include <ddk/ntddk.h>
#include <sys/types.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <psx/debug.h>
#include <psx/pthread.h>
#include <psx/errno.h>
#include <psx/safeobj.h>
int pthread_mutex_init(pthread_mutex_t *mutex,
const pthread_mutexattr_t *attr)
{
struct __mutex *pmMutex;
struct __mutexattr *pmaMutexAttrs;
BOOL bShared;
OBJECT_ATTRIBUTES oaMutexAttrs;
NTSTATUS nErrCode;
/* invalid return buffer */
if(mutex == NULL)
return (EINVAL);
/* object still open */
if(__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC))
return (EBUSY);
if(attr == NULL)
{
/* use default attributes */
/* create new mutex object */
pmMutex = (struct __mutex *)malloc(sizeof(struct __mutex));
/* malloc() failure */
if(!pmMutex)
return (ENOMEM);
/* set the attributes */
bShared = FALSE;
pmMutex->type = PTHREAD_MUTEX_RECURSIVE;
}
else if(__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC))
{
/* use provided attributes */
/* create new mutex object */
pmMutex = (struct __mutex *)malloc(sizeof(struct __mutex));
/* malloc() failure */
if(!pmMutex)
return (ENOMEM);
/* get the attributes object */
pmaMutexAttrs = (struct __mutexattr *) *attr;
/* set the attributes */
bShared = (pmaMutexAttrs->pshared != PTHREAD_PROCESS_PRIVATE);
pmMutex->type = pmaMutexAttrs->type;
}
else
return (EINVAL);
/* necessary for the mutex to be considered valid later */
pmMutex->signature = __PTHREAD_MUTEX_MAGIC;
/* creation of the native mutex object */
pmMutex->handle = 0;
/* initialize generic object attributes */
oaMutexAttrs.Length = sizeof(OBJECT_ATTRIBUTES);
oaMutexAttrs.RootDirectory = NULL;
oaMutexAttrs.ObjectName = NULL;
oaMutexAttrs.Attributes = 0;
oaMutexAttrs.SecurityDescriptor = NULL;
oaMutexAttrs.SecurityQualityOfService = NULL;
/* process-exclusive mutex */
if(bShared)
oaMutexAttrs.Attributes |= OBJ_EXCLUSIVE;
/* try to create the object */
nErrCode = NtCreateMutant
(
&pmMutex->handle,
MUTANT_ALL_ACCESS,
&oaMutexAttrs,
FALSE
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
/* free the internal mutex object */
free(pmMutex);
/* return errno */
return (__status_to_errno(nErrCode));
}
/* return the pointer to the mutex */
*mutex = (pthread_mutex_t)pmMutex;
/* success */
return (0);
}
int pthread_mutex_destroy(pthread_mutex_t *mutex)
{
struct __mutex *pmMutex;
NTSTATUS nErrCode;
MUTANT_BASIC_INFORMATION mbiMutexInfo;
/* invalid pointer or pointer to invalid object */
if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC))
{
return (EINVAL);
}
pmMutex = (struct __mutex *)*mutex;
/* query the mutex's status */
nErrCode = NtQueryMutant
(
pmMutex->handle,
MutantBasicInformation,
&mbiMutexInfo,
sizeof(MUTANT_BASIC_INFORMATION),
NULL
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* the thread is owned - cannot destroy it */
if(mbiMutexInfo.Count <= 0)
{
return (EBUSY);
}
/* try to close the handle */
nErrCode = NtClose(pmMutex->handle);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* free the object, nil the pointer */
free(*mutex);
*mutex = NULL;
/* success */
return (0);
}
int pthread_mutex_lock(pthread_mutex_t *mutex)
{
struct __mutex * pmMutex;
NTSTATUS nErrCode;
/* invalid pointer or pointer to invalid object */
if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC))
return (EINVAL);
pmMutex = (struct __mutex *)*mutex;
/* decide the behavior from the mutex type */
switch(pmMutex->type)
{
case PTHREAD_MUTEX_NORMAL:
{
/* unconditionally try to lock the mutex */
/* FIXME? should we "artificially" hang the thread if it's the mutex owner, since
NT mutexes always behave recursively? */
#if 0
if(0 /* mutex owner */ == pthread_self() */)
NtDelayExecution(FALSE, NULL);
#endif
nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL);
break;
}
case PTHREAD_MUTEX_ERRORCHECK:
{
/* prevent a thread from recursively locking the same mutex */
if(0 /* mutex owner */ == pthread_self()) /* FIXME: implement the correct logic */
return (EDEADLK);
else
nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL);
break;
}
case PTHREAD_MUTEX_RECURSIVE:
{
/* allow recursive locking */
/* ASSERT: this is the default behavior for NT */
nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL);
break;
}
default:
/* we should never reach this point */
INFO("you should never read this");
}
if(nErrCode == STATUS_ABANDONED)
{
FIXME("mutex abandoned, not sure on what to do: should we try to lock the mutex again?");
}
else if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* success */
return (0);
}
int pthread_mutex_trylock(pthread_mutex_t *mutex)
{
struct __mutex * pmMutex;
NTSTATUS nErrCode;
MUTANT_BASIC_INFORMATION mbiMutexInfo;
/* invalid pointer or pointer to invalid object */
if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC))
return (EINVAL);
pmMutex = (struct __mutex *)*mutex;
/* query the mutex's status */
nErrCode = NtQueryMutant
(
pmMutex->handle,
MutantBasicInformation,
&mbiMutexInfo,
sizeof(MUTANT_BASIC_INFORMATION),
NULL
);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* mutex already locked */
if(mbiMutexInfo.Count <= 0)
return (EBUSY);
/* mutex not locked - mutex type attribute doesn't matter */
nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL);
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* success */
return (0);
}
int pthread_mutex_unlock(pthread_mutex_t *mutex)
{
struct __mutex * pmMutex;
NTSTATUS nErrCode;
/* invalid pointer or pointer to invalid object */
if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC))
return (EINVAL);
pmMutex = (struct __mutex *)*mutex;
/* try to release the mutex */
nErrCode = NtReleaseMutant(pmMutex->handle, NULL);
/* failure */
if(!NT_SUCCESS(nErrCode))
{
return (__status_to_errno(nErrCode));
}
/* success */
return (0);
}
/* mutex attributes routines */
int pthread_mutexattr_init(pthread_mutexattr_t *attr)
{
struct __mutexattr * pmaMutexAttrs;
/* invalid return pointer */
if(!attr)
return (EINVAL);
/* allocate internal structure for mutex attributes */
pmaMutexAttrs = (struct __mutexattr *)malloc(sizeof(struct __mutexattr));
/* failure */
if(pmaMutexAttrs == 0)
return (ENOMEM);
/* attribute defaults */
pmaMutexAttrs->pshared = PTHREAD_PROCESS_PRIVATE;
pmaMutexAttrs->type = PTHREAD_MUTEX_DEFAULT;
/* return the pointer to the attributes object */
*attr = (pthread_mutexattr_t)pmaMutexAttrs;
/* success */
return (0);
}
int pthread_mutexattr_destroy(pthread_mutexattr_t *attr)
{
/* invalid pointer or pointer to invalid object */
if(attr == NULL || !__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC))
return (EINVAL);
/* deallocate internal structure */
free(*attr);
/* success */
return (0);
}
#define PTHREAD_MUTEXATTR_GET(PATTR,PVAR,FIELD) \
if( \
(PATTR) == NULL || \
(PVAR) == NULL || \
!__safeobj_validate(*(PATTR), __PTHREAD_MUTEX_ATTR_MAGIC) \
) \
return (EINVAL); \
else \
{ \
(*(PVAR)) = ((struct __mutexattr *)*(PATTR))->FIELD; \
return (0); \
}
int pthread_mutexattr_getpshared(const pthread_mutexattr_t *attr,
int *pshared)
{
PTHREAD_MUTEXATTR_GET(attr, pshared, pshared)
}
int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type)
{
PTHREAD_MUTEXATTR_GET(attr, type, type)
}
int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr,
int pshared)
{
/* invalid pointer or pointer to invalid object */
if(attr == NULL || !__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC))
return (EINVAL);
/* validate value */
switch(pshared)
{
case PTHREAD_PROCESS_SHARED: break;
case PTHREAD_PROCESS_PRIVATE: break;
default: return (EINVAL);
}
((struct __mutexattr *)*attr)->pshared = pshared;
return (0);
}
int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)
{
/* invalid pointer or pointer to invalid object */
if(attr == NULL || !__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC))
return (EINVAL);
/* validate value */
switch(type)
{
case PTHREAD_MUTEX_NORMAL: break;
case PTHREAD_MUTEX_ERRORCHECK: break;
case PTHREAD_MUTEX_RECURSIVE: break;
default: return (EINVAL);
}
((struct __mutexattr *)*attr)->type = type;
return (0);
}
/* STUBS */
int pthread_mutex_setprioceiling(pthread_mutex_t *mutex,
int prioceiling, int *old_ceiling)
{
TODO("realtime threads not currently implemented");
return (ENOSYS);
}
int pthread_mutex_getprioceiling(const pthread_mutex_t *mutex,
int *prioceiling)
{
TODO("realtime threads not currently implemented");
return (ENOSYS);
}
int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *attr,
int *protocol)
{
TODO("realtime threads not currently implemented");
return (ENOSYS);
}
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *attr,
int protocol)
{
TODO("realtime threads not currently implemented");
return (ENOSYS);
}
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr,
int prioceiling)
{
TODO("realtime threads not currently implemented");
return (ENOSYS);
}
int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *attr,
int *prioceiling)
{
TODO("realtime threads not currently implemented");
return (ENOSYS);
}
/* EOF */

View File

@@ -0,0 +1,23 @@
/* $Id: self.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/pthread/self.c
* PURPOSE: get calling thread's ID
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <sys/types.h>
#include <pthread.h>
pthread_t pthread_self(void)
{
return ((pthread_t)(NtCurrentTeb()->Cid).UniqueThread);
}
/* EOF */

View File

@@ -0,0 +1,33 @@
/* $Id: yield.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/sched/yield.c
* PURPOSE: Yield processor
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 15/02/2002: Created
*/
#include <ddk/ntddk.h>
#include <sched.h>
#include <psx/errno.h>
int sched_yield(void)
{
NTSTATUS nErrCode;
nErrCode = NtYieldExecution();
if(!NT_SUCCESS(nErrCode))
{
errno = __status_to_errno(nErrCode);
return (-1);
}
return (0);
}
/* EOF */

View File

@@ -0,0 +1,25 @@
/* $Id: raise.c,v 1.2 2002/02/20 09:17:57 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/signal/raise.c
* PURPOSE: Send a signal to the executing process
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 15/02/2002: Created
*/
#include <signal.h>
#include <pthread.h>
#include <errno.h>
int raise(int sig)
{
/* returns zero if pthread_kill() returned zero, non-zero otherwise */
/* pthread_kill() returns the error number and doesn't set errno */
return (((errno = pthread_kill(pthread_self(), sig))) == 0 ? (0) : (1));
}
/* EOF */

View File

@@ -0,0 +1,22 @@
/* $Id: abort.c,v 1.2 2002/02/20 09:17:58 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/stdlib/abort.c
* PURPOSE: Generate an abnormal process abort
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 15/02/2002: Created
*/
#include <stdlib.h>
#include <signal.h>
void abort(void)
{
raise(SIGABRT);
}
/* EOF */

View File

@@ -0,0 +1,51 @@
/* $Id: exit.c,v 1.2 2002/02/20 09:17:58 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/stdlib/exit.c
* PURPOSE: Terminate a process
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/12/2001: Created
*/
#include <ddk/ntddk.h>
#include <stdlib.h>
#include <psx/debug.h>
void exit(int status)
{
TODO("call all functions registered with atexit()");
TODO("flush all output streams, close all open streams");
TODO("remove all files created by tmpfile()");
TODO("close all of the file descriptors, directory streams,<2C>conversion \
descriptors and message catalogue descriptors");
TODO("send SIGCHILD to the parent process");
TODO("set parent pid of children to pid of psxss");
TODO("detach each attached shared-memory segment");
TODO("for each semaphore for which the calling process has set a semadj \
value(), add the value to the semval of the semaphore.");
TODO("if the process is a controlling process, send SIGHUP to each process \
in the foreground process group...");
TODO("... and disassociate the terminal from the session");
TODO("if the exit causes a process group to become orphaned, and if any \
member of the newly-orphaned process group is stopped, send SIGHUP and \
SIGCONT to each process in the newly-orphaned process group");
TODO("all open named semaphores in the calling process are closed");
TODO("remove any memory locks");
TODO("destroy memory mappings");
TODO("close all open message queue descriptors");
#if 0
ExitProcess(status);
#endif
NtTerminateProcess(NtCurrentProcess(), status);
}
/* EOF */

View File

@@ -0,0 +1,55 @@
/* $Id: malloc.c,v 1.2 2002/02/20 09:17:58 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/stdlib/malloc.c
* PURPOSE: Memory allocator
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 27/12/2001: Created
*/
#include <errno.h>
#include <psx/stdlib.h>
void * malloc(size_t size)
{
void * pTemp = __malloc(size);
if(!pTemp)
errno = ENOMEM;
return (pTemp);
}
void free(void * ptr)
{
__free(ptr);
}
void * calloc(size_t nelem, size_t elsize)
{
return (__malloc(nelem * elsize));
}
void * realloc(void * ptr, size_t size)
{
void * pTemp;
if(size == 0)
__free(ptr);
if(ptr == 0)
return __malloc(size);
pTemp = __realloc(ptr, size);
if(pTemp == 0)
errno = ENOMEM;
return (pTemp);
}
/* EOF */

View File

@@ -0,0 +1,23 @@
/* $Id: strcoll.c,v 1.2 2002/02/20 09:17:58 hyperion Exp $
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS POSIX+ Subsystem
* FILE: subsys/psx/lib/psxdll/string/strcoll.c
* PURPOSE: string comparison using collating information
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
* UPDATE HISTORY:
* 20/01/2002: Created
*/
#include <string.h>
#include <psx/debug.h>
int strcoll(const char *s1, const char *s2)
{
TODO("locale semantics currently unimplemented");
return (strcmp(s1, s2));
}
/* EOF */

Some files were not shown because too many files have changed in this diff Show More