All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J . A . Magallon" <jamagallon@able.es>
To: Werner Almesberger <Werner.Almesberger@epfl.ch>
Cc: LA Walsh <law@sgi.com>, Alexander Viro <viro@math.psu.edu>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: Linus's include file strategy redux
Date: Fri, 15 Dec 2000 23:48:57 +0100	[thread overview]
Message-ID: <20001215234857.A689@werewolf.able.es> (raw)
In-Reply-To: <20001215152137.K599@almesberger.net> <NBBBJGOOMDFADJDGDCPHAENMCJAA.law@sgi.com> <20001215222117.S573@almesberger.net>
In-Reply-To: <20001215222117.S573@almesberger.net>; from Werner.Almesberger@epfl.ch on Fri, Dec 15, 2000 at 22:21:17 +0100


On 2000/12/15 Werner Almesberger wrote:
> LA Walsh wrote:
> 
> Exception: opaque types; there one would have to go via a __ identifier,
> i.e.
> 
> <public>/foo.h defines  struct __foo ...;
> <public>/bar.h includes <public>/foo.h
>                and uses #define FOOSIZE sizeof(struct __foo)
> <private>/foo.h either  typedef struct __foo foo_t;
>                 or      #define foo __foo  /* ugly */
> 

Easier: public kernel interfaces only work through pointers.
<public>/foo.h typedef struct foo foo_t;
               foo_t* foo_new();
<private>/foo.h includes <public>/foo.h
               struct foo { ............... };
               and uses #define FOOSIZE sizeof(foo_t)

Drawback: public access is slow (always through foo_set_xxxx_field(foo_t*))
          private access from kernel or modules is fast (foo_t->x = ...)
Advantage: kernel can change, foo_t internals can change and it is binary
          compatible. Even public headers can be kernel version
          independent.

Too kind-of-classroom-not-real-world-useless-thing ?
All depends on public access needing full fast paths...

-- 
Juan Antonio Magallon Lacarta                                 #> cd /pub
mailto:jamagallon@able.es                                     #> more beer

Linux werewolf 2.2.19-pre1 #1 SMP Fri Dec 15 22:25:20 CET 2000 i686

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  parent reply	other threads:[~2000-12-15 23:20 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <91gr99$bs81o$1@fido.engr.sgi.com>
2000-12-14 23:55 ` Linus's include file strategy redux LA Walsh
2000-12-15  0:14   ` Miquel van Smoorenburg
2000-12-15  0:17     ` Alexander Viro
2000-12-15  0:39       ` Miquel van Smoorenburg
2000-12-15  0:33     ` Alan Cox
2000-12-15  0:48       ` Alexander Viro
2000-12-15  0:56         ` David Riley
2000-12-15  1:05           ` Alexander Viro
2000-12-15  4:24             ` ferret
2000-12-16 11:30       ` Marcus Sundberg
2000-12-15 14:57     ` Kurt Roeckx
2000-12-15 15:23       ` Dana Lacoste
2000-12-15 22:28         ` Alex Buell
2000-12-16 22:41         ` Peter Samuelson
2000-12-18 15:51           ` Dana Lacoste
2000-12-18 17:08             ` Peter Samuelson
2000-12-18 19:32             ` David Schleef
2000-12-18 17:04         ` richard offer
2000-12-19  5:16           ` Peter Samuelson
2000-12-15  0:15   ` Alexander Viro
2000-12-15  7:21     ` LA Walsh
2000-12-15 11:05       ` Chmouel Boudjnah
2000-12-15 14:21     ` Werner Almesberger
2000-12-15 17:15       ` ferret
2000-12-15 17:46         ` Werner Almesberger
2000-12-15 20:29           ` Joe deBlaquiere
2000-12-15 21:27             ` Werner Almesberger
2000-12-15 22:58               ` Joe deBlaquiere
2000-12-15 23:56                 ` Werner Almesberger
2000-12-16 22:50                 ` Peter Samuelson
2000-12-17  0:04                   ` Joe deBlaquiere
2000-12-17  2:05                     ` Peter Samuelson
2000-12-15 18:10       ` LA Walsh
2000-12-15 21:02         ` Miquel van Smoorenburg
2000-12-16  4:04           ` ferret
2000-12-16 11:09             ` Miquel van Smoorenburg
2000-12-16 17:20               ` ferret
2000-12-17  0:21                 ` J . A . Magallon
2000-12-16 23:10           ` Peter Samuelson
2000-12-17  1:15             ` Miquel van Smoorenburg
2000-12-17  2:18               ` Peter Samuelson
2000-12-15 21:21         ` Werner Almesberger
2000-12-15 21:36           ` LA Walsh
2000-12-15 22:48           ` J . A . Magallon [this message]
2000-12-15 23:47             ` Werner Almesberger
2000-12-16  4:11             ` ferret
2000-12-16  2:50         ` richard offer
2000-12-16  4:22           ` What about 'kernel package'? was: " ferret
2000-12-15 19:35       ` Matt D. Robinson
2000-12-15 21:36         ` Werner Almesberger
2000-12-18 17:48 Petr Vandrovec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20001215234857.A689@werewolf.able.es \
    --to=jamagallon@able.es \
    --cc=Werner.Almesberger@epfl.ch \
    --cc=law@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@math.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.