Commit graph

39525 commits

Author SHA1 Message Date
Arch Blackmann 0324a3e3bb Whiners...
svn path=/trunk/; revision=43990
2009-11-06 23:35:28 +00:00
Arch Blackmann d23204652e Implement printout the the state tables. It seems to work fine, but the tool doesn't yet generate the modified keys (shift+, ctrl+, etc) for each virtual key. This is the last thing that remains.
svn path=/trunk/; revision=43989
2009-11-06 22:42:26 +00:00
Johannes Anderwald ee8a3fcc0b - Fix check
svn path=/trunk/; revision=43988
2009-11-06 17:00:20 +00:00
Arch Blackmann 4a61562491 Implement support for writing the virtual key to WCHAR translation for different shift states.
Only 2 shift states are supported for now, I have to add a lot more output generation code to get at least 3 states up and running.


svn path=/trunk/; revision=43985
2009-11-06 00:38:04 +00:00
Arch Blackmann 374c1a0142 Add table of shift state combinations, and add table of shift state types.
svn path=/trunk/; revision=43984
2009-11-06 00:37:06 +00:00
Arch Blackmann bb5b97e281 Print out more state-related tables and information (still missing one large chunk of data). Print out the key and extended key tables for the layout. Fix up some more code.
The C source is almost fully complete for the English US test layout KLC!


svn path=/trunk/; revision=43983
2009-11-05 23:58:38 +00:00
Michael Martin 3b6b3c96d5 [cdfs]
- CdfsVerifyVolume: Disable the delivery of normal Kernel APC's before acquiring resource and re-enable APC's after releasing resource. Fixes ASSERT from ntoskrnl/ex/resource.c. Noticed by Stefan.

svn path=/trunk/; revision=43982
2009-11-05 23:43:57 +00:00
Arch Blackmann 51050d323b Add more support for shift state output. The tool now updates CharModifiers table based on the shift states present in the layout, building both the modification number and the key name based on the virtual key-> name table.
svn path=/trunk/; revision=43978
2009-11-05 19:55:57 +00:00
Arch Blackmann 44487b2614 Generate modifier table. Generate extended scancode table X. Generate extended scancode table Y.
svn path=/trunk/; revision=43977
2009-11-05 19:25:41 +00:00
Arch Blackmann 75cba8f7ab Add table of modifiers.
svn path=/trunk/; revision=43976
2009-11-05 19:24:47 +00:00
Arch Blackmann 43ea0e72e4 Create layout entries for built-in non-redefined scancodes as well, based on the 110-key table (mostly things like the extended keys/SpeedRacer/MediaButtons, etc).
svn path=/trunk/; revision=43975
2009-11-05 19:24:24 +00:00
Aleksey Bragin 8420a2199f [shell32]
- Remove extra semicolon, spotted by Gabriel.

svn path=/trunk/; revision=43973
2009-11-05 13:27:52 +00:00
Aleksey Bragin 0a9bdf2bf0 [shell32]
Gabriel Ilardi
- Properly stub SHSetUnreadMailCountW and SHGetUnreadMailCountW to unregress Thunderbird and possibly other email clients.
See issue #4940 for more details.

svn path=/trunk/; revision=43971
2009-11-05 10:07:16 +00:00
Arch Blackmann 9ba6ecc44b The tool now generates 75% of a typical keyboard layout C file. Lots of stuff still missing, but most of the annoying work is done now... it just has to start filling in the dynamic data.
A full-fledged file will have ligature data, up to 8 shift states, dead keys, etc, but that's not stuff we'll have to deal with at first for simple layouts.
By tomorrow we should be able to fully process and generate latin-alphabet-based language keyboard layouts.


