[alsa-devel] usr/include/linux/soundcard.h warnings for 'make headers_check'

Arnd Bergmann arnd at arndb.de
Wed Feb 4 15:02:07 CET 2009

On Wednesday 04 February 2009, Jaswinder Singh Rajput wrote:
> > +#define _SEQ_EXTERN extern
> > +#define SEQ_USE_EXTBUF() \
> > +             _SEQ_EXTERN unsigned char _seqbuf[]; \
> > +             _SEQ_EXTERN int _seqbuflen;_SEQ_EXTERN int _seqbufptr
> hmm, you rename snake as rope, but actually snake is still there ;-)

Yes, that's true.

The alternative would be to remove all those macros entirely, breaking
also the applications from number 2 in my list.

I see this header as another example of the byteorder.h type where
a kernel header provides functionality that is used by existing
applications. While it should have been part of a library to start
with, we cannot change it any more now without breaking stuff.

Maybe a comment should be added to clarify this.

	Arnd <><

--- a/include/linux/soundcard.h
+++ b/include/linux/soundcard.h
@@ -1050,7 +1050,17 @@ typedef struct mixer_vol_table {
  *	Some convenience macros to simplify programming of the
  *	/dev/sequencer interface
- *	These macros define the API which should be used when possible.
+ *	This is a legacy interface for applications written against
+ *	the OSSlib-3.8 style interface. It is no longer possible
+ *	to actually link against OSSlib with this header, but we
+ *	still provide these macros for programs using them.
+ *
+ *	If you want to use OSSlib, it is recommended that you get
+ *	the GPL version of OSS-4.x and build against that version
+ *	of the header.
+ *
+ *	We redefine the extern keyword so that make headers_check
+ *	does not complain about SEQ_USE_EXTBUF.

More information about the Alsa-devel mailing list