From owner-freebsd-multimedia Sat Jul 26 12:54:07 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id MAA16827 for multimedia-outgoing; Sat, 26 Jul 1997 12:54:07 -0700 (PDT) Received: from whizzo.TransSys.COM (whizzo.TransSys.COM [144.202.42.10]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id MAA16819 for ; Sat, 26 Jul 1997 12:54:04 -0700 (PDT) Received: from localhost.transsys.com (localhost.transsys.com [127.0.0.1]) by whizzo.TransSys.COM (8.8.6/8.7.3) with SMTP id PAA00871; Sat, 26 Jul 1997 15:54:01 -0400 (EDT) Message-Id: <199707261954.PAA00871@whizzo.TransSys.COM> X-Mailer: exmh version 2.0delta 6/3/97 To: Amancio Hasty cc: multimedia@FreeBSD.ORG From: "Louis A. Mamakos" Subject: Re: ftp://rah.star-gate.com/pub/guspnp12.tar.gz References: <199707240240.TAA08628@rah.star-gate.com> In-reply-to: Your message of "Wed, 23 Jul 1997 19:40:57 PDT." <199707240240.TAA08628@rah.star-gate.com> Mime-Version: 1.0 Content-Type: multipart/mixed ; boundary="==_Exmh_20290887880" Date: Sat, 26 Jul 1997 15:54:01 -0400 Sender: owner-freebsd-multimedia@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk 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 #endif /* !_IOWR */ #define SNDCTL_SEQ_RESET _IO ('Q', 0) --==_Exmh_20290887880--