svn path=/trunk/; revision=43970
2009-11-05 05:20:01 +00:00
Arch Blackmann ce3c33cc9f Now write out the DEF file (okay that was too easy).
svn path=/trunk/; revision=43967
2009-11-05 02:04:04 +00:00
Arch Blackmann e430f44387 Kbdtool can now create the resource (RC) file as well!
svn path=/trunk/; revision=43966
2009-11-05 01:57:08 +00:00
Stefan Ginsberg 61c7c70c34 - Convert one more __invlpg to KeInvalidateTlbEntry
svn path=/trunk/; revision=43963
2009-11-04 22:51:00 +00:00
Stefan Ginsberg 76a638d6cf - Oh snap. KDBG is not dead yet.
svn path=/trunk/; revision=43962
2009-11-04 22:49:46 +00:00
Arch Blackmann 6191f04a40 Holy shit Batman! KbdTool can now write out the keyboard layout header file! You should get a Layout01.h if you run it on test.klc (in your current working directory).
svn path=/trunk/; revision=43961
2009-11-04 22:48:55 +00:00
Stefan Ginsberg 1d161cccdd - Implement support for reading and writing physical memory for KD. The implementation uses a reserved mapping page to map the target physical address to. On x86 this page is located at virtual address 0xFFBFF000, and the PTE for this page is the last PTE of the nonpaged pool's PDE. Other architectures may need to reserve the PTE elsewhere.
- The physical memory support relies on several Mm variables and structures to be properly set up. Add a new flag, MiDbgReadyForPhysical, and set it when the debugger support can handle physical memory requests.
- Protect this page with a Memory Area to make the old Mm keep its dirty hands off it.
- Does not support I/O space or cache flags yet.
- Add generic KeInvalidateTlbEntry to invalidate a single TLB entry for a given address instead of flushing the whole TLB. Used by the debugger physical memory support as invalidating the whole TLB for every map and unmap of its debug PTE would incur significant overhead for large copies. Replace direct usage of __invlpg() with this in x86 code too.
- Fix incorrect cache flag check and set in KdpRead/WritePhysicalmemory for write combined requests. The debugger's Uncached flag was checked instead of the Write Combined flag, and the debuggers Write Combine number (0x3) was set instead of Mm's flag (0x20).
- Fix implementation of MmIsAddressValid (at least for x86; other architectures will need more checks). Just check the Address' PDE and PTE valid bits instead of using Memory Areas.
- Add missing ASSERTs to ensure the Memory Areas for paged pool, the PCR page, and the Shared User Data page are created.
- Add missing Memory Area for the 2 pages HAL currently uses for its own mappings on x86 -- previously, those pages could have been allocated by other parts of the OS, which would have resulted in serious corruptions.

svn path=/trunk/; revision=43960
2009-11-04 22:40:18 +00:00
Arch Blackmann 7909bd0733 Refactoring and cleanup. Start fleshing out the output phase. Start handling exit correctly. Fix a bug in DoLAYOUT. Nothing new to see here...
svn path=/trunk/; revision=43959
2009-11-04 22:07:29 +00:00
Stefan Ginsberg 422721748d - Finish the work around for the Pentium cmpxchg8b lock errata: We detected the errata and allocated the 7 first IDT entries on a write protected page, but the final piece of the work around, detecting the write fault ti the Invalid Opcode handler, was missing. Implemented this in the page fault handler to detect and dispatch the write fault to the Invalid Opcode handler.
- Fix the "fix" of un-protecting the 7 IDT entries on P5 in HAL's BIOS call code when setting the custom Invalid Opcode handler. The IDT was unprotected but the write protection wasn't reapplied after the BIOS call, breaking the work around.

Other:
- KdDebuggerEnabled is a BOOLEAN, so don't do a dword compare in KeUpdateSystemTime.
- Use better comment for the hack where we always allow page faults to be handled, even if they the fault occured with interrupts disabled.

svn path=/trunk/; revision=43958
2009-11-04 21:57:32 +00:00
Arch Blackmann 66afccbaeb Add some helpful debug output to LAYOUT parsing, and enable DoLAYOUT code. The tool is able to fully decode/parse the test.klc English US layout file!
svn path=/trunk/; revision=43950
2009-11-04 19:52:36 +00:00
Arch Blackmann 7662e72971 Implement getCharacterInfo so the tool can now handle most LAYOUT entries, but not complicated ligature entries (dead keys are fine though). Also cleaned up the parsing loop of DoLAYOUT to avoid a goto, and finally added detection of SGCAP entries (in which case the tool will fail, since these are complex and not needed for now).
The main parsing loop is pretty much done, now the tool "just" has to merge the states and perform a check for duplicate entries. Then it'll be ready to generate the output files.


svn path=/trunk/; revision=43949
2009-11-04 19:38:21 +00:00
Christoph von Wittich 650e86a2df sync wininet with wine 1.1.32
svn path=/trunk/; revision=43948
2009-11-04 11:16:25 +00:00
Arch Blackmann b8b4a4efec Started adding support for reading the different character states and the cap data (including detecting SGCAP). Now the tool has to determine the type of each character defined at every stage (dead, valid, invalid, ligature, etc...) and save the character in the appropriate slot. Dead and other keys are currently handled, as are undefined keys.
Major work remains to be done...


