Hi Jean, On Wed, Jul 16, 2008 at 10:51 AM, Jean Delvare <khali at linux-fr.org> wrote: >> I think a fn-ptr would be fine. The function could take as an arg >> enter/exit/query (0, 1, 2) and a pointer to a byte array with offset, >> value, offset, value pairs. So I see the function having 3 args: >> >> void (* fn-ptr)(int which, char * sequence, int sequence_max_length); > > I'm lost. I thought that we had just agreed that the exit sequence > would be universal? Also, what is the "query" sequence supposed to be? > > Then I don't get the prototype of the function. Who would be calling > it? And who would provide the parameters? The enter sequence is a set > of number being written to a port. It is a per-chip thing (or > per-family) thing. So there are 2 possibilities: > > * For each known chip or family, you store the enter sequence in an > array, and the superio driver iterates over it. This is the approach > taken in both isadump and sensors-detect. > > OR > > * For each known chip or family, you store a function, which the > superio driver calls. The prototype of such a function would be > something like: > void (*enter)(int index_port, int data_port); > This is more flexible, but at this point I have no reason to > believe that this is needed. > > Hmmm, I thought I had said I would let someone else work on this... Sorry, I'm just being slow. I don't know what the "query" sequence is supposed to be either, but just merged it straight from Jim's email. I agree, just an enter sequence in an array which the superio driver iterates over - that is all we need. David