- Because we'll need to pass the ARC hardware information to the kernel, we need...
authorAleksey Bragin <aleksey@reactos.org>
Sun, 9 Dec 2007 22:57:40 +0000 (22:57 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Sun, 9 Dec 2007 22:57:40 +0000 (22:57 +0000)
commit222172277be9b3587c71480fee3c3543b067657e
treef3890ceda085284de412192c61d3997f18524d39
parent4fa42fad474393210b9300d02676a3ba738e5130
- Because we'll need to pass the ARC hardware information to the kernel, we need to use the usual FreeLDR trick of using a static buffer where to store the data instead of allocating memory. But, unlike our other data, this kind of information is variably-sized, and it's not possible to make arrays of arrays and start assuming upper bounds. Therefore, give us a large 16KB stash buffer, and implement a very simple array-based heap allocator so that all the ARC hardware memory will be contiguous and static as the kernel will expect it.
- Copy all configuration data, identifiers and other data passed to the arc hardware routines into a new location. This is because the caller will free this information, and we want to keep it in memory. We also want it to be contiguous and part of our stash buffer, so allocate the copies from the stash buffer described above.
- Store the root of the hardware tree in the ArchExtra ReactOS Loader Parameter Block, the kernel's freeldr->ntldr conversion routines will later deal with this data.

svn path=/trunk/; revision=31116
reactos/boot/freeldr/freeldr/include/arch/i386/hardware.h
reactos/boot/freeldr/freeldr/reactos/archwsup.c
reactos/boot/freeldr/freeldr/reactos/reactos.c