From owner-freebsd-current@FreeBSD.ORG Fri Feb 6 13:38:48 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E118116A4CF for ; Fri, 6 Feb 2004 13:38:48 -0800 (PST) Received: from critter.freebsd.dk (critter.freebsd.dk [212.242.86.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 573A643D53 for ; Fri, 6 Feb 2004 13:38:47 -0800 (PST) (envelope-from phk@phk.freebsd.dk) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.12.10/8.12.10) with ESMTP id i16Lcibj004311 for ; Fri, 6 Feb 2004 22:38:45 +0100 (CET) (envelope-from phk@phk.freebsd.dk) To: current@freebsd.org From: Poul-Henning Kamp Date: Fri, 06 Feb 2004 22:38:44 +0100 Message-ID: <4310.1076103524@critter.freebsd.dk> Subject: Review/Test: Pseudo-device unit number management patch X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2004 21:38:49 -0000 http://phk.freebsd.dk/patch/pseudo.patch This patch adds a couple of functions for pseudodrivers to use for implementing cloning in a manner we will be able to lock down (shortly). Basically what happens is that pseudo drivers get a way to ask for "give me the dev_t with this unit number" or alternatively "give me a dev_t with the lowest guaranteed free unit number" (there are a lot of non-POLA in the value of this number, just live with it for now!) Managing the unit number space this way removes the need to use rman(9) and greatly simplifies the code in the drivers because even using rman(9) they still needed to manage their dev_t's too. I have taken the if_tun, if_tap and nmdm drivers through the mill, partly because they (ab)used makedev(), but mostly because together they represent three different problems for device-cloning: if_tun is the plain case: just give me a device. if_tap has two kinds of devices, with a flag for device type. nmdm has paired devices (a'la pty). I would appreciate if people would test these devices work _as previously_ with this patch in place. If nothing crops up, I plan to commit this patch in two weeks time. Poul-Henning -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.