svn path=/trunk/; revision=43947
2009-11-04 04:49:00 +00:00
Johannes Anderwald b8fc27d6a3 - Add sanity checks
- Implement IDirectSoundCaptureBuffer8::Stop
- Implement changing the stream format for secondary buffers
- Silence debug flood


svn path=/trunk/; revision=43946
2009-11-04 02:16:49 +00:00
Johannes Anderwald c5fab80345 [KS]
- Fix a bug in KsCancelIo which accessed already freed memory
[PORTCLS]
- Cancel all audio stream irps when the it is used in looped stream mode. Fixes re-opening of playback / capture devices in DSound.
- Remove dead code

svn path=/trunk/; revision=43945
2009-11-04 01:54:19 +00:00
Arch Blackmann 420a4f5f4b Start implementing the long task of DoLAYOUT to process the big "meat" of a KLC file: the keyboard layout. Implement the table of recognized virtual keys (and the translation matrix). Add support for hex-entered keys (0x...).
The tool does some minimal error checking for now, and attempts to begin parsing the LAYOUT section, but fails miserably and the code won't execute unless you've enabled verbose mode. I'm just using this commit as a checkpoint for now.
Also fixed SCVK structure to use the last member as a state flag.
Finally, added definitions for LAYOUTENTRY which will keep track of each row's column's values in the LAYOUT.

svn path=/trunk/; revision=43944
2009-11-03 22:57:26 +00:00
Johannes Anderwald 8bd2cfb3ab - Fix checking of flags found by Ged
- Remove unsupported DSBLOCK_FROMWRITECURSOR

svn path=/trunk/; revision=43942
2009-11-03 22:30:36 +00:00
Johannes Anderwald c1198f3164 - Implement IDirectSoundCaptureBuffer8::Lock, IDirectSoundCaptureBuffer8::Unlock
- Fix pin handle leakage

svn path=/trunk/; revision=43941
2009-11-03 22:11:43 +00:00
Johannes Anderwald f2a66752bc - Fix one more dsound_winetest dsound8 failure
- Register IDirectSound8, IDirectSoundCapture8 with COM

svn path=/trunk/; revision=43936
2009-11-03 19:20:59 +00:00
Aleksey Bragin a63e388f53 [csrss]
- Route unhandled messages to DefWndProc, as it's usually done for every window proc.

svn path=/trunk/; revision=43935
2009-11-03 19:18:39 +00:00
Aleksey Bragin 006d77b16b [csrss]
- Paint the desktop only when getting WM_ERASEBKGND message, and do nothing in WM_PAINT. This is the behavior Windows and Wine implement.
- Add WM_CLOSE stub-handler, though it doesn't change much now - all messages unhandled by the switch are going to return "0" since this proc doesn't call DefWndProcHandler.

svn path=/trunk/; revision=43934
2009-11-03 19:03:11 +00:00
Johannes Anderwald e788e7f084 [DSOUND]
- Partly implement IDirectSound8::GetCaps
- Implement IDirectSound8::Compact
- Verify if wrong guid is passed in IDirectSound8::Initialize
- Allow construction of IDirectSound8 object via CoCreateInstance
- Fix more dsound_winetest failures
- dsound_winetest dsound is now down to 31 / 178 failures

svn path=/trunk/; revision=43933
2009-11-03 18:54:52 +00:00
Johannes Anderwald 489e5eb856 - Partially revert 43747
See issue #4936 for more details.

svn path=/trunk/; revision=43931
2009-11-03 11:47:06 +00:00
Johannes Anderwald 7b50f75936 - Add a few sanity checks
- Check for invalid guids passed to IDirectSoundCapture::Initialize
- Add support for creating IDirectSoundCapture object via CoCreateInstance
- Close pin handle when the capture buffer is released
- Implement IDirectSoundCaptureBuffer::GetCaps, IDirectSoundCaptureBuffer::GetCurrentPosition, IDirectSoundCaptureBuffer::GetFormat, IDirectSoundCaptureBuffer::GetStatus, IDirectSoundCaptureBuffer::Start
- Compute a compatible pin format when the format is not supported natively by the driver
- Fix shadowing of global variable (Usurp)
- Verify that directsound global info has already initialized in IDirectSound8::Initialize
- dsound now fails 49/650 on dsound_winetest test:capture (mixing needs to implemented) The remaining tests fail due to unimplemented functionality in portcls / ks / dsound

