From owner-p4-projects@FreeBSD.ORG Fri May 30 04:16:18 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D0BE8106567B; Fri, 30 May 2008 04:16:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92F5A1065672 for ; Fri, 30 May 2008 04:16:18 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 75FBD8FC0C for ; Fri, 30 May 2008 04:16:18 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m4U4GImg056908 for ; Fri, 30 May 2008 04:16:18 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m4U4GIKJ056906 for perforce@freebsd.org; Fri, 30 May 2008 04:16:18 GMT (envelope-from jb@freebsd.org) Date: Fri, 30 May 2008 04:16:18 GMT Message-Id: <200805300416.m4U4GIKJ056906@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 142560 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2008 04:16:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=142560 Change 142560 by jb@freebsd3 on 2008/05/30 04:15:23 IF7 Affected files ... .. //depot/projects/dtrace7/src/sys/kern/kern_conf.c#5 integrate Differences ... ==== //depot/projects/dtrace7/src/sys/kern/kern_conf.c#5 (text+ko) ==== @@ -25,11 +25,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_conf.c,v 1.208.2.3 2008/04/05 04:18:29 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_conf.c,v 1.208.2.4 2008/05/28 15:41:16 kib Exp $"); #include #include #include +#include #include #include #include @@ -526,6 +527,37 @@ return ((unit & 0xff) | ((unit << 8) & ~0xffff)); } +static void +notify(struct cdev *dev, const char *ev) +{ + static const char prefix[] = "cdev="; + char *data; + int namelen; + + if (cold) + return; + namelen = strlen(dev->si_name); + data = malloc(namelen + sizeof(prefix), M_TEMP, M_WAITOK); + memcpy(data, prefix, sizeof(prefix) - 1); + memcpy(data + sizeof(prefix) - 1, dev->si_name, namelen + 1); + devctl_notify("DEVFS", "CDEV", ev, data); + free(data, M_TEMP); +} + +static void +notify_create(struct cdev *dev) +{ + + notify(dev, "CREATE"); +} + +static void +notify_destroy(struct cdev *dev) +{ + + notify(dev, "DESTROY"); +} + static struct cdev * newdev(struct cdevsw *csw, int y, struct cdev *si) { @@ -706,6 +738,9 @@ devfs_create(dev); clean_unrhdrl(devfs_inos); dev_unlock_and_free(); + + notify_create(dev); + return (dev); } @@ -794,6 +829,9 @@ clean_unrhdrl(devfs_inos); dev_unlock(); dev_depends(pdev, dev); + + notify_create(dev); + return (dev); } @@ -842,6 +880,10 @@ msleep(&csw, &devmtx, PRIBIO, "devdrn", hz / 10); } + mtx_unlock(&devmtx); + notify_destroy(dev); + mtx_lock(&devmtx); + dev->si_drv1 = 0; dev->si_drv2 = 0; bzero(&dev->__si_u, sizeof(dev->__si_u));