Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!decwrl!mcnc!ncsuvx!news From: kdarling@hobbes.ncsu.edu (Kevin Darling) Newsgroups: comp.os.os9 Subject: Re: more linker problems Message-ID: <1991Jan31.163954.25797@ncsuvx.ncsu.edu> Date: 31 Jan 91 16:39:54 GMT References: <1991Jan29.114204.1751@yogi.fhhosp.ab.ca> Sender: news@ncsuvx.ncsu.edu (USENET News System) Organization: NCSU Computing Center Lines: 33 edstrom@elmer.hsc.ucalgary.ca (John Edstrom) writes: > So, my question is: how do I get my linker to respect IOMan's data sections? First, my apologies... about a week ago it suddenly struck me what your problem was, but I forgot to send you email (and kind of hoped that Bruce Isted had fixed you up via voice). Anyway... Yes, the first part of device static storage always has the same variables (used by kernel, manager and driver), and these are defined in "iodev.a". This section ends at V_USER, which is a little bit misleading because it actual denotes the beginning of File Manager storage. The second section is file manager specific, and for SCF it's "scfdev.a". It starts at V_USER and ends at V_SCF, which is the total amount needed to be reserved for all SCF devices. After all those come your own driver specific variables. So look in DEFS at "scfstat.a", which uses both "iodev.a" and "scfdev.a". And finally, that file has been precompiled into the LIB as "scfstat.l". To compile your driver then, you could use: "l68 /dd/lib/scfstat.l rels/mydriver.r -O=objs/mydriver" Note that "scfstat.l" must come _first_, of course, so that the vsect's defined there will end up before your own variables. (The SCF driver static storage is $54 bytes long, btw) - kevin or <76703.4227@compuserve.com> PS: You should be using V_PORT(a2) to get the address of the ram area, to be address-independent. Keep asking Q's!