On Tue, Feb 25, 2014 at 08:55:42AM -0800, H. Peter Anvin wrote: > On 02/25/2014 08:43 AM, Vivek Goyal wrote: > > > > W.r.t sharing the code with arch/x86/boot/, I am not sure how to do it. > > > > Pretty much we have been doing #includes (a bit sad, I know)... there > are already a lot of them between arch/x86/boot, > arch/x86/boot/compressed, and arch/x86/realmode. In that sense > collecting these "limited environments" together and have these kinds of > stuff together in one place seems like a good idea. > > Does purgatory move large amounts of data around? If so, we probably > *do* want to use rep movsl, but otherwise you're definitely right, using > C code makes more sense. No, I don't move lots of data around in purgatory. We just copy backup region and that's 640KB of data. So we don't copy a lot and it is not a performance sensitive path. Hence I would like to keep it simple. That is have C version of memcpy() in purgatory() which works both for 32bit and 64bit and reuse that across purgatory code. Please let me know if you don't like the idea and you still think there should be a shared implementation between arch/x86/boot/ and arch/x86/purgatory/. Thanks Vivek