Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jul 1997 15:54:01 -0400
From:      "Louis A. Mamakos" <louie@TransSys.COM>
To:        Amancio Hasty <hasty@rah.star-gate.com>
Cc:        multimedia@FreeBSD.ORG
Subject:   Re: ftp://rah.star-gate.com/pub/guspnp12.tar.gz 
Message-ID:  <199707261954.PAA00871@whizzo.TransSys.COM>
In-Reply-To: Your message of "Wed, 23 Jul 1997 19:40:57 PDT." <199707240240.TAA08628@rah.star-gate.com> 
References:  <199707240240.TAA08628@rah.star-gate.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--==_Exmh_20290887880
Content-Type: text/plain; charset=us-ascii

Ok, I made my change to soundcard.h, and now /usr/sbin/mixer can be
rebuilt with guspnp11 and it works!  Attached is the diff.

I can see how this broke now; the mistaken value for IOC_OUT is
currently interpreted by the kernel as IOC_VOID, which would result
in nothing being copied out.

louie


--==_Exmh_20290887880
Content-Type: text/plain ; name="diff1"; charset=us-ascii
Content-Description: diff1
Content-Disposition: attachment; filename="diff1"

--- soundcard.h.orig	Mon Jul 21 21:39:40 1997
+++ soundcard.h	Sat Jul 26 15:46:26 1997
@@ -83,26 +83,7 @@
  */
 
 #ifndef _IOWR
-/*	@(#)ioctlp.h */
-
-/* Ioctl's have the command encoded in the lower word,
- * and the size of any in or out parameters in the upper
- * word.  The high 2 bits of the upper word are used
- * to encode the in/out status of the parameter; for now
- * we restrict parameters to at most 128 bytes.
- */
-/* #define	IOCTYPE		(0xff<<8) */
-#define	IOCPARM_MASK	0x7f		/* parameters must be < 128 bytes */
-#define	IOC_VOID	0x00000000	/* no parameters */
-#define	IOC_OUT		0x20000000	/* copy out parameters */
-#define	IOC_IN		0x40000000	/* copy in parameters */
-#define	IOC_INOUT	(IOC_IN|IOC_OUT)
-/* the 0x20000000 is so we can distinguish new ioctl's from old */
-#define	_IO(x,y)	((int)(IOC_VOID|(x<<8)|y))
-#define	_IOR(x,y,t)	((int)(IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y))
-#define	_IOW(x,y,t)	((int)(IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y))
-/* this should be _IORW, but stdio got there first */
-#define	_IOWR(x,y,t)	((int)(IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y))
+#include <sys/ioccom.h>
 #endif  /* !_IOWR */
 
 #define SNDCTL_SEQ_RESET		_IO  ('Q', 0)

--==_Exmh_20290887880--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199707261954.PAA00871>