[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[MiNT] using pexec() to load an overly
Hi,
I'm asking this here because my results change depending on the kernel I
boot with. Recently compiled a fresh kernel, just before draco mentioned
the minor SLB problem. I was using an old one from back when Frank fixed
a folder renaming problem. A project I'm working on seems to fail with the
latest kernel, but works with the older kernel.
Basically what I do is this:
pexec load an assembler overlay with mode 3 (load, don't go)
then call routine to init the overlay that returns a list of pointers
it also returns the adr of memory block it allocates for internal use
so I make various calls, all goes ok...
to remove overlay, I pexec mode 4 (just go), first routine is pterm()
I then mfree the memory block allocated by the overlay
I then mfree the basepage
This all works just fine with my old kernal. Soon as I install the new
kernel something does not get freed, or deallocated as before. I am having
trouble figuring out exactly why or where.
I looked in the change log for the kernel and all I can find is some
references to processes not being allowed to free their own basepage
(malloc/mshrink) but I don't know if that is the reason or not.
I assume the overlay is a child of my process so it's legal for me to
work with it as I am? Or am I doing something bad here?
Any suggestions or such would be helpful. If it's a stupid design let me
know, I need this to work. ;-)
--
Lonny Pursell