Chameleon

Chameleon Commit Details

Date:2011-12-04 14:10:44 (12 years 4 months ago)
Author:JrCs
Commit:1711
Parents: 1710
Message:Fix a problem with the execution of a hook The "Kernel Start" hook must be call after the bootArgsPreLion structure is correctly initialized.
Changes:
M/trunk/i386/boot2/boot.c

File differences

trunk/i386/boot2/boot.c
182182
183183
184184
185
186
187
188
189
190
191
192
193
194
195
185
196186
197187
198188
......
208198
209199
210200
201
202
203
211204
212205
213206
......
215208
216209
217210
211
212
213
218214
219215
220216
}
usb_loop();
// Notify modules that the kernel is about to be started
if (checkOSVersion("10.7"))
{
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL);
}
else
{
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL);
}
// If we were in text mode, switch to graphics mode.
// This will draw the boot graphics unless we are in
// verbose mode.
// Jump to kernel's entry point. There's no going back now.
if (checkOSVersion("10.7")) {
// Notify modules that the kernel is about to be started
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL);
// Masking out so that Lion doesn't doublefault
outb(0x21, 0xff);/* Maskout all interrupts Pic1 */
outb(0xa1, 0xff);/* Maskout all interrupts Pic2 */
startprog( kernelEntry, bootArgs );
}
else {
// Notify modules that the kernel is about to be started
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL);
startprog( kernelEntry, bootArgsPreLion );
}

Archive Download the corresponding diff file

Revision: 1711