Subject: Re: com rumblings...
To: None <garrett_damore@tadpole.com>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: tech-kern
Date: 06/16/2006 01:12:21
garrett_damore@tadpole.com wrote:
> Note that the handle and tag are cached in local variables. It was
> harder to do this cleanly in the new code with register access macros,
> so my new code looks like the following. Ultimately, there could be a
> performance impact depending on how smart the optimizer is:
>
> struct com_regs {
> bus_tag_t iot;
> bus_handle_t ioh;
> #ifdef COM_REGSMAP
> bus_size_t map[16];
> #endif
> };
- Why don't you put map[] member to struct com_softc?
- Where is "COM_REGSMAP" defined in your code?
Is it possible to define it only if a particular MD
attachment which requires special layout is configured?
- Do all MD attachments have to initialize map[] array
if COM_REGSMAP is defined?
(I'm afraid it might make cnattach functions more complicated)
> #define OUTB(r, o, v) bus_space_write_1(r->iot, r->ioh, r->map[o], v)
BTW, I don't like names like OUTB/INB.
I prefer COM_WRITE_REG_1 or so.
---
Izumi Tsutsui