Subject: call for approval to the changes to interface.
To: None <port-mips@netbsd.org>
From: Noriyuki Soda <soda@sra.co.jp>
List: port-mips
Date: 03/24/1999 22:06:00
Nishimura-san and Mr. Castor changed the inteface of <machine/asm.h>
in this January.
Because NetBSD-1.4 code freeze will come soon. we call for approval
the changes to the interface.

Unlike the old interface, the new interface of <machine/asm.h> is
compatible with other mips platforms like Ultrix, SONY NEWS-OS, Linux,
and perhaps SGI (I don't have access to SGI IRIX, but perhaps
Nishimura-san or Mr. Castor checked the compatibility with SGI).
This is the reason to the following changes.

Proposal:
------------------------------------------------------------------------
CHANGES TO MACRO NAMES
				old one		new one
leaf routine			LEAF		LEAF (not changed)
non-profiled leaf routine	NLEAF		LEAF_NONPROFILE (*)
alternate entry to leaf routine	ALEAF		XLEAF
non-leaf routine		NON_LEAF	NESTED
non-profiled non-leaf routine	NNON_LEAF	NESTED_NONPROFILE (*)

NEW MACROS

alternate entry to non-leaf routine		XNESTED
import external symbol				IMPORT
export definition of symbol			EXPORT

COMPATIBILITY
	Old macros (NLEAF, ALEAF, NON_LEAF, NNON_LEAF) will remain
	until NetBSD-1.4 release shipped, but will be removed after
	the release.

(*) LEAF_NONPROFILE and NESTED_NONPROFILE are BSD specific and not
    part of the standard, so we can choose other names for these.
------------------------------------------------------------------------

Are these changes OK ?
Please reply to this message, as soon as possible.
	1. OK
	2. Not OK
	3. postpone this discussion after NetBSD-1.4 release.
	4. postpone this discussion after NetBSD-1.4 release,
	  and remove the new macros in <machine/asm.h> for now.
My vote is 1.

BTW, current <mips/asm.h> seems to have some minor problems.
I'll fix the following problems, if there is no objection.
	a. ALIAS() macro is not part of standard and not needed.
	  XLEAF() or XNESTED() should be used instead.
	b. XLEAF() and XNESTED() should use AENT() instead of .aent
	c. _END_LABEL() macro is not needed (it is only used by
	  VECTOR_END), and wrong. (doubley defined
	  if !defined(__NO_LEADING_UNDERSCORES__) && !defined(__STDC__),
	  and wrongly defined if defined(__NO_LEADING_UNDERSCORES__))
	d. ALEAF(), NLEAF(), NON_LEAF(), NNON_LEAF() should be defined
	  by XLEAF(), LEAF_NONPROFILE(), NESTED(), NESTED_NONPROFILE().
--
soda