[Top] [All Lists]


Subject: pckbd_rate
From: Mike Nugent <>
Date: 01 Oct 2002 01:38:50 -0700
Original-recipient: rfc822;

I was compiling 2.4.18 and I ran into this (this was all done after the
symbolic links were set up to the mips directories):

When compiling /usr/src/kernel-source-2.4.18/drivers/char/keyboard.c:

Included in this order
#include <asm/keyboard.h>
#include <linux/vt_kern.h>

/usr/src/kernel-source-2.4.18/include/linux/vt_kern.h:35: `pckbd_rate'
redeclared as different kind of symbol
/usr/src/kernel-source-2.4.18/include/asm/keyboard.h:30: previous
declaration of `pckbd_rate'

in asm/keyboard.h
extern int pckbd_rate(struct kbd_repeat *rep);
#define kbd_rate                pckbd_rate

In that order, but, as I understand, the preprocessor will make a pass
and substitution before the c compiler is called so effectively
extern int kbd_rate(struct kbd_repeat *rep);

and in linux/vt_kern.h

extern int (*kbd_rate)(struct kbd_repeat *rep);

As you can see, the first is the variable and the second is a pointer. 
Which is right?

I commented out the pointer, chosen at random and crashed a bit later at
pc_keyb.c.  So I went back and commented out the first one.  Crashed in
the same place.  So I grabbed my keyboard.h from my 2.4.16 kernel and
copied it in.  It works fine.

Is this just me?

Mike Nugent
"I believe the use of noise to make music will increase until we reach a
music produced through the aid of electrical instruments which will make
available for musical purposes any and all sounds that can be heard."
 -- composer John Cage, 1937

<Prev in Thread] Current Thread [Next in Thread>
  • pckbd_rate, Mike Nugent <=