From owner-freebsd-geom@FreeBSD.ORG Mon Nov 29 07:12:38 2010 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA2CF1065695 for ; Mon, 29 Nov 2010 07:12:38 +0000 (UTC) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (agora.rdrop.com [IPv6:2607:f678:1010::34]) by mx1.freebsd.org (Postfix) with ESMTP id 9AA1C8FC16 for ; Mon, 29 Nov 2010 07:12:38 +0000 (UTC) Received: from agora.rdrop.com (66@localhost [127.0.0.1]) by agora.rdrop.com (8.13.1/8.12.7) with ESMTP id oAT7CbEv093834 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 28 Nov 2010 23:12:37 -0800 (PST) (envelope-from perryh@pluto.rain.com) Received: (from uucp@localhost) by agora.rdrop.com (8.13.1/8.12.9/Submit) with UUCP id oAT7CbTX093833; Sun, 28 Nov 2010 23:12:37 -0800 (PST) Received: from fbsd61 by pluto.rain.com (4.1/SMI-4.1-pluto-M2060407) id AA07004; Sun, 28 Nov 10 23:07:55 PST Date: Sun, 28 Nov 2010 23:07:36 -0800 From: perryh@pluto.rain.com To: bu7cher@yandex.ru Message-Id: <4cf35138.VleaJCYj4z5kd9WX%perryh@pluto.rain.com> References: <4cf21cd3.UbQ57eYkszW60Ww4%perryh@pluto.rain.com> <4CF34297.4070300@yandex.ru> In-Reply-To: <4CF34297.4070300@yandex.ru> User-Agent: nail 11.25 7/29/05 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-geom@freebsd.org Subject: Re: G_PART macro definitions X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Nov 2010 07:12:38 -0000 "Andrey V. Elsukov" wrote: > G_PART_XXX macros are scheme depended. They do call scheme-specific > methods that are defined in g_part_xxx.c files. E.g. when "table" > argument (kobj instance) is instance of MBR scheme, then G_PART_PROBE > will call g_part_mbr_probe method. Yes, I had figured that was probably the sort of thing that was happening, but am looking for the details of how the macros are defined (so I can figure out what they expand to) and how the underlying data structures get initialized. For example, I would expect to find -- somewhere -- some definitions along the lines of #define G_PART_PROBE(table, cp) (*(table->XXX))(table, cp) (for some, probably fairly complicated, value of XXX).