[KEYBOARDLEYOUTS]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 19 Nov 2013 23:30:58 +0000 (23:30 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 19 Nov 2013 23:30:58 +0000 (23:30 +0000)
commitdb897ac621ca0f6419338b3b3f0cef178dee62eb
tree0965c63599496775f565ee8c9f00b6e76dc342ed
parentf200563361d8c1c88cdd7042d52d6cae4f69cd95
[KEYBOARDLEYOUTS]
Keyboard layout files have special requirements to the section layout of the dell. That is because MS win32k devs didn't write proper code and that is why the original win32k first parses all sections, looks for the .data section, checks if everything is valid and then truncates a pointer in a table to 16 bit and uses this as an offset into the section. Of course that does ONLY work, if the section is the first section AND that pointer happens to be less than 64k off from the start of the section AND the image base is 64k aligned. To achieve this, add a new module type kbdlayout that does all the neccessary things. On MSVC we merge the sections with a linker command, on GCC we use a custom linker script.

svn path=/trunk/; revision=61053
82 files changed:
reactos/cmake/CMakeMacros.cmake
reactos/dll/keyboard/kbda1/CMakeLists.txt
reactos/dll/keyboard/kbda2/CMakeLists.txt
reactos/dll/keyboard/kbda3/CMakeLists.txt
reactos/dll/keyboard/kbdal/CMakeLists.txt
reactos/dll/keyboard/kbdarme/CMakeLists.txt
reactos/dll/keyboard/kbdarmw/CMakeLists.txt
reactos/dll/keyboard/kbdaze/CMakeLists.txt
reactos/dll/keyboard/kbdazel/CMakeLists.txt
reactos/dll/keyboard/kbdbe/CMakeLists.txt
reactos/dll/keyboard/kbdbga/CMakeLists.txt
reactos/dll/keyboard/kbdbgm/CMakeLists.txt
reactos/dll/keyboard/kbdbgt/CMakeLists.txt
reactos/dll/keyboard/kbdblr/CMakeLists.txt
reactos/dll/keyboard/kbdbr/CMakeLists.txt
reactos/dll/keyboard/kbdbur/CMakeLists.txt
reactos/dll/keyboard/kbdcan/CMakeLists.txt
reactos/dll/keyboard/kbdcr/CMakeLists.txt
reactos/dll/keyboard/kbdcz/CMakeLists.txt
reactos/dll/keyboard/kbdcz1/CMakeLists.txt
reactos/dll/keyboard/kbdda/CMakeLists.txt
reactos/dll/keyboard/kbddv/CMakeLists.txt
reactos/dll/keyboard/kbdes/CMakeLists.txt
reactos/dll/keyboard/kbdest/CMakeLists.txt
reactos/dll/keyboard/kbdfc/CMakeLists.txt
reactos/dll/keyboard/kbdfi/CMakeLists.txt
reactos/dll/keyboard/kbdfr/CMakeLists.txt
reactos/dll/keyboard/kbdgeo/CMakeLists.txt
reactos/dll/keyboard/kbdgerg/CMakeLists.txt
reactos/dll/keyboard/kbdgneo/CMakeLists.txt
reactos/dll/keyboard/kbdgr/CMakeLists.txt
reactos/dll/keyboard/kbdgrist/CMakeLists.txt
reactos/dll/keyboard/kbdhe/CMakeLists.txt
reactos/dll/keyboard/kbdheb/CMakeLists.txt
reactos/dll/keyboard/kbdhu/CMakeLists.txt
reactos/dll/keyboard/kbdic/CMakeLists.txt
reactos/dll/keyboard/kbdinasa/CMakeLists.txt
reactos/dll/keyboard/kbdinben/CMakeLists.txt
reactos/dll/keyboard/kbdindev/CMakeLists.txt
reactos/dll/keyboard/kbdinguj/CMakeLists.txt
reactos/dll/keyboard/kbdinmal/CMakeLists.txt
reactos/dll/keyboard/kbdir/CMakeLists.txt
reactos/dll/keyboard/kbdit/CMakeLists.txt
reactos/dll/keyboard/kbdja/CMakeLists.txt
reactos/dll/keyboard/kbdkaz/CMakeLists.txt
reactos/dll/keyboard/kbdko/CMakeLists.txt
reactos/dll/keyboard/kbdla/CMakeLists.txt
reactos/dll/keyboard/kbdlt1/CMakeLists.txt
reactos/dll/keyboard/kbdlv/CMakeLists.txt
reactos/dll/keyboard/kbdmac/CMakeLists.txt
reactos/dll/keyboard/kbdne/CMakeLists.txt
reactos/dll/keyboard/kbdno/CMakeLists.txt
reactos/dll/keyboard/kbdpl/CMakeLists.txt
reactos/dll/keyboard/kbdpl1/CMakeLists.txt
reactos/dll/keyboard/kbdpo/CMakeLists.txt
reactos/dll/keyboard/kbdro/CMakeLists.txt
reactos/dll/keyboard/kbdru/CMakeLists.txt
reactos/dll/keyboard/kbdru1/CMakeLists.txt
reactos/dll/keyboard/kbdsg/CMakeLists.txt
reactos/dll/keyboard/kbdsk/CMakeLists.txt
reactos/dll/keyboard/kbdsk1/CMakeLists.txt
reactos/dll/keyboard/kbdsw/CMakeLists.txt
reactos/dll/keyboard/kbdtat/CMakeLists.txt
reactos/dll/keyboard/kbdth0/CMakeLists.txt
reactos/dll/keyboard/kbdth1/CMakeLists.txt
reactos/dll/keyboard/kbdth2/CMakeLists.txt
reactos/dll/keyboard/kbdth3/CMakeLists.txt
reactos/dll/keyboard/kbdtuf/CMakeLists.txt
reactos/dll/keyboard/kbdtuq/CMakeLists.txt
reactos/dll/keyboard/kbduk/CMakeLists.txt
reactos/dll/keyboard/kbdur/CMakeLists.txt
reactos/dll/keyboard/kbdurs/CMakeLists.txt
reactos/dll/keyboard/kbdus/CMakeLists.txt
reactos/dll/keyboard/kbdusa/CMakeLists.txt
reactos/dll/keyboard/kbdusl/CMakeLists.txt
reactos/dll/keyboard/kbdusr/CMakeLists.txt
reactos/dll/keyboard/kbdusx/CMakeLists.txt
reactos/dll/keyboard/kbduzb/CMakeLists.txt
reactos/dll/keyboard/kbdvntc/CMakeLists.txt
reactos/dll/keyboard/kbdycc/CMakeLists.txt
reactos/dll/keyboard/kbdycl/CMakeLists.txt
reactos/kbdlayout.lds [new file with mode: 0644]