From owner-freebsd-current Thu Jun 25 04:28:29 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id EAA18644 for freebsd-current-outgoing; Thu, 25 Jun 1998 04:28:29 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from alpo.whistle.com (alpo.whistle.com [207.76.204.38]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id EAA18635; Thu, 25 Jun 1998 04:28:27 -0700 (PDT) (envelope-from julian@whistle.com) Received: (from daemon@localhost) by alpo.whistle.com (8.8.5/8.8.5) id EAA02172; Thu, 25 Jun 1998 04:20:45 -0700 (PDT) Received: from current1.whistle.com(207.76.205.22) via SMTP by alpo.whistle.com, id smtpd002170; Thu Jun 25 11:20:41 1998 Date: Thu, 25 Jun 1998 04:20:38 -0700 (PDT) From: Julian Elischer To: phk@FreeBSD.ORG cc: current@FreeBSD.ORG Subject: Re: BDEVS going away Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I've been working on this for a couple of weeks now. I have quite a bit done (it's part of making cdevsw and bdevsw go away anyhow) THAT is a harder problem, but I basically have the bdevsw table removed.. (well as of tonight it's still there, but it's not really being used.) both block and char devices are going through the cdevsw table at the present time, so the bdevsw could be removed.. I've still got a bit to do but my aim is to have dev_t gone by the end of the fortnight. Using devfs allows me to have the same major numbers for the char and block devices. Some time in the next few days I will switch the mounting code over to use the char device and the block devices will be unused. Regarding removing dev_t, It will be replaced by different things depending upon what it is being used for. In cases where it's being used to identify a subdevice (minor) it will be replaced by a cookie that the driver gives the devfs on creating the device. In cases where it is being used to identify the driver (major) then there will either be a direct reference to the devsw entry in question, or in a few cases the appropriate strategy routine is already known and no added data is needed. this implied removing rawread() and rawwrite() and puting them in each driver so that the dev_t there was no longer needed (for example). In some cases it will be replaced by a vnode pointer, but I haven't got them all worked out yet. I still need to track down some users of dev_t to decide what the correct answer is for them. The trick is to convince myself that the vnode pointer in b_vp in struct buf, is always valid when needed for various device's strategy routines, so that the appropriate information can be extracted without needing to go to the devsw[]. so far this is not the case, so I still need a devsw table, in some cases. (I'm bypassing it in others) I have all the specfs vnops running directly in devfs and bypasing the devsw, except for strategy, because it doesn't get the vnode as an argument, and I'm not yet convinced that b_vp is always valid and pointing to the correct device. (I'm writing this mail on a kernel with SOME of these changes..) julian To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message