From owner-freebsd-current Sun Nov 10 11:40:58 2002 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 8A70337B401; Sun, 10 Nov 2002 11:40:56 -0800 (PST) Received: from kayak.xcllnt.net (209-128-86-226.BAYAREA.NET [209.128.86.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2C4C843E97; Sun, 10 Nov 2002 11:40:54 -0800 (PST) (envelope-from marcel@xcllnt.net) Received: from athlon.pn.xcllnt.net (athlon.pn.xcllnt.net [192.168.4.3]) by kayak.xcllnt.net (8.12.6/8.12.6) with ESMTP id gAAJem0N019034; Sun, 10 Nov 2002 11:40:48 -0800 (PST) (envelope-from marcel@kayak.pn.xcllnt.net) Received: from athlon.pn.xcllnt.net (localhost [127.0.0.1]) by athlon.pn.xcllnt.net (8.12.6/8.12.6) with ESMTP id gAAJembK000621; Sun, 10 Nov 2002 11:40:48 -0800 (PST) (envelope-from marcel@athlon.pn.xcllnt.net) Received: (from marcel@localhost) by athlon.pn.xcllnt.net (8.12.6/8.12.6/Submit) id gAAJemXW000620; Sun, 10 Nov 2002 11:40:48 -0800 (PST) (envelope-from marcel) Date: Sun, 10 Nov 2002 11:40:48 -0800 From: Marcel Moolenaar To: Maxime Henrion Cc: current@freebsd.org Subject: Re: uuid.h is not C++ safe Message-ID: <20021110194048.GA542@athlon.pn.xcllnt.net> References: <3DC71B56.1050102@137.org> <20021105105813.GD26605@elvis.mu.org> <20021105105927.GE26605@elvis.mu.org> <20021105030419.A19427@FreeBSD.org> <20021105111724.GF26605@elvis.mu.org> <20021105123036.A99916@kayak.xcllnt.net> <20021105234624.GI26605@elvis.mu.org> <20021106013345.GA1633@athlon.pn.xcllnt.net> <20021110120411.GV26605@elvis.mu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021110120411.GV26605@elvis.mu.org> User-Agent: Mutt/1.5.1i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Sun, Nov 10, 2002 at 04:04:11AM -0800, Maxime Henrion wrote: > Marcel Moolenaar wrote: > > On Tue, Nov 05, 2002 at 03:46:24PM -0800, Maxime Henrion wrote: > > [snip] > > > > > That's arguably bad, sys/uuid.h shouldn't have any !_KERNEL prototypes > > > > > in it. > > > > > > > > If there's a better place, then we should move it. We could put it in > > > > , but I don't want to make that header a requirement if one > > > > only uses the syscall. I don't yet know what a good place would be, > > > > if not . Suggestions? > > > > > > Well I don't really understand what you mean here. > > > > I'm not sure I like uuidgen(2) in . is the DCE 1.1 > > compliant interface to UUIDs. describes the underlying > > generic interface on which builds. It feels wrong to mix > > them... > > > > > Since this prototype > > > is #ifndef _KERNEL in sys/sys/uuid.h and since this header is included by > > > lib/libc/uuid/uuid.h, moving it into the libc header shouldn't make any > > > difference both in visibility and header requirements. > > > > There is no difference when was included already. There is > > a difference when only was included before. One cannot > > use uuidgen(2) without also including the DCE 1.1 compliant stuff. > > What about having uuidgen(2) in sys/uuid.h, but hidden by a > _UIDGEN_VISIBLE macro ? That's not very elegant but it will help not > polluting the DCE 1.1 namespace with the syscall and let applications > which need it (gpt and uuidgen IIRC) have it declared. > > Of course, we could also have a third header just for uuidgen(2). Hmmm. A third header is just too much. I'd much rather we keep it where it is, visible and all, until we have a problem. This will not happen before we have a full libdce implementation I would say. But then things probably get shuffled around anyway. Note: only uuidgen(1) uses uuidgen(2). All other UUID consumers, with obviously the exception of uuid_create(3), use the DCE 1.1 interface. Making uuidgen(2) invisible is not infeasible. However, uuidgen(1) is a well-known command and I think there's benefit to keep uuidgen(2) visible. I don't think it's that unrealistic to speculate on the possible future that uuidgen(2) will be a backend (low-level) interface on more OSes. The best way to speculate is if you help force it :-) -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message