svn path=/trunk/; revision=43930
2009-11-03 11:43:33 +00:00
Stefan Ginsberg 56a64b9357 - There is no reason to use the Kf* routines for IRQL and Spinlocks directly in HAL -- they are defined to the Kf* versions on x86 anyway, so use the Ke* equivalents exclusively.
svn path=/trunk/; revision=43929
2009-11-02 22:54:02 +00:00
Stefan Ginsberg df4086b261 - Document what the 'NoBuses' member in the PCI_REGISTRY_INFO and PCI_REGISTRY_INFO_INTERNAL structures means to avoid confusion.
svn path=/trunk/; revision=43928
2009-11-02 21:46:41 +00:00
Cameron Gutman 99fec75b6f - Rework our oskittcp signalling
- SignalledConnectionsList is now only used for connections that have pending requests
 - Remove another unused member from CONNECTION_ENDPOINT

svn path=/trunk/; revision=43926
2009-11-02 21:28:25 +00:00
Michael Martin 78ce662964 [user32]
- Reapply changes from 40677 as the edit control does not receive the WM_COMMAND message from its context menu when doing clipboard ops. 
- Fixes crashes in applications created with visual basic when using edit controls context menu.
- If we lose this in next sync, ill grovel and beg.

svn path=/trunk/; revision=43925
2009-11-02 21:17:50 +00:00
Stefan Ginsberg ae81274578 - Fix a FreeLdr PCI detection bug introduced in revision 10742 5 years ago when PCI detection was added. FindPciBios was setting the HardwareMechanism entry in the PCI_REGISTRY_INFO structure (then called CM_PCI_BUS_DATA) to the wrong register returned from the PCI BIOS: CL instead of AL. CL is the number of the last PCI bus in the system (0 if you only have 1 bus, 1 if you have 2 buses). AL contains bit-fields for PCI characteristics, and HAL checks the 2 first bits to determine the type of the BUS. My VMWare test environment has 2 PCI buses, so the number happened to be correct. This doesn't work if there is only 1 PCI bus, such as in QEMU and Vbox, as we then get an invalid PCI type of 0. Fix this and re-enable the PCI detection in HAL to properly detect the PCI type instead of assuming type 1.
svn path=/trunk/; revision=43924
2009-11-02 21:13:45 +00:00
Michael Martin 3afb2efd4a [User32]
- menu.c: Fix a typo.

svn path=/trunk/; revision=43923
2009-11-02 20:38:53 +00:00
Cameron Gutman 97d6fbe737 - Fix some confusion between SignalState and State which resulted in queued IRPs being lost on socket closure
- Call HandleSignalledConnection directly because the connection may not be in the signalled connections list
 - Remove State from CONNECTION_ENDPOINT to prevent this from happening again

svn path=/trunk/; revision=43922
2009-11-02 20:26:29 +00:00
Aleksey Bragin 162a9238f2 [uniata]
- Revert 40896, uniata is back to "amazingly fast" mode.

svn path=/trunk/; revision=43921
2009-11-02 20:18:24 +00:00
Aleksey Bragin 451776ec01 [uniata]
- Don't wait so long for drive reset. Reapplying r26470 by Dmitriy Gorbachev.

svn path=/trunk/; revision=43920
2009-11-02 20:12:19 +00:00
Sylvain Petreolle 9d9af14d23 add missing newlines
svn path=/trunk/; revision=43919
2009-11-02 20:09:00 +00:00
Kamil Hornicek 12c4f5f3e4 - add dsound winetest
svn path=/trunk/; revision=43918
2009-11-02 19:19:39 +00:00
Stefan Ginsberg 7e3ee3137a - Temporarily disable the new HAL PCI detection code since it fails miserably on the build server.
svn path=/trunk/; revision=43917
2009-11-02 19:03:01 +00:00
Stefan Ginsberg 6f5f925851 - Commit something to get build server building -- Revert 20763: "Older binutils don't understand qword ptr", use a newer binutils then.
svn path=/trunk/; revision=43916
2009-11-02 18:40:24 +00:00