On 15.10.2009 13:04, Stefan Reinauer wrote:
ron minnich wrote:
On Mon, Oct 12, 2009 at 8:51 PM, Myles Watson mylesgw@gmail.com wrote:
So I guess the question is how should we make sure the stack and heap are sized correctly. Using malloc to allocate the memory for lzma makes sense, but it is used in CAR too, so that complicates our decision.
lzma decompressor gets a void * from the caller. Caller, if CAR, uses on-stack pointer. RAM code can, if desired, use malloc'ed memory?
We never call lzma while in CAR. Now that would be kind of silly, would it?
Well, originally ulmza() was designed to be runnable in CAR on the OLPC. That's why I picked a scratch pad size which would allow pretty good compression and still fit well into the stack we had during CAR on these boards. Part of the motivation may have been a misunderstanding, this was one of my first coreboot patches (or even the very first one).
I don't care where ulzma places its scratch space as long as it can get enough of it. If someone wants to use malloc() instead, check the variable mallocneeds which has the exact allocation size needed (that size depends on the parameters picked during compression).
Regards, Carl-Daniel