From owner-freebsd-current@FreeBSD.ORG Mon Sep 8 10:45:15 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55F4C1065677 for ; Mon, 8 Sep 2008 10:45:15 +0000 (UTC) (envelope-from vehemens@verizon.net) Received: from vms046pub.verizon.net (vms046pub.verizon.net [206.46.252.46]) by mx1.freebsd.org (Postfix) with ESMTP id 370348FC1C for ; Mon, 8 Sep 2008 10:45:15 +0000 (UTC) (envelope-from vehemens@verizon.net) Received: from sam ([71.107.33.191]) by vms046.mailsrvcs.net (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPA id <0K6V001KDHVD9TL5@vms046.mailsrvcs.net> for freebsd-current@freebsd.org; Mon, 08 Sep 2008 05:45:14 -0500 (CDT) Date: Mon, 08 Sep 2008 03:50:41 -0700 From: vehemens In-reply-to: <20080908100415.GI2038@deviant.kiev.zoral.com.ua> To: Kostik Belousov Message-id: <200809080350.41579.vehemens@verizon.net> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7bit Content-disposition: inline References: <200809080202.00664.vehemens@verizon.net> <20080908100415.GI2038@deviant.kiev.zoral.com.ua> User-Agent: KMail/1.9.10 Cc: freebsd-current@freebsd.org Subject: Re: bsd versus linux device drivers X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 08 Sep 2008 10:45:15 -0000 On Monday 08 September 2008 03:04:15 am Kostik Belousov wrote: > On Mon, Sep 08, 2008 at 02:02:00AM -0700, vehemens wrote: > > In linux drivers, there is a one to one relationship to an open and a > > calling argument structure called struct file. It provides a private > > data pointer that allows the driver to preserve unique state information > > across other calls such as read/write/ioctl/mmap/close etc. > > > > For bsd drivers, my understanding there is not an equivalent. As a > > result it is not possible to preserve different state information for > > multiple opens by the same thread of the same device major/minor #'s. > > > > Is this correct, or did i miss something? > > There is devfs_{get,set}_cdevpriv() KPI. Still no manpage, I shall fix > this ASAP. Just started looking at the firewire driver which has clone. It looks like it hooks into the event handler. Don't quite understand it all yet, so I'm going to look forward to that man page.