Subject: Re: PCI device driver interface changes
To: Chris G Demetriou <Chris_G_Demetriou@UX2.SP.CS.CMU.EDU>
From: Charles M. Hannum <mycroft@MIT.EDU>
List: current-users
Date: 03/27/1996 01:52:31
> u_int pa_intrswiz;
> pcitag_t pa_intrtag;
>
> You haven't specified what these two values *are*.
They are only to be used in the way specified, by drivers. drivers
and driver-writers are specifically _not_ supposed to know or care
what they are, except that they are to use them in the way mentioned.
I suppose that `driver-writers' doesn't include, for example, someone
writing support for a non-standard bridge, then? I don't buy that.
Even if I did, the internals should be documented. I'd also like to
see the convention I started of documenting specific interpretations
of the standard continued (although this isn't specific to the PCI
code).
> This function is always successful. If the arguments are
> invalid, behaviour is undefined.
>
> Those two statements seem to conflict. If the input values don't make
> any sense, doing something is almost certainly worse than panicking,
> and doing nothing could allow a bug to go unnoticed or some more
> obscure error to occur.
Success or failure implies return. "behaviour is undefined" means,
among other things, that it may never return.
Precisely. If it's `always successful', then it must return, which
means that the behaviour is at least partially defined. Your response
gives me the impression that you simply misworded the original
statement.