Re: [Etherboot-developers] Windows 98 slow booting
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: <ebi...@ln...> - 2002-10-16 23:32:33
|
ke...@us... (Ken Yap) writes: > >We call gateA20_unset() on some exit paths but not all. The proper > >solution would probably be to have a static inline void eb_exit(int) that > >calls gateA20_unset() (and maybe some other last-minute tidy-ups) before > >doing an exit(). All existing calls to exit() should then be replaced > >with calls to eb_exit(). However, I'm not sure that I completely > >understand all the places where exit() is currently used in Etherboot, so > >I'm not confident in doing this. For example, in main.c we have: > > case 255: > > exit(0); > > state = -1; > > break; > >i.e. code following an exit(), which is puzzling me. > > > >Thoughts? > > >From a glance at the code, that looks like the correct solution for 5.0. > All the occurences of exit are in main, except for one in bootmenu.c > which I'll do for completeness. Have you tried it and does it work? If > so I'll make the changes later today. > > For 5.1, it's trickier, as Eric says as if Etherboot is running above 1 > MB and you can't turn it off there and then. It isn't a lot trickier, as there is always code that runs below 1MB to jump to the entry point. So we just need to include the code in stub that jumps to the 16bit entry point. That is a little trickier because that one piece can no longer be in C. :( Eric |