Article View: comp.sys.amiga.tech
Article #11989Re: Unix V7 functionality under (or along with) AmigaDOS? (*LONG*)
From: Randell Jesup
Date: Tue, 28 Mar 1989 19:24
Date: Tue, 28 Mar 1989 19:24
58 lines
3332 bytes
3332 bytes
In article <DEVEN.89Mar25023341@daniel.pawl.rpi.edu> shadow@pawl.rpi.edu (Deven T. Corzine) writes:
>In article <6389@cbmvax.UUCP> jesup@cbmvax.UUCP (Randell Jesup) writes:
>> No, the _only_ thing he has to do is open amiga.foo.library
>>instead of foo.library. Since all the offsets are the same, nothing
>>else need be done, and amigix.foo.library will get all calls that
>>would otherwise go to foo.library.
>Sure, changing the library opened will work for all libraries, EXCEPT
>for the exec.library... Exec.library is accessed through ABSEXECBASE
>at memory location 4, not from a return from the OpenLibrary call. It
>doesn't make sense to change that pointer (at ABSEXECBASE) as it would
>likely cause big troubles, so I'm left with patching all the
>exec.library functions,
Just write your stubs/pragmas to use something other than SysBase,
then. Note that most programs stash execbase in a variable SysBase. This
lessens reliance on accessing chip memory in a fast-mem system. Look at the
lattice startup code and pragmas.
>>>Also, is it legal to FreeMem a different sized block than you
>>>AllocMem()'d? If so, how can you keep it from depending on the
>>>granularity of the memory allocators?
>
>> Check the exec memory chapter.
>
>Didn't want to look it up yourself, huh? :-) Well, the Exec memory
>chapter doesn't say anything clear about it, except that you can't
>depend on the granularity being 8; only a multiple of 4. Nowhere does
>it say anything about whether or not you can legitimately free a
>different sized memory block than you originally allocated.
Page 1-64, White 1.1 RKMs: Partial blocks may be deallocated, but
note again that FreeMem() rounds your address down to the nearest even multiple
of MEM_BLOCKSIZE and the size up to the nearest multiple before the FreeMem()
request is performed.
I said it was in the chapter....
>About the autodocs... Are they the "man" type pages in Appendix A of
>the (1.1) RKM L&D manual? Or am I missing it altogether?
Yes, autodocs are equivalent to man pages.
> I was scanning
>that Amiga Programmer's Handbook, and it says something about every
>task having a message port an associated but separate reply port. I
>don't understand. I thought the same port was used to send AND
>receive the replies to a message? Also, why would all tasks have to
>have message ports? In short, is this true?
A port is never "used" to send a message, only to recieve one (or
recieve a reply). All _Processes_ have a port (pr_MsgPort) for recieving
(a) the inital WB startup message, and (b) replies to filesystem packets.
_Tasks_ do not have associated ports unless the application creating it
does so.
--
Randell Jesup, Commodore Engineering {uunet|rutgers|allegra}!cbmvax!jesup
Technical Details
Message-ID:
<6406@cbmvax.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!rutgers!apple!oliveb!amiga!cbmvax!jesupReferences:
<6389@cbmvax.UUCP> <DEVEN.89Mar25023341@daniel.pawl.rpi.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!rutgers!apple!oliveb!amiga!cbmvax!jesup From: jesup@cbmvax.UUCP (Randell Jesup) Newsgroups: comp.sys.amiga.tech Subject: Re: Unix V7 functionality under (or along with) AmigaDOS? (*LONG*) Message-ID: <6406@cbmvax.UUCP> Date: 28 Mar 89 19:24:59 GMT References: <6389@cbmvax.UUCP> <DEVEN.89Mar25023341@daniel.pawl.rpi.edu> Reply-To: jesup@cbmvax.UUCP (Randell Jesup) Organization: Commodore Technology, West Chester, PA Lines: 58