Subject: Re: Proposal: eliminate all macros in the kernel
To: None <>
From: YAMAMOTO Takashi <>
List: tech-kern
Date: 11/21/2005 07:07:40
> I think we're very much in agreement about this.  Just to be clear, I am
> suggesting that we *first* move from macros to inline functions -- a
> change that is primarily syntactic, which should have little or no impact
> on performance but improve readability and maintainability of code, *then*
> carefully consider which of those functions should be inline at all: any
> resulting changes at that point should be much simpler to make because
> the macros will have already been converted to function form.

inline functions and non-inline functions involve different
header requirements.  so if you likely make them non-inline functions
later, just do it as a single step.

	#define	SOMEMACRO(x)	((x)->x_member)

	inline int
	somemacro(struct x *x)
		return x->x_member;

	struct x;
	int somemacro(struct x *);

note that only inline version needs to pull definition of "struct x"
even when "somemacro" is not used at all.