All of lore.kernel.org
 help / color / mirror / Atom feed
From: Werner Almesberger <Werner.Almesberger@epfl.ch>
To: LA Walsh <law@sgi.com>
Cc: 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 22:21:17 +0100	[thread overview]
Message-ID: <20001215222117.S573@almesberger.net> (raw)
In-Reply-To: <20001215152137.K599@almesberger.net> <NBBBJGOOMDFADJDGDCPHAENMCJAA.law@sgi.com>
In-Reply-To: <NBBBJGOOMDFADJDGDCPHAENMCJAA.law@sgi.com>; from law@sgi.com on Fri, Dec 15, 2000 at 10:10:39AM -0800

LA Walsh wrote:
> 	I think in my specific case, perhaps, linux/malloc.h *is* a public
> interface that is to be included by module writers and belongs in the
> 'public interface dir -- and that's great.  But it includes files like
> 'slab.h' which are kernel mm-specific that may change in the future.

As far as I understand the scenario you're describing, this seems to
be the only problem. <public>/malloc.h shouldn't need to include
<private>/slab.h.

If there's anything <private>/slab.h provides (either directly or
indirectly) that is needed in <public>/malloc.h, that should either be
in another public header, or malloc.h actually shouldn't depend on it.

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 */

Too bad there's no  typedef struct __foo struct foo;

I don't think restructuring the headers in this way would cause
a long period of instability. The main problem seems to be to
decide what is officially private and what isn't.

> 	Any other solution, as I see it, would break existing module code.

Hmm, I think what I've outlined above wouldn't break more code than
your approach. Obviously, modiles currently using "private" interfaces
are in trouble either way.

- Werner

-- 
  _________________________________________________________________________
 / Werner Almesberger, ICA, EPFL, CH           Werner.Almesberger@epfl.ch /
/_IN_N_032__Tel_+41_21_693_6621__Fax_+41_21_693_6610_____________________/
-
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 21:52 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 [this message]
2000-12-15 21:36           ` LA Walsh
2000-12-15 22:48           ` J . A . Magallon
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=20001215222117.S573@almesberger.net \
    --to=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.