7167264 - rad api <-> interface rename
authordevjani.ray@oracle.com <devjani.ray@oracle.com>
Tue, 08 May 2012 19:19:59 -0400
changeset 853 e2d9352738a7
parent 852 bcfb754700ce
child 854 93173c573f3d
7167264 - rad api <-> interface rename
usr/src/apis/container.xml
usr/src/apis/errors.xml
usr/src/apis/example-time2.xml
usr/src/apis/file.xml
usr/src/apis/kstat.xml
usr/src/apis/modules.xml
usr/src/apis/network.xml
usr/src/apis/pam.xml
usr/src/apis/panels.xml
usr/src/apis/pkg.xml
usr/src/apis/radcontrol.xml
usr/src/apis/smf.xml
usr/src/apis/smf_old.xml
usr/src/apis/test-compat-cnew.xml
usr/src/apis/test-compat-cold.xml
usr/src/apis/test-fallback-new.xml
usr/src/apis/test-fallback-old.xml
usr/src/apis/test-unions.xml
usr/src/apis/test-version-vnew.xml
usr/src/apis/test-version-vold.xml
usr/src/apis/test.xml
usr/src/apis/time.xml
usr/src/apis/usermgr.xml
usr/src/apis/zones.xml
usr/src/apis/zonesbridge.xml
usr/src/cmd/rad/daemon/config.xml
usr/src/cmd/rad/daemon/datatype.x
usr/src/cmd/rad/daemon/rad_container.c
usr/src/cmd/rad/daemon/rad_control.c
usr/src/cmd/rad/daemon/rad_modapi.h
usr/src/cmd/rad/daemon/rad_module.c
usr/src/cmd/rad/daemon/rad_object.c
usr/src/cmd/rad/daemon/rad_pam.c
usr/src/cmd/rad/mod/example-time2/example-time2.c
usr/src/cmd/rad/mod/files/mod_files.c
usr/src/cmd/rad/mod/kstat/mod_kstat.c
usr/src/cmd/rad/mod/network/mod_network.c
usr/src/cmd/rad/mod/panels/mod_panels.c
usr/src/cmd/rad/mod/pkg/mod_pkg.c
usr/src/cmd/rad/mod/smf/common.c
usr/src/cmd/rad/mod/smf/instance.c
usr/src/cmd/rad/mod/smf/mod_smf.c
usr/src/cmd/rad/mod/smf/service.c
usr/src/cmd/rad/mod/smf_old/mod_smf.c
usr/src/cmd/rad/mod/test-compat-cnew/mod_test_compat_cnew.c
usr/src/cmd/rad/mod/test-compat-cold/mod_test_compat_cold.c
usr/src/cmd/rad/mod/test-fallback-new/mod_test_fallback_new.c
usr/src/cmd/rad/mod/test-fallback-old/mod_test_fallback_old.c
usr/src/cmd/rad/mod/test-version-vnew/mod_test_version_vnew.c
usr/src/cmd/rad/mod/test-version-vold/mod_test_version_vold.c
usr/src/cmd/rad/mod/test/addremove.c
usr/src/cmd/rad/mod/test/derived.c
usr/src/cmd/rad/mod/test/list.c
usr/src/cmd/rad/mod/test/mod_test.c
usr/src/cmd/rad/mod/test/properties.c
usr/src/cmd/rad/mod/test/rad_request.c
usr/src/cmd/rad/mod/test/unions.c
usr/src/cmd/rad/mod/time/mod_time.c
usr/src/cmd/rad/mod/usermgr/mod_usermgr.c
usr/src/cmd/rad/mod/xport_pipe/pipe.xml
usr/src/cmd/rad/mod/xport_tcp/tcp.xml
usr/src/cmd/rad/mod/xport_tls/tls.xml
usr/src/cmd/rad/mod/xport_unix/unix.xml
usr/src/cmd/rad/mod/zones/api_zones.c
usr/src/cmd/rad/mod/zones/mod_zones.c
usr/src/cmd/rad/mod/zonesbridge/mod_zonesbridge.c
usr/src/cmd/radcli/radcli.c
usr/src/doc/manpage/rad.1m.xml
usr/src/doc/manpage/radadrgen.1.xml
usr/src/doc/rad-dev/c-best-practices.xml
usr/src/doc/rad-dev/c-libadr-radadrgen.xml
usr/src/doc/rad-dev/c-modules.xml
usr/src/doc/rad-dev/example.xml
usr/src/java/adr/com/oracle/solaris/adr/API.java
usr/src/java/adr/com/oracle/solaris/adr/APIDiff.java
usr/src/java/adr/com/oracle/solaris/adr/APIVersion.java
usr/src/java/adr/com/oracle/solaris/adr/Definition.java
usr/src/java/adr/com/oracle/solaris/adr/Feature.java
usr/src/java/adr/com/oracle/solaris/adr/Interface.java
usr/src/java/adr/com/oracle/solaris/adr/InterfaceDiff.java
usr/src/java/adr/com/oracle/solaris/adr/InterfaceVersion.java
usr/src/java/adr/com/oracle/solaris/adr/Type.java
usr/src/java/adr/com/oracle/solaris/adr/adrgen/ADRGen.java
usr/src/java/adr/com/oracle/solaris/adr/adrgen/CGenerator.java
usr/src/java/adr/com/oracle/solaris/adr/adrgen/JGenerator.java
usr/src/java/adr/xml/rng/radadr-doc.rng.1
usr/src/java/adr/xml/rng/radadr.rng.1
usr/src/java/adr/xml/style/locale/radadr-strings.xml
usr/src/java/adr/xml/style/radadr-docbook-common.xsl
usr/src/java/adr/xml/style/radadr-docbook-man.xsl
usr/src/java/adr/xml/style/radadr-docbook.xsl
usr/src/java/adr/xml/style/radadr-rmdoc.xsl
usr/src/java/rad/com/oracle/solaris/rad/ApiStability.java
usr/src/java/rad/com/oracle/solaris/rad/Client.java
usr/src/java/rad/com/oracle/solaris/rad/EnumMapper.java
usr/src/java/rad/com/oracle/solaris/rad/Instance.java
usr/src/java/rad/com/oracle/solaris/rad/InterfaceStability.java
usr/src/java/rad/com/oracle/solaris/rad/Versions.java
usr/src/java/rad/com/oracle/solaris/rad/jmx/IncompatibleVersionException.java
usr/src/java/rad/com/oracle/solaris/rad/jmx/RadJMX.java
usr/src/java/rad/com/oracle/solaris/rad/jmx/RadMBeanServerConnection.java
usr/src/lib/libadr/common/adr_object.c
usr/src/lib/libadr/common/adr_object.h
usr/src/lib/libadr_mdb/common/adr_object.c
usr/src/lib/libradproto/common/radproto_adr.c
usr/src/lib/pyrad/client.py
usr/src/test/assertions/compatibility.txt
usr/src/test/assertions/version.txt
usr/src/test/java/src/client/CompatTest.java
usr/src/test/java/src/client/VersionTest.java
--- a/usr/src/apis/container.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/container.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
     name="com.oracle.solaris.rad.container">
 
 	<enum name="NSChange">
@@ -35,7 +35,7 @@
 		<field name="name" type="name" nullable="true" />
 	</struct>
 
-	<api name="Container">
+	<interface name="Container">
 		<version major="1" minor="0" stability="private" />
 
 		<!--
@@ -44,5 +44,5 @@
 		  notifications using an object in the namespace.
 		-->
 		<event typeref="Update" name="updates" />
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/errors.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/errors.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="com.oracle.solaris.rad.errors">
+<api xmlns="http://xmlns.oracle.com/radadr" name="com.oracle.solaris.rad.errors">
 
 	<enum name="Target">
 		<value name="OBJECT" />		<!-- the object itself -->
@@ -51,4 +51,4 @@
 	<struct name="ErrorSystem">
 		<field type="string" name="message" nullable="true" />
 	</struct>
-</interface>
+</api>
--- a/usr/src/apis/example-time2.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/example-time2.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,13 +22,13 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.vp.panels.example.time2">
 
-	<api name="Time">
+	<interface name="Time">
 		<!-- read/write raw milliseconds -->
 		<property type="long" name="time" access="rw">
 			<error />
 		</property>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/file.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/file.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.vp.panel.common.api.file">
 
 	<struct name="FileSnapshot">
@@ -45,7 +45,7 @@
 		<field type="long" name="usableSpace" />
 	</struct>
 
-	<api name="FileBrowser">
+	<interface name="FileBrowser">
 		<version major="1" minor="0" stability="private" />
 
 		<property name="roots" access="ro">
@@ -65,5 +65,5 @@
 			<error />
 			<argument type="string" name="directory" />
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/kstat.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/kstat.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,25 +22,25 @@
   Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr"
+<api xmlns="http://xmlns.oracle.com/radadr"
   name="com.oracle.solaris.rad.kstat">
 
   <doc>
     <para>
-      This interface exposes kernel statistics, or kstats, to
+      This API exposes kernel statistics, or kstats, to
       <strong>rad(1m)</strong> clients.
     </para>
 
     <para>
-      Two core APIs are provided:
+      Two core interfaces are provided:
     </para>
 
     <list type="ordered">
       <item>
-        <link api="Kstat">Kstat</link> - an object that represents a kstat
+        <link interface="Kstat">Kstat</link> - an object that represents a kstat
       </item>
       <item>
-        <link api="Control">Control</link> - an administration object
+        <link interface="Control">Control</link> - an administration object
       </item>
     </list>
 
@@ -49,11 +49,11 @@
     </heading>
 
     <para>
-      Provided alongside this interface is a convenience wrapper around the
-      Python bindings to this interface.  Accessible by importing
+      Provided alongside this API is a convenience wrapper around the
+      Python bindings to this API.  Accessible by importing
       <code>kstat.rad</code> from within a Python application, this wrapper
-      simplifies access to the <link api="Kstat">Kstat</link> and <link
-      api="Control">Control</link> objects.
+      simplifies access to the <link interface="Kstat">Kstat</link> and <link
+      interface="Control">Control</link> objects.
     </para>
 
     <para>
@@ -267,10 +267,10 @@
     </field>
   </struct>
 
-  <api name="Kstat">
+  <interface name="Kstat">
     <doc>
       <para>
-        The <code>Kstat</code> API represents a kernel statistic.  Handles to
+        The <code>Kstat</code> interface represents a kernel statistic.  Handles to
         this type of object can be retrieved from the RAD server using an object
         name built with:
       </para>
@@ -302,7 +302,7 @@
         For example, to print statistics about a particular CPU on a system:
       </para>
 
-      <example caption="Kstat API (Python)">
+      <example caption="Kstat interface (Python)">
 import rad.client
 import rad.util
 
@@ -327,10 +327,10 @@
 
       <para>
         If using the Python kstat convenience wrapper delivered with this
-        interface, this can be simplified to:
+        API, this can be simplified to:
       </para>
 
-      <example caption="Kstat API (Python, kstat wrapper)">
+      <example caption="Kstat interface (Python, kstat wrapper)">
 import kstat.rad
 
 kstats = kstat.rad.Kstats()
@@ -389,12 +389,12 @@
         </summary>
       </error>
     </method>
-  </api>
+  </interface>
 
-  <api name="Control">
+  <interface name="Control">
     <doc>
       <para>
-        The <code>Control</code> API is an administrative interface into the
+        The <code>Control</code> interface is an administrative API into the
         kstats subsystem.  Handles to this type of object can be retrieved from
         the RAD server using an object name built with:
       </para>
@@ -422,5 +422,5 @@
         change.
       </doc>
     </method>
-  </api>
-</interface>
+  </interface>
+</api>
--- a/usr/src/apis/modules.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/modules.xml	Tue May 08 19:19:59 2012 -0400
@@ -23,10 +23,10 @@
 -->
 
 <!--
-  Interface exposing loaded RAD server modules.  For debugging purposes.
+  API exposing loaded RAD server modules.  For debugging purposes.
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
     name="com.oracle.solaris.rad.modules">
 
 	<struct name="Module">
@@ -34,9 +34,9 @@
 		<field type="string" name="description" />
 	</struct>
 
-	<api name="Modules">
+	<interface name="Modules">
 		<property name="modules" access="ro">
 			<list typeref="Module" />
 		</property>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/network.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/network.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,10 +22,10 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.vp.panel.common.api.network">
 
-	<api name="Network">
+	<interface name="Network">
 		<version major="1" minor="0" stability="private" />
 
 		<property name="networkInterfaces" access="ro">
@@ -52,6 +52,6 @@
 			<error />
 			<argument type="string" name="ipaddress" />
 		</method>
-	</api>
+	</interface>
 
-</interface>
+</api>
--- a/usr/src/apis/pam.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/pam.xml	Tue May 08 19:19:59 2012 -0400
@@ -23,15 +23,15 @@
 -->
 
 <!--
-  PAM conversation API.
+  PAM conversation interface.
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr"
+<api xmlns="http://xmlns.oracle.com/radadr"
   name="com.oracle.solaris.rad.pam">
 
   <doc>
     <para>
-      This interface exposes PAM authentication to <strong>rad(1m)</strong>
+      This API exposes PAM authentication to <strong>rad(1m)</strong>
       clients.
     </para>
   </doc>
@@ -114,10 +114,10 @@
     </field>
   </struct>
 
-  <api name="Authentication">
+  <interface name="Authentication">
     <doc>
       <para>
-        The <code>authentication</code> API implements a PAM exchange to
+        The <code>authentication</code> interface implements a PAM exchange to
         authenticate <strong>rad(1m)</strong> clients.  Handles to this type of
         object can be retrieved from the RAD server using an object name built
         with:
@@ -134,9 +134,9 @@
       </list>
 
       <para>
-        The <link api="Authentication" method="login">login()</link> method
+        The <link interface="Authentication" method="login">login()</link> method
         begins a PAM conversation to authenticate as a user, while <link
-        api="Authentication" method="assume">assume()</link> does the same for a
+        interface="Authentication" method="assume">assume()</link> does the same for a
         role.  Each returns a list of <link struct="Block">Block</link> objects
         encapsulating the status of the conversation, the messages that should
         be displayed, and the input that should be collected.
@@ -144,7 +144,7 @@
 
       <para>
         At each step, when the requested input has been collected, it is
-        submitted using <link api="Authentication"
+        submitted using <link interface="Authentication"
         method="submit">submit()</link>.  This method also returns a list of
         <link struct="Block">Block</link> objects, allowing the conversation to
         continue indefinitely until authentication is complete.
@@ -154,7 +154,7 @@
         When any of the three returns a <link struct="Block">Block</link> whose
         <link struct="Block" field="type">type</link> is <link enum="BlockType"
         value="SUCCESS">SUCCESS</link>, authentication has succeeded and <link
-        api="Authentication" method="complete">complete()</link> should be
+        interface="Authentication" method="complete">complete()</link> should be
         called to close the conversation.
       </para>
 
@@ -162,7 +162,7 @@
         A typical algorithm for walking through this conversation might be:
       </para>
 
-      <example caption="Authentication API (Python)">
+      <example caption="Authentication interface (Python)">
 import rad.client
 import rad.util
 import os
@@ -255,7 +255,7 @@
       </summary>
       <doc>
         <para>
-          Like <link api="Authentication" method="login">login()</link>,
+          Like <link interface="Authentication" method="login">login()</link>,
         </para>
       </doc>
       <result typeref="Block" />
@@ -280,7 +280,7 @@
 
     <method name="createToken">
       <doc>
-        Creates a single-use token that can be <link api="Authentication"
+        Creates a single-use token that can be <link interface="Authentication"
         method="redeemToken">redeemed</link> later to authenticate a connection
         as a clone of the caller's.  In addition to being single-use, the token
         has a limited lifetime.
@@ -292,7 +292,7 @@
     <method name="redeemToken">
       <doc>
         Redeems a token, authenticating the current connection with the
-        credentials in place when the token was <link api="Authentication"
+        credentials in place when the token was <link interface="Authentication"
         method="createToken">created</link>.
       </doc>
       <error />
@@ -305,5 +305,5 @@
         completes the PAM conversation with the RAD server
       </summary>
     </method>
-  </api>
-</interface>
+  </interface>
+</api>
--- a/usr/src/apis/panels.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/panels.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr"
+<api xmlns="http://xmlns.oracle.com/radadr"
   name="com.oracle.solaris.vp.panel.common.api.panel">
 
     <struct name="ResourceDescriptor">
@@ -41,7 +41,7 @@
 	</field>
     </struct>
 
-    <api name="Panel">
+    <interface name="Panel">
 	<version major="1" minor="0" stability="private" />
 
 	<property name="panelNames" access="ro">
@@ -61,5 +61,5 @@
 	    <error />
 	    <argument type="opaque" name="token" />
 	</method>
-    </api>
-</interface>
+    </interface>
+</api>
--- a/usr/src/apis/pkg.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/pkg.xml	Tue May 08 19:19:59 2012 -0400
@@ -23,7 +23,7 @@
  
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.rad.pkg">
 
 	<struct name="PkgInstLicList">
@@ -132,7 +132,7 @@
 		<field type="integer" name="current"/>
 	</struct>
 
-	<api name="PkgInterface">
+	<interface name="PkgInterface">
 		<version major="1" minor="0" stability="private" />
 
 		<method name="pkg_init">
@@ -254,6 +254,6 @@
 			<error typeref="PkgError"/>
 		</method>
 
-	</api>
+	</interface>
 	
-</interface>
+</api>
--- a/usr/src/apis/radcontrol.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/radcontrol.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,14 +22,14 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
 	   name="com.oracle.solaris.rad.control">
 
-	<api name="Control">
+	<interface name="Control">
 		<property type="boolean" name="proxy" access="ro" />
 		<method name="shutdown" />
 		<method name="refresh">
 			<result type="boolean" />
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/smf.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/smf.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,38 +22,38 @@
   Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr"
+<api xmlns="http://xmlns.oracle.com/radadr"
   name="com.oracle.solaris.rad.smf">
 
   <doc>
     <para>
-      This interface exposes common SMF configuration, actions, and state to
+      This API exposes common SMF configuration, actions, and state to
       <strong>rad(1m)</strong> clients.
     </para>
 
     <para>
-      Three core APIs are provided:
+      Three core interfaces are provided:
     </para>
 
     <list type="ordered">
       <item>
-        <link api="Master">Master</link> - a top-level object providing access
+        <link interface="Master">Master</link> - a top-level object providing access
         to all services and instances on the system
       </item>
       <item>
-        <link api="Service">Service</link> - an object that represents an SMF
+        <link interface="Service">Service</link> - an object that represents an SMF
 	service
       </item>
       <item>
-        <link api="Instance">Instance</link> - an object that represents an SMF
+        <link interface="Instance">Instance</link> - an object that represents an SMF
 	instance
       </item>
     </list>
 
     <para>
-      The latter two APIs, <link api="Service">Service</link> and <link
-      api="Instance">Instance</link>, are derived from a common <link
-      api="Entity">Entity</link> API.
+      The latter two interfaces, <link interface="Service">Service</link> and <link
+      interface="Instance">Instance</link>, are derived from a common <link
+      interface="Entity">Entity</link> interface.
     </para>
 
     <heading>
@@ -61,11 +61,11 @@
     </heading>
 
     <para>
-      Provided alongside this interface is a convenience wrapper around the
-      Python bindings to this interface.  Accessible by importing
+      Provided alongside this API is a convenience wrapper around the
+      Python bindings to this API.  Accessible by importing
       <code>smf.rad</code> from within a Python application, this wrapper
-      simplifies access to the <link api="Master">Master</link>, <link
-      api="Service">Service</link>, and <link api="Instance">Instance</link>
+      simplifies access to the <link interface="Master">Master</link>, <link
+      interface="Service">Service</link>, and <link interface="Instance">Instance</link>
       objects.
     </para>
 
@@ -346,7 +346,7 @@
     <doc>
       Indicates the general cause for failure.
       Specific meanings are defined by the individual
-      interfaces.
+      APIs.
     </doc>
     <value name="INTERNAL">
       <summary>an internal error occurred</summary>
@@ -370,7 +370,7 @@
       <summary>system was in an invalid state</summary>
     </value>
     <value name="INVALID">
-      <summary>interface was called incorrectly</summary>
+      <summary>API was called incorrectly</summary>
     </value>
   </enum>
 
@@ -389,7 +389,7 @@
     <field type="string" name="message" nullable="true" />
   </struct>
 
-  <api name="Entity">
+  <interface name="Entity">
     <summary>
       functionality common to services and instances
     </summary>
@@ -1147,17 +1147,17 @@
         </summary>
       </argument>
     </method>
-  </api>
+  </interface>
 
 
   <!-- Service definitions -->
 
-  <api name="Service">
+  <interface name="Service">
     <summary>an SMF service object</summary>
 
     <doc>
       <para>
-        The <code>Service</code> API is an <link api="Entity">Entity</link> that
+        The <code>Service</code> interface is an <link interface="Entity">Entity</link> that
 	represents an SMF service.  Handles to this type of object can be
         retrieved from the RAD server using an object name built with:
       </para>
@@ -1178,12 +1178,12 @@
 
       <para>
         Object names for services can be pulled from the <link
-        struct="Service">Service</link>s exposed by the <link api="Master"
+        struct="Service">Service</link>s exposed by the <link interface="Master"
         property="services">Master.services</link> property.  Or, they can be
         built directly:
       </para>
 
-      <example caption="Service API (Python)">
+      <example caption="Service interface (Python)">
 import rad.client
 import rad.util
 
@@ -1201,10 +1201,10 @@
 
       <para>
         If using the Python SMF convenience wrapper delivered with this
-        interface, this can be simplified to:
+        API, this can be simplified to:
       </para>
 
-      <example caption="Service API (Python, SMF wrapper)">
+      <example caption="Service interface (Python, SMF wrapper)">
 import smf.rad
 
 repo = smf.rad.Repository()
@@ -1235,7 +1235,7 @@
         </doc>
       </error>
     </property>
-  </api>
+  </interface>
 
 
   <!-- Instance definitions -->
@@ -1304,12 +1304,12 @@
     </field>
   </struct>
 
-  <api name="Instance">
+  <interface name="Instance">
     <summary>an SMF instance object</summary>
 
     <doc>
       <para>
-        The <code>Instance</code> API is an <link api="Entity">Entity</link>
+        The <code>Instance</code> interface is an <link interface="Entity">Entity</link>
         that represents an SMF instance.  Handles to this type of object can be
         retrieved from the RAD server using an object name built with:
       </para>
@@ -1334,12 +1334,12 @@
 
       <para>
         Object names for instances can be pulled from the <link
-        struct="Instance">Instance</link>s exposed by the <link api="Master"
+        struct="Instance">Instance</link>s exposed by the <link interface="Master"
         property="instances">Master.instances</link> property.  Or, they can be
         built directly:
       </para>
 
-      <example caption="Instance API (Python)">
+      <example caption="Instance interface (Python)">
 import rad.client
 import rad.util
 
@@ -1358,10 +1358,10 @@
 
       <para>
         If using the Python SMF convenience wrapper delivered with this
-        interface, this can be simplified to:
+        API, this can be simplified to:
       </para>
 
-      <example caption="Instance API (Python, SMF wrapper)">
+      <example caption="Instance interface (Python, SMF wrapper)">
 import smf.rad
 
 repo = smf.rad.Repository()
@@ -1802,7 +1802,7 @@
         </summary>
       </argument>
     </method>
-  </api>
+  </interface>
 
 
   <!-- Master object definitions -->
@@ -1842,7 +1842,7 @@
     <field type="string" name="fmri" />
   </struct>
 
-  <api name="Master">
+  <interface name="Master">
     <summary>
       a top-level object providing access to all services and instances on
       the system
@@ -1850,7 +1850,7 @@
 
     <doc>
       <para>
-        The <code>Master</code> API provides an iterative entrypoint into the
+        The <code>Master</code> interface provides an iterative entrypoint into the
         SMF subsystem.  Handles to this type of object can be retrieved from the
         RAD server using an object name built with:
       </para>
@@ -1870,7 +1870,7 @@
         enum="SMFState" value="ONLINE">ONLINE</link> state:
       </para>
 
-      <example caption="Master API (Python)">
+      <example caption="Master interface (Python)">
 import rad.client
 import rad.util
 
@@ -1892,13 +1892,13 @@
 
       <para>
         If using the Python SMF convenience wrapper delivered with this
-        interface, this can be simplified to:
+        API, this can be simplified to:
       </para>
 
-      <example caption="Master API (Python, SMF wrapper)">
+      <example caption="Master interface (Python, SMF wrapper)">
 import smf.rad
 
-# Get quick access to the Master API
+# Get quick access to the Master interface
 repo = smf.rad.Repository()
 master = repo.get_master()
 
@@ -1925,5 +1925,5 @@
     <event typeref="StateChange" name="statechange" />
     <event typeref="Addition" name="additions" />
     <event typeref="Removal" name="removals" />
-  </api>
-</interface>
+  </interface>
+</api>
--- a/usr/src/apis/smf_old.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/smf_old.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.vp.panel.common.api.smf_old">
 
 	<struct name="Service">
@@ -158,7 +158,7 @@
 		<field type="string" name="message" nullable="true" />
 	</struct>
 
-	<api name="Aggregator">
+	<interface name="Aggregator">
 		<version major="1" minor="0" stability="private" />
 
 		<property name="services" access="ro">
@@ -172,9 +172,9 @@
 		</property>
 
 		<event typeref="StateChange" name="statechange" />
-	</api>
+	</interface>
 
-	<api name="ServiceInfo">
+	<interface name="ServiceInfo">
 		<version major="1" minor="0" stability="private" />
 
 		<property type="string" name="fmri" access="ro">
@@ -378,5 +378,5 @@
 		</property>
 
 		<event typeref="StateChange" name="statechange" />
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/test-compat-cnew.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-compat-cnew.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.compat">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.compat">
 	<pragma domain="java" name="package" value="testif.compat.cnew" />
 
 	<enum name="AcctErrorCode">
@@ -91,7 +91,7 @@
 		<arm value="eval3" type="string" />
 	</union>
 
-	<api name="CompatTest">
+	<interface name="CompatTest">
 		<!-- Simple, base type tests -->
 		<!-- boolPropTest was ro, is rw -->
 		<property type="boolean" name="boolPropTest" access="rw" />
@@ -144,6 +144,6 @@
 			<error typeref="AcctError" />
 			<argument typeref="AcctInfo" name="acctArg" />
 		</method>
-	</api>
+	</interface>
 
-</interface>
+</api>
--- a/usr/src/apis/test-compat-cold.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-compat-cold.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.compat">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.compat">
 	<pragma domain="java" name="package" value="testif.compat.cold" />
 	
 	<enum name="AcctErrorCode">
@@ -82,7 +82,7 @@
 		<arm value="eval2" type="boolean" />
 	</union>
 
-	<api name="CompatTest">
+	<interface name="CompatTest">
 		<!-- Simple, base type tests -->
 		<!-- boolPropTest is ro -->
 		<property type="boolean" name="boolPropTest" access="ro" />
@@ -134,6 +134,6 @@
 			<error typeref="AcctError" />
 			<argument typeref="AcctInfo" name="acctArg" />
 		</method>
-	</api>
+	</interface>
 
-</interface>
+</api>
--- a/usr/src/apis/test-fallback-new.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-fallback-new.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.fallback">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.fallback">
 	<pragma domain="java" name="package" value="testif.fallback.nnew" />
 
 	<enum name="Grower">
@@ -40,7 +40,7 @@
 		<fallback name="whoknows" />
 	</enum>
 
-	<api name="FallbackTest">
+	<interface name="FallbackTest">
 		<summary>support for enumeration fallback tests</summary>
 		
 		<version major="0" minor="2" stability="private" />
@@ -72,5 +72,5 @@
 			<result type="string" />
 			<argument typeref="Shrinker" name="value" />
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/test-fallback-old.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-fallback-old.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.fallback">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.fallback">
 	<pragma domain="java" name="package" value="testif.fallback.old" />
 
 	<enum name="Grower">
@@ -40,7 +40,7 @@
 		<fallback name="whoknows" />
 	</enum>
 
-	<api name="FallbackTest">
+	<interface name="FallbackTest">
 		<summary>support for enumeration fallback tests</summary>
 		
 		<version major="0" minor="1" stability="private" />
@@ -72,5 +72,5 @@
 			<result type="string" />
 			<argument typeref="Shrinker" name="value" />
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/test-unions.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-unions.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.union">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.union">
 	<pragma domain="java" name="package" value="testif.union" />
 
 	<!-- Types used by unions -->
@@ -130,7 +130,7 @@
 	</union>
 
 
-	<api name="Unions">
+	<interface name="Unions">
 		<version major="0" minor="1" stability="private" />
 
 		<!-- Methods that return unions of different types -->
@@ -261,5 +261,5 @@
 			<error />
 			<argument name="data" typeref="ud_flex" />
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/test-version-vnew.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-version-vnew.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,22 +22,22 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.version">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.version">
 	<pragma domain="java" name="package" value="testif.version.vnew"/>
 
-	<api name="MinorRevTest">
+	<interface name="MinorRevTest">
 		<version major="1" minor="5" stability="private"/>
 		<version major="0" minor="3" stability="uncommitted"/>
 		<version major="0" minor="5" stability="committed"/>
 
 		<property type="string" name="strvalue" access="ro"/>
-	</api>
+	</interface>
 
-	<api name="MajorRevTest">
+	<interface name="MajorRevTest">
 		<version major="2" minor="0" stability="private"/>
 		<version major="2" minor="0" stability="uncommitted"/>
 		<version major="2" minor="0" stability="committed"/>
 
 		<property type="string" name="strvalue" access="ro"/>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/test-version-vold.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test-version-vold.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,22 +22,22 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test.version">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test.version">
 	<pragma domain="java" name="package" value="testif.version.vold"/>
 
-	<api name="MinorRevTest">
+	<interface name="MinorRevTest">
 		<version major="1" minor="0" stability="private"/>
 		<version major="0" minor="2" stability="uncommitted"/>
 		<version major="0" minor="5" stability="committed"/>
 
 		<property type="string" name="strvalue" access="ro"/>
-	</api>
+	</interface>
 
-	<api name="MajorRevTest">
+	<interface name="MajorRevTest">
 		<version major="1" minor="1" stability="private"/>
 		<version major="1" minor="2" stability="uncommitted"/>
 		<version major="1" minor="5" stability="committed"/>
 
 		<property type="string" name="strvalue" access="ro"/>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/test.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/test.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="test">
+<api xmlns="http://xmlns.oracle.com/radadr" name="test">
 	<pragma domain="java" name="package"
 	    value="com.oracle.solaris.rad.test" />
 
@@ -30,7 +30,7 @@
 		<field name="code" type="integer" />
 	</struct>
 
-	<api name="Properties">
+	<interface name="Properties">
 		<version major="0" minor="1" stability="private" />
 
 		<!-- Read only property -->
@@ -72,9 +72,9 @@
 		<property type="integer" name="propFailStrNull" access="rw">
 			<error typeref="ErrorType" />
 		</property>
-	</api>
+	</interface>
 
-	<api name="BaseTypes">
+	<interface name="BaseTypes">
 		<version major="0" minor="1" stability="private" />
 
 		<property type="long" name="longMax" access="rw">
@@ -140,7 +140,7 @@
 		<property type="boolean" name="booleanFalse" access="rw">
 			<error />
 		</property>
-	</api>
+	</interface>
 
 	<enum name="SubEnum">
 		<value name="val_one" />
@@ -161,16 +161,16 @@
 		<field name="enumfield" typeref="SubEnum" />
 	</struct>
 
-	<api name="DerivedTypes">
+	<interface name="DerivedTypes">
 		<version major="0" minor="1" stability="private" />
 
 		<!-- Test a bunch of things at once.  Should decompose. -->
 		<property typeref="ComplexStruct" name="structProp" access="rw">
 			<error />
 		</property>
-	</api>
+	</interface>
 
-	<api name="AddRemove">
+	<interface name="AddRemove">
 		<version major="0" minor="1" stability="private" />
 
 		<method name="addOne">
@@ -181,23 +181,23 @@
 			<result type="name" />
 			<argument name="id" type="integer" />
 		</method>
-	</api>
+	</interface>
 
-	<api name="AddRemoveDummy">
+	<interface name="AddRemoveDummy">
 		<version major="0" minor="1" stability="private" />
 
 		<method name="tickle">
 			<result type="string" />
 		</method>
 		<method name="remove" />
-	</api>
+	</interface>
 
-	<api name="ListDummy">
+	<interface name="ListDummy">
 		<version major="0" minor="1" stability="private" />
 		<property type="boolean" name="true" access="ro" />
-	</api>
+	</interface>
 
-	<api name="RadRequest">
+	<interface name="RadRequest">
 		<version major="0" minor="1" stability="private"/>
 		<event name="tick" type="integer"/>
 
@@ -209,5 +209,5 @@
 		<method name="eventsStart"/>
 
 		<method name="eventsStop"/>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/time.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/time.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.vp.panels.time">
 
 	<struct name="ServerInfo">
@@ -57,7 +57,7 @@
 		<field typeref="Coordinates" name="coordinates" />
 	</struct>
 
-	<api name="Time">
+	<interface name="Time">
 		<version major="1" minor="0" stability="private" />
 
 		<!-- <property type="time" name="Time" access="rw" /> -->
@@ -83,6 +83,6 @@
 		<property name="timeZones" access="ro">
 			<list typeref="TimeZoneInfo" />
 		</property>
-	</api>
+	</interface>
 
-</interface>
+</api>
--- a/usr/src/apis/usermgr.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/usermgr.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" 
+<api xmlns="http://xmlns.oracle.com/radadr" 
   name="com.oracle.solaris.rad.usermgr">
 
 	<struct name="Group">
@@ -245,7 +245,7 @@
 		<value name="ROLE"/>
 	</enum>
 
-	<api name="UserMgr">
+	<interface name="UserMgr">
 		<summary>
 			Set of operations that can be performed on
 			users and roles.
@@ -729,5 +729,5 @@
 				</summary>
 			</argument>
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/zones.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/zones.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,14 +22,14 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="zones">
+<api xmlns="http://xmlns.oracle.com/radadr" name="zones">
 
 	<pragma domain="java" name="package"
 	    value="com.oracle.solaris.zonesManagement" />
 
 	<!-- The system scheduler is related to zones because it is needed
-	     to properly make use of zone.cpu shares.  This api should
-	     really be in another interface.
+	     to properly make use of zone.cpu shares.  This interface should
+	     really be in another API.
 	-->
 	<enum name="SchedErrorCode" >
 		<value name="NONE" />
@@ -41,7 +41,7 @@
 		<field type="string" name="message" />
 	</struct>
 	
-	<api name="SchedulerManagement">
+	<interface name="SchedulerManagement">
 		<version major="1" minor="0" stability="private" />
 
 		<!-- Sets the default scheduler for all zones -->
@@ -51,7 +51,7 @@
 			<argument type="boolean" name="nextBoot" />
 			<argument type="boolean" name="runningZones" />
 		</method>
-	</api>
+	</interface>
 
 	<!-- The following types are used by zone configurations -->
 	<enum name="IpType">
@@ -380,7 +380,7 @@
 	</struct>
 
 	<!-- Methods for zones management -->
-	<api name="zonesManagement">
+	<interface name="zonesManagement">
 		<version major="1" minor="0" stability="private" />
 
 		<!-- Event for zone state changes:
@@ -491,7 +491,7 @@
 		</method>
 
 		<!-- Fetch state for individual psets. -->
-		<!-- XXX these calls should live in a pools/psets api -->
+		<!-- XXX these calls should live in a pools/psets interface -->
 		<method name="GetCpuState">
 			<result typeref="CpuState" />
 			<error typeref="ZonesError" />
@@ -679,5 +679,5 @@
 			<error typeref="ZonesError" />
 			<argument type="string" name="zoneName" />
 		</method>
-	</api>
-</interface>
+	</interface>
+</api>
--- a/usr/src/apis/zonesbridge.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/apis/zonesbridge.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,12 +22,12 @@
   Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr"
+<api xmlns="http://xmlns.oracle.com/radadr"
   name="com.oracle.solaris.rad.zonesbridge">
 
   <doc>
     <para>
-      This interface provides <strong>rad(1m)</strong> client connectivity to a
+      This API provides <strong>rad(1m)</strong> client connectivity to a
       non-global zone through its global zone.
     </para>
 
@@ -42,7 +42,7 @@
         </para>
 
         <para>
-          Using the <link api="IO" method="openRad">openRad</link> method,
+          Using the <link interface="IO" method="openRad">openRad</link> method,
           clients can connect to a local <strong>rad(1m)</strong> daemon running
           on a non-global zone, through an established, authenticated RAD
           connection to its global zone.
@@ -70,7 +70,7 @@
         </para>
 
         <para>
-          Using the <link api="IO" method="openConsole">openConsole</link>
+          Using the <link interface="IO" method="openConsole">openConsole</link>
           method, RAD clients can access the consoles of non-global zones on the
           connected host.
         </para>
@@ -127,14 +127,14 @@
     <value name="MOUNTED"/>
   </enum>
 
-  <api name="IO">
+  <interface name="IO">
     <summary>
-      primary interface for non-global zone connectivity
+      primary API for non-global zone connectivity
     </summary>
 
     <doc>
       <para>
-        The <code>io</code> API provides connectivity to a zone.  Handles to
+        The <code>io</code> interface provides connectivity to a zone.  Handles to
         this type of object can be retrieved from the RAD server using an object
         name built with:
       </para>
@@ -169,7 +169,7 @@
       <argument name="token" type="long">
         <summary>
           the token identifying the open connection to query, as returned by
-          <link api="IO" method="openRad">openRad</link> or <link api="IO"
+          <link interface="IO" method="openRad">openRad</link> or <link interface="IO"
           method="openConsole">openConsole</link>
         </summary>
       </argument>
@@ -186,7 +186,7 @@
       <argument name="token" type="long">
         <summary>
           the token identifying the open connection to close, as returned by
-          <link api="IO" method="openRad">openRad</link> or <link api="IO"
+          <link interface="IO" method="openRad">openRad</link> or <link interface="IO"
           method="openConsole">openConsole</link>
         </summary>
       </argument>
@@ -226,7 +226,7 @@
     print input,</example>
 
         <para>
-          Unlike <link api="IO" method="openRad">openRad</link>,
+          Unlike <link interface="IO" method="openRad">openRad</link>,
           <code>openConsole</code> does not require a <strong>rad(1m)</strong>
           daemon to be running on the non-global zone.
         </para>
@@ -245,8 +245,8 @@
 
       <result type="long">
         <summary>
-          a token used to <link api="IO" method="read">read</link> from and
-          <link api="IO" method="write">write</link> to the console
+          a token used to <link interface="IO" method="read">read</link> from and
+          <link interface="IO" method="write">write</link> to the console
         </summary>
       </result>
       <error typeref="ZonesBridgeError"/>
@@ -345,8 +345,8 @@
 
       <result type="long">
         <summary>
-          a token used to <link api="IO" method="read">read</link> from and
-          <link api="IO" method="write">write</link> to the new connection
+          a token used to <link interface="IO" method="read">read</link> from and
+          <link interface="IO" method="write">write</link> to the new connection
         </summary>
       </result>
       <error typeref="ZonesBridgeError"/>
@@ -385,7 +385,7 @@
       <argument name="token" type="long">
         <summary>
           the token identifying the open connection to read from, as returned by
-          <link api="IO" method="openRad">openRad</link> or <link api="IO"
+          <link interface="IO" method="openRad">openRad</link> or <link interface="IO"
           method="openConsole">openConsole</link>
         </summary>
       </argument>
@@ -409,7 +409,7 @@
       <argument name="token" type="long">
         <summary>
           the token identifying the open connection to write to, as returned by
-          <link api="IO" method="openRad">openRad</link> or <link api="IO"
+          <link interface="IO" method="openRad">openRad</link> or <link interface="IO"
           method="openConsole">openConsole</link>
         </summary>
       </argument>
@@ -419,16 +419,16 @@
         </summary>
       </argument>
     </method>
-  </api>
+  </interface>
 
-  <api name="Util">
+  <interface name="Util">
     <summary>
-      utility interface for zone-related functionality
+      utility API for zone-related functionality
     </summary>
 
     <doc>
       <para>
-        The <code>util</code> API provides utility methods related to zone
+        The <code>util</code> interface provides utility methods related to zone
         connectivity.  Handles to this type of object can be retrieved from the
         RAD server using an object name built with:
       </para>
@@ -461,5 +461,5 @@
         </summary>
       </argument>
     </method>
-  </api>
-</interface>
+  </interface>
+</api>
--- a/usr/src/cmd/rad/daemon/config.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/config.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="radconfig">
+<api xmlns="http://xmlns.oracle.com/radadr" name="radconfig">
   <struct name="radconfig">
     <field name="moduledir" nullable="true">
       <list type="string" />
@@ -33,4 +33,4 @@
     <field type="boolean" name="debug" />
     <field type="integer" name="timeout" />
   </struct>
-</interface>
+</api>
--- a/usr/src/cmd/rad/daemon/datatype.x	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/datatype.x	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 /*
@@ -175,14 +175,14 @@
 	int minor;
 };
 
-struct api {
+struct interface {
 	string name<>;
 	version versions[3];
 }
 
 struct object {
-	string ifname<>;
-	api apis<>;
+	string aname<>;
+	interface ifaces<>;
 
 	type_data types<>;
 	attribute attrs<>;
--- a/usr/src/cmd/rad/daemon/rad_container.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/rad_container.c	Tue May 08 19:19:59 2012 -0400
@@ -296,7 +296,7 @@
 	adr_name_t *objname = adr_name_vcreate("com.oracle.solaris.rad", 1,
 	    "type", "Container");
 	rad_instance_t *inst =
-	    instance_create(objname, &api_Container_svr, NULL, NULL);
+	    instance_create(objname, &interface_Container_svr, NULL, NULL);
 	if (inst == NULL)
 		return (B_FALSE);
 
--- a/usr/src/cmd/rad/daemon/rad_control.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/rad_control.c	Tue May 08 19:19:59 2012 -0400
@@ -46,7 +46,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Control_read_proxy(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Control_read_proxy(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_boolean(rad_isproxy);
@@ -55,7 +55,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Control_invoke_shutdown(rad_instance_t *inst, adr_method_t *meth,
+interface_Control_invoke_shutdown(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	exit(0);
@@ -64,7 +64,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Control_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
+interface_Control_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	/* Currently unsupported */
@@ -81,7 +81,7 @@
 	conerr_t err = ce_nomem;
 	if (name == NULL ||
 	    (err = cont_insert_singleton(&rad_container_control, name,
-	    &api_Control_svr)) != ce_ok)
+	    &interface_Control_svr)) != ce_ok)
 		rad_log(RL_FATAL, "failed to install control object: %s",
 		    cont_strerror(err));
 }
--- a/usr/src/cmd/rad/daemon/rad_modapi.h	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/rad_modapi.h	Tue May 08 19:19:59 2012 -0400
@@ -82,8 +82,8 @@
  */
 
 typedef struct rad_container rad_container_t; /* An object namespace */
-typedef struct rad_object rad_object_t;	/* An implementation of an API */
-typedef struct rad_instance rad_instance_t;   /* An instance of an API impl. */
+typedef struct rad_object rad_object_t;	/* An implementation of an interface */
+typedef struct rad_instance rad_instance_t;   /* An instance of an i/f impl. */
 
 typedef conerr_t (attr_write_f)(rad_instance_t *, adr_attribute_t *,
     data_t *, data_t **);
@@ -246,8 +246,8 @@
 /*
  * Default path for AF_UNIX sockets
  */
-#define RAD_PATH_AFUNIX_AUTH	RAD_TMPDIR "/radsocket"
-#define RAD_PATH_AFUNIX_UNAUTH	RAD_TMPDIR "/radsocket-unauth"
+#define	RAD_PATH_AFUNIX_AUTH	RAD_TMPDIR "/radsocket"
+#define	RAD_PATH_AFUNIX_UNAUTH	RAD_TMPDIR "/radsocket-unauth"
 
 #ifdef	__cplusplus
 }
--- a/usr/src/cmd/rad/daemon/rad_module.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/rad_module.c	Tue May 08 19:19:59 2012 -0400
@@ -200,14 +200,14 @@
 	conerr_t err = ce_nomem;
 	if (name == NULL ||
 	    (err = cont_insert_singleton(&rad_container_auth, name,
-	    &api_Modules_svr)) != ce_ok)
+	    &interface_Modules_svr)) != ce_ok)
 		rad_log(RL_FATAL, "failed to install module object: %s",
 		    cont_strerror(err));
 }
 
 /* ARGSUSED */
 conerr_t
-api_Modules_read_modules(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Modules_read_modules(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	int i;
--- a/usr/src/cmd/rad/daemon/rad_object.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/rad_object.c	Tue May 08 19:19:59 2012 -0400
@@ -84,7 +84,8 @@
 		 */
 		rad_log(RL_WARN,
 		    "%s: %s.%s: can't-fail operation returned error",
-		    inst->i_namestr, inst->i_type->so_object->ao_name, feature);
+		    inst->i_namestr, inst->i_type->so_object->ao_ifname,
+		    feature);
 		data_free(error);
 		error = NULL;
 		if (ce != ce_priv)
@@ -96,8 +97,8 @@
 		 */
 		rad_log(RL_DEBUG,
 		    "%s: %s.%s: object returned container error: %s",
-		    inst->i_namestr, inst->i_type->so_object->ao_name, feature,
-		    cont_strerror(ce));
+		    inst->i_namestr, inst->i_type->so_object->ao_ifname,
+		    feature, cont_strerror(ce));
 		data_free(error);
 		error = NULL;
 		ce = ce_object;
@@ -111,7 +112,8 @@
 	if (ce == ce_object && !data_verify(error, etype, B_TRUE)) {
 		rad_log(RL_WARN,
 		    "%s: %s.%s: invalid payload content with error",
-		    inst->i_namestr, inst->i_type->so_object->ao_name, feature);
+		    inst->i_namestr, inst->i_type->so_object->ao_ifname,
+		    feature);
 		data_free(error);
 		error = NULL;
 	}
--- a/usr/src/cmd/rad/daemon/rad_pam.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/daemon/rad_pam.c	Tue May 08 19:19:59 2012 -0400
@@ -305,7 +305,7 @@
 	 * This means that our credential material will remain in
 	 * memory.  This is unfortunate, but Gary thinks it is an
 	 * acceptable tradeoff.  The situation will improve once we
-	 * have interfaces that permit marking memory as no-dump/
+	 * have apis that permit marking memory as no-dump/
 	 * -swap.
 	 */
 
@@ -469,7 +469,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_read_user(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Authentication_read_user(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	rad_subject_t *subject = pthread_getspecific(rad_subject_key);
@@ -484,7 +484,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_read_roles(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Authentication_read_roles(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	rad_subject_t *subject = pthread_getspecific(rad_subject_key);
@@ -510,7 +510,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_read_connectionTimeout(rad_instance_t *inst,
+interface_Authentication_read_connectionTimeout(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	if ((*data = data_new_integer(conn_to_time)) == NULL)
@@ -521,7 +521,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_invoke_login(rad_instance_t *inst, adr_method_t *meth,
+interface_Authentication_invoke_login(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radmod_connection_t *conn = pthread_getspecific(rad_conn_key);
@@ -543,7 +543,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_invoke_assume(rad_instance_t *inst, adr_method_t *meth,
+interface_Authentication_invoke_assume(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radmod_connection_t *conn = pthread_getspecific(rad_conn_key);
@@ -565,8 +565,9 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_invoke_redeemToken(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Authentication_invoke_redeemToken(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	radmod_connection_t *conn = pthread_getspecific(rad_conn_key);
 
@@ -588,8 +589,9 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_invoke_createToken(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Authentication_invoke_createToken(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	rad_subject_t *subject = pthread_getspecific(rad_subject_key);
 	if (subject == NULL)
@@ -603,15 +605,15 @@
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_invoke_complete(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Authentication_invoke_complete(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (ce_ok);
 }
 
 /* ARGSUSED */
 conerr_t
-api_Authentication_invoke_submit(rad_instance_t *inst, adr_method_t *meth,
+interface_Authentication_invoke_submit(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radmod_connection_t *conn = pthread_getspecific(rad_conn_key);
@@ -625,9 +627,9 @@
 	adr_name_t *name = adr_name_vcreate("com.oracle.solaris.rad.pam", 1,
 	    "type", "Authentication");
 	rad_instance_t *inst = instance_create(adr_name_hold(name),
-	    &api_Authentication_svr, NULL, NULL);
+	    &interface_Authentication_svr, NULL, NULL);
 	rad_instance_t *uinst = instance_create(adr_name_hold(name),
-	    &api_Authentication_svr, NULL, NULL);
+	    &interface_Authentication_svr, NULL, NULL);
 
 	conerr_t err = ce_nomem;
 	if (inst == NULL || uinst == NULL ||
--- a/usr/src/cmd/rad/mod/example-time2/example-time2.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/example-time2/example-time2.c	Tue May 08 19:19:59 2012 -0400
@@ -39,7 +39,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_time(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_time(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_long((long long)time(NULL) * 1000);
@@ -48,7 +48,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_write_time(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_write_time(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	long long rawtime = data_to_longint(data) / 1000;
@@ -80,7 +80,7 @@
 	adr_name_t *name = adr_name_fromstr(
 	    "com.oracle.solaris.vp.panels.example.time2:type=Time");
 	(void) cont_insert_singleton(rad_container, name,
-	    &api_Time_svr);
+	    &interface_Time_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/files/mod_files.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/files/mod_files.c	Tue May 08 19:19:59 2012 -0400
@@ -31,7 +31,7 @@
  * files.
  *
  * This sorely needs to be ripped out and replaced with a sane
- * interface.
+ * api.
  */
 
 #include <sys/stat.h>
@@ -121,7 +121,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_FileBrowser_read_roots(rad_instance_t *inst, adr_attribute_t *attr,
+interface_FileBrowser_read_roots(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	data_t *result = data_new_array(&t_array__FileSnapshot, 1);
@@ -132,7 +132,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_FileBrowser_invoke_getFile(rad_instance_t *inst, adr_method_t *meth,
+interface_FileBrowser_invoke_getFile(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = read_file(data_to_string(args[0]), NULL);
@@ -141,7 +141,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_FileBrowser_invoke_getFiles(rad_instance_t *inst, adr_method_t *meth,
+interface_FileBrowser_invoke_getFiles(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *path = data_to_string(args[0]);
@@ -186,7 +186,7 @@
 
 	(void) cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.vp.panel.common.api.file:type=FileBrowser"),
-	    &api_FileBrowser_svr);
+	    &interface_FileBrowser_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/kstat/mod_kstat.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/kstat/mod_kstat.c	Tue May 08 19:19:59 2012 -0400
@@ -246,7 +246,7 @@
 	}
 
 	rad_instance_t *i = instance_create(adr_name_hold(aname),
-	    &api_Kstat_svr, kid, (void(*)(void *))kstat_inst_free);
+	    &interface_Kstat_svr, kid, (void(*)(void *))kstat_inst_free);
 	if (i == NULL) {
 		rad_mutex_exit(&kstat_lock);
 		return (ce_nomem);
@@ -272,7 +272,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Kstat_read_info(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Kstat_read_info(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	kstat_inst_t *kid = instance_getdata(inst);
@@ -301,7 +301,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Kstat_read_stale(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Kstat_read_stale(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	kstat_inst_t *kid = instance_getdata(inst);
@@ -338,7 +338,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Kstat_read_snapshot(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Kstat_read_snapshot(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (read_snapshot(inst, data, B_FALSE));
@@ -346,7 +346,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Kstat_invoke_fresh_snapshot(rad_instance_t *inst, adr_method_t *meth,
+interface_Kstat_invoke_fresh_snapshot(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (read_snapshot(inst, ret, B_TRUE));
@@ -358,7 +358,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Control_invoke_update(rad_instance_t *inst, adr_method_t *meth,
+interface_Control_invoke_update(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	rad_mutex_enter(&kstat_lock);
@@ -396,7 +396,8 @@
 
 	adr_name_t *ctlname =
 	    adr_name_vcreate(KSTAT_DOMAIN, 1, "type", "Control");
-	(void) cont_insert_singleton(rad_container, ctlname, &api_Control_svr);
+	(void) cont_insert_singleton(rad_container, ctlname,
+	    &interface_Control_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/network/mod_network.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/network/mod_network.c	Tue May 08 19:19:59 2012 -0400
@@ -64,7 +64,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Network_read_networkInterfaces(rad_instance_t *inst,
+interface_Network_read_networkInterfaces(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	int fd;
@@ -130,7 +130,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Network_invoke_getHostNameForIP(rad_instance_t *inst,
+interface_Network_invoke_getHostNameForIP(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	int errnum;
@@ -157,7 +157,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Network_invoke_hostGetIPs(rad_instance_t *inst, adr_method_t *meth,
+interface_Network_invoke_hostGetIPs(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	int errnum;
@@ -189,8 +189,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_Network_invoke_isLocalAddress(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Network_invoke_isLocalAddress(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	struct ifaddrs *ifaddr;
 	struct ifaddrs *ifa;
@@ -258,7 +258,7 @@
 
 	(void) cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.vp.panel.common.api.network:type=Network"),
-	    &api_Network_svr);
+	    &interface_Network_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/panels/mod_panels.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/panels/mod_panels.c	Tue May 08 19:19:59 2012 -0400
@@ -415,14 +415,14 @@
 
 	adr_name_t *name = adr_name_fromstr(
 	    "com.oracle.solaris.vp.panel.common.api.panel:type=Panel");
-	(void) cont_insert_singleton(rad_container, name, &api_Panel_svr);
+	(void) cont_insert_singleton(rad_container, name, &interface_Panel_svr);
 
 	return (0);
 }
 
 /* ARGSUSED */
 conerr_t
-api_Panel_invoke_getPanel(rad_instance_t *inst, adr_method_t *meth,
+interface_Panel_invoke_getPanel(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *pname = data_to_string(args[0]);
@@ -443,7 +443,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Panel_read_panelNames(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Panel_read_panelNames(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	data_t *array = data_new_array(&t_array_string, 0);
@@ -477,7 +477,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Panel_invoke_getResource(rad_instance_t *inst, adr_method_t *meth,
+interface_Panel_invoke_getResource(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	char *file;
--- a/usr/src/cmd/rad/mod/pkg/mod_pkg.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/pkg/mod_pkg.c	Tue May 08 19:19:59 2012 -0400
@@ -220,7 +220,7 @@
 	adr_name_t *pkg_iface = adr_name_vcreate(
 	    "com.oracle.solaris.rad.pkg", 1, "type", "PkgInterface");
 
-	if (rc_lookup_typed(rcc, pkg_iface, &rco, &api_PkgInterface,
+	if (rc_lookup_typed(rcc, pkg_iface, &rco, &interface_PkgInterface,
 	    error) != 0) {
 		/*
 		 * We shouldn't get here since we would already fail to lookup
@@ -284,7 +284,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_pkg_init(rad_instance_t *inst, adr_method_t *meth,
+interface_PkgInterface_invoke_pkg_init(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	PyObject *pArgs = NULL;
@@ -393,7 +393,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_pkg_fini(rad_instance_t *inst, adr_method_t *meth,
+interface_PkgInterface_invoke_pkg_fini(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 
@@ -427,7 +427,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_install(rad_instance_t *inst, adr_method_t *meth,
+interface_PkgInterface_invoke_install(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	PyObject *pPkgs = NULL;
@@ -556,8 +556,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_uninstall(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_PkgInterface_invoke_uninstall(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 
 	PyObject *pPkgs = NULL;
@@ -686,8 +686,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_image_update(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_PkgInterface_invoke_image_update(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 
 	PyObject *pForce = NULL;
@@ -826,7 +826,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_list(rad_instance_t *inst, adr_method_t *meth,
+interface_PkgInterface_invoke_list(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	PyObject *pType = NULL;
@@ -1006,7 +1006,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_set_publisher(rad_instance_t *inst,
+interface_PkgInterface_invoke_set_publisher(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	PyObject *pPrefix = NULL;
@@ -1166,7 +1166,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
+interface_PkgInterface_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 
@@ -1239,7 +1239,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_get_preferred_publisher(rad_instance_t *inst,
+interface_PkgInterface_invoke_get_preferred_publisher(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 
@@ -1302,7 +1302,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_get_publisher(rad_instance_t *inst,
+interface_PkgInterface_invoke_get_publisher(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	PyObject *pPrefix = NULL;
@@ -1433,7 +1433,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_get_publishers(rad_instance_t *inst,
+interface_PkgInterface_invoke_get_publishers(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	PyObject *pTmp;
@@ -1504,8 +1504,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_PkgInterface_invoke_get_progress(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_PkgInterface_invoke_get_progress(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	data_t *dResult;
 
@@ -1558,7 +1558,7 @@
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_fromstr("com.oracle.solaris.rad.pkg:"
 	    "type=PkgInterface"),
-	    &api_PkgInterface_svr);
+	    &interface_PkgInterface_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/smf/common.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/smf/common.c	Tue May 08 19:19:59 2012 -0400
@@ -35,7 +35,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_fmri(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_fmri(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -45,7 +45,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_scope(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_scope(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_string("localhost", lt_const);
@@ -54,7 +54,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_service(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_service(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -125,7 +125,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_dependencies(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_dependencies(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	struct pgargs pga = {
@@ -139,7 +139,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_manpages(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_manpages(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	struct pgargs pga = {
@@ -153,7 +153,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_doclinks(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_doclinks(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	struct pgargs pga = {
@@ -209,7 +209,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_read_pgs(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Entity_read_pgs(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_pgs, instance_getdata(inst), data, error));
@@ -256,7 +256,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_delete(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_delete(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (smfu_rtrun(rt_invoke_delete, instance_getdata(inst), NULL,
@@ -305,7 +305,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_deleteCust(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_deleteCust(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (smfu_rtrun(rt_invoke_deleteCust, instance_getdata(inst), NULL,
@@ -362,7 +362,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_createPG(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_createPG(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -415,7 +415,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_deletePG(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_deletePG(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -472,7 +472,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_deletePGCust(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_deletePGCust(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -510,7 +510,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_readProperties(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_readProperties(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -646,8 +646,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_writeProperties(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Entity_invoke_writeProperties(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
 	return (smfu_rtrun(rt_invoke_writeProperties, &ra, NULL, error));
@@ -696,7 +696,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_readProperty(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_readProperty(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -773,7 +773,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_writeProperty(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_writeProperty(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -874,7 +874,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_deleteProperty(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_deleteProperty(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -980,8 +980,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_deletePropertyCust(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Entity_invoke_deletePropertyCust(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
 	return (smfu_rtrun(rt_invoke_deletePropertyCust, &ra, NULL, error));
@@ -1035,7 +1035,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_getCommonName(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_getCommonName(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	struct tmplarg ta = {
@@ -1048,7 +1048,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_getDescription(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_getDescription(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	struct tmplarg ta = {
@@ -1096,7 +1096,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_getPGTemplates(rad_instance_t *inst, adr_method_t *meth,
+interface_Entity_invoke_getPGTemplates(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -1150,8 +1150,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Entity_invoke_getPropTemplates(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Entity_invoke_getPropTemplates(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
 	return (smfu_rtrun(rt_invoke_getPropTemplates, &ra, ret, error));
--- a/usr/src/cmd/rad/mod/smf/instance.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/smf/instance.c	Tue May 08 19:19:59 2012 -0400
@@ -40,7 +40,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_read_instance(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Instance_read_instance(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -100,7 +100,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_read_restarter(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Instance_read_restarter(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_restarter, instance_getdata(inst), data,
@@ -151,7 +151,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_read_enabled(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Instance_read_enabled(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_enabled, instance_getdata(inst), data,
@@ -199,7 +199,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_read_state(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Instance_read_state(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_state, instance_getdata(inst), data, error));
@@ -224,7 +224,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_read_ex_state(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Instance_read_ex_state(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_ex_state, instance_getdata(inst), data,
@@ -280,7 +280,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_read_snapshots(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Instance_read_snapshots(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_snapshots, instance_getdata(inst), data,
@@ -342,8 +342,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_readSnapshotPGs(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Instance_invoke_readSnapshotPGs(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
 	return (smfu_rtrun(rt_invoke_readSnapshotPGs, &ra, ret, error));
@@ -385,7 +385,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_readSnapshotProperties(rad_instance_t *inst,
+interface_Instance_invoke_readSnapshotProperties(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -445,7 +445,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_readSnapshotProperty(rad_instance_t *inst,
+interface_Instance_invoke_readSnapshotProperty(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	radarg_t ra = { .inst = inst, .args = args };
@@ -495,7 +495,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_clear(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_clear(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -509,7 +509,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_restart(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_restart(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -523,7 +523,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -537,7 +537,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_maintain(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_maintain(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -560,7 +560,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_enable(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_enable(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -579,7 +579,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_disable(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_disable(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	smfobj_t *smfo = instance_getdata(inst);
@@ -646,7 +646,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Instance_invoke_getLogInfo(rad_instance_t *inst, adr_method_t *meth,
+interface_Instance_invoke_getLogInfo(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	data_t *logfile = NULL;
--- a/usr/src/cmd/rad/mod/smf/mod_smf.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/smf/mod_smf.c	Tue May 08 19:19:59 2012 -0400
@@ -49,8 +49,8 @@
  * The SMF rad module.
  *
  * This module is atypically involved due to the sheer size of the
- * exported interface, the complexity of consuming SMF, and the fact
- * the exported interface represents a significant abstraction of the
+ * exported API, the complexity of consuming SMF, and the fact
+ * the exported API represents a significant abstraction of the
  * underlying functionality.
  *
  * This file (mod_smf.c) contains the rad module linkage, the dynamic
@@ -138,7 +138,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Master_read_services(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Master_read_services(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_services, NULL, data, error));
@@ -213,7 +213,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Master_read_instances(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Master_read_instances(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_instances, NULL, data, error));
@@ -365,7 +365,7 @@
 		return (ce_nomem);
 
 	*inst = instance_create(adr_name_hold(*name),
-	    instance ? &api_Instance_svr : &api_Service_svr,
+	    instance ? &interface_Instance_svr : &interface_Service_svr,
 	    smfo, (void(*)(void *))smfu_obj_free);
 
 	return (ce_ok);
@@ -392,7 +392,7 @@
 
 	mpat = adr_name_vcreate(SMF_DOMAIN, 1, SMF_KEY_TYPE, SMF_TYPE_MASTER);
 	rad_instance_t *agg_inst =
-	    instance_create(mpat, &api_Master_svr, NULL, NULL);
+	    instance_create(mpat, &interface_Master_svr, NULL, NULL);
 	if (agg_inst != NULL)
 		(void) cont_insert(rad_container, agg_inst, INST_ID_PICK);
 
--- a/usr/src/cmd/rad/mod/smf/service.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/smf/service.c	Tue May 08 19:19:59 2012 -0400
@@ -87,7 +87,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Service_read_instances(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Service_read_instances(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	return (smfu_rtrun(rt_read_instances, instance_getdata(inst), data,
--- a/usr/src/cmd/rad/mod/smf_old/mod_smf.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/smf_old/mod_smf.c	Tue May 08 19:19:59 2012 -0400
@@ -198,7 +198,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_fmri(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_fmri(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -208,8 +208,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_methodNames(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_ServiceInfo_read_methodNames(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	const char *pgtypes[] = { SCF_GROUP_METHOD, NULL };
 	return (getpgs(instance_getdata(inst), data, B_TRUE, strinset, pgtypes,
@@ -218,7 +218,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_dependencyNames(rad_instance_t *inst,
+interface_ServiceInfo_read_dependencyNames(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	const char *pgtypes[] = { SCF_GROUP_DEPENDENCY, NULL };
@@ -228,7 +228,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_propertyGroups(rad_instance_t *inst,
+interface_ServiceInfo_read_propertyGroups(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	return (getpgs(instance_getdata(inst), data, B_FALSE, strnotinset,
@@ -237,7 +237,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_manpages(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_manpages(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -287,7 +287,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_doclinks(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_doclinks(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -329,7 +329,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_persistentlyEnabled(rad_instance_t *inst,
+interface_ServiceInfo_read_persistentlyEnabled(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -355,7 +355,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_temporarilyEnabled(rad_instance_t *inst,
+interface_ServiceInfo_read_temporarilyEnabled(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -371,8 +371,8 @@
 	rad_propvec_t *badprop;
 	if (rad_read_propvec(si->fmri, SCF_PG_GENERAL_OVR, B_FALSE, evec,
 	    &badprop) != 0)
-		return (api_ServiceInfo_read_persistentlyEnabled(inst, attr,
-		    data, error));
+		return (interface_ServiceInfo_read_persistentlyEnabled(
+		    inst, attr, data, error));
 	rad_clean_propvec(evec);
 
 	*data = data_new_boolean(enabled);
@@ -381,19 +381,19 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_enabled(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_enabled(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	/*
 	 * XXX: The java version always had the same implementation for both.
 	 */
-	return (api_ServiceInfo_read_persistentlyEnabled(inst, attr, data,
+	return (interface_ServiceInfo_read_persistentlyEnabled(inst, attr, data,
 	    error));
 }
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_instance(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_instance(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -403,8 +403,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_restarter(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_ServiceInfo_read_restarter(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
 	if (!si->instance)
@@ -445,7 +445,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_state(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_state(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -463,8 +463,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_nextState(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_ServiceInfo_read_nextState(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
 	if (!si->instance)
@@ -489,7 +489,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_auxiliaryState(rad_instance_t *inst,
+interface_ServiceInfo_read_auxiliaryState(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -521,7 +521,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_stime(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_stime(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -549,8 +549,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_contractID(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_ServiceInfo_read_contractID(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
 	if (!si->instance)
@@ -576,7 +576,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_read_reason(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ServiceInfo_read_reason(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -588,7 +588,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_write_persistentlyEnabled(rad_instance_t *inst,
+interface_ServiceInfo_write_persistentlyEnabled(rad_instance_t *inst,
     adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -652,8 +652,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getDependency(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_ServiceInfo_invoke_getDependency(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
 	const char *pgname = data_to_string(args[0]);
@@ -730,7 +730,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getPropertyNames(rad_instance_t *inst,
+interface_ServiceInfo_invoke_getPropertyNames(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -771,7 +771,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getPropertyType(rad_instance_t *inst,
+interface_ServiceInfo_invoke_getPropertyType(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *pgname = data_to_string(args[0]);
@@ -813,7 +813,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getPropertyValues(rad_instance_t *inst,
+interface_ServiceInfo_invoke_getPropertyValues(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -875,7 +875,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getSnapshotPropertyValues(rad_instance_t *inst,
+interface_ServiceInfo_invoke_getSnapshotPropertyValues(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -929,7 +929,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_setPropertyValues(rad_instance_t *inst,
+interface_ServiceInfo_invoke_setPropertyValues(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1043,7 +1043,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_createPropertyGroup(rad_instance_t *inst,
+interface_ServiceInfo_invoke_createPropertyGroup(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1094,7 +1094,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_deletePropertyGroup(rad_instance_t *inst,
+interface_ServiceInfo_invoke_deletePropertyGroup(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1150,7 +1150,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_createProperty(rad_instance_t *inst,
+interface_ServiceInfo_invoke_createProperty(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1231,7 +1231,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_deleteProperty(rad_instance_t *inst,
+interface_ServiceInfo_invoke_deleteProperty(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1308,7 +1308,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getPropertyTemplate(rad_instance_t *inst,
+interface_ServiceInfo_invoke_getPropertyTemplate(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1424,8 +1424,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getCommonName(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_ServiceInfo_invoke_getCommonName(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *locale = data_to_string(args[0]);
 	servinst_t *si = instance_getdata(inst);
@@ -1438,7 +1438,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getDescription(rad_instance_t *inst,
+interface_ServiceInfo_invoke_getDescription(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *locale = data_to_string(args[0]);
@@ -1452,8 +1452,8 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_getLogInfo(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_ServiceInfo_invoke_getLogInfo(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
 	if (!si->instance)
@@ -1517,7 +1517,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_delete(rad_instance_t *inst, adr_method_t *meth,
+interface_ServiceInfo_invoke_delete(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1553,7 +1553,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_clear(rad_instance_t *inst, adr_method_t *meth,
+interface_ServiceInfo_invoke_clear(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -1565,7 +1565,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_degrade(rad_instance_t *inst, adr_method_t *meth,
+interface_ServiceInfo_invoke_degrade(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -1578,7 +1578,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_maintain(rad_instance_t *inst, adr_method_t *meth,
+interface_ServiceInfo_invoke_maintain(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -1591,7 +1591,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_restart(rad_instance_t *inst, adr_method_t *meth,
+interface_ServiceInfo_invoke_restart(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -1603,7 +1603,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_ServiceInfo_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
+interface_ServiceInfo_invoke_refresh(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	servinst_t *si = instance_getdata(inst);
@@ -1615,7 +1615,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Aggregator_read_services(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Aggregator_read_services(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	rad_mutex_enter(&service_lock);
@@ -1647,7 +1647,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Aggregator_read_instances(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Aggregator_read_instances(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -1774,14 +1774,16 @@
 		data_t *astate = NULL, *reason = NULL;
 
 		/* Inefficient, but expedient */
-		(void) api_ServiceInfo_read_stime(si->inst, NULL, &stime, NULL);
-		(void) api_ServiceInfo_read_state(si->inst, NULL, &state, NULL);
-		(void) api_ServiceInfo_read_nextState(si->inst, NULL, &nstate,
+		(void) interface_ServiceInfo_read_stime(si->inst, NULL, &stime,
+		    NULL);
+		(void) interface_ServiceInfo_read_state(si->inst, NULL, &state,
 		    NULL);
-		(void) api_ServiceInfo_read_auxiliaryState(si->inst, NULL,
+		(void) interface_ServiceInfo_read_nextState(si->inst, NULL,
+		    &nstate, NULL);
+		(void) interface_ServiceInfo_read_auxiliaryState(si->inst, NULL,
 		    &astate, NULL);
-		(void) api_ServiceInfo_read_reason(si->inst, NULL, &reason,
-		    NULL);
+		(void) interface_ServiceInfo_read_reason(si->inst, NULL,
+		    &reason, NULL);
 
 		data_t *event = data_new_struct(&t__StateChange);
 		struct_set(event, "source", instance_getname(si->inst));
@@ -1841,7 +1843,8 @@
 		    "com.oracle.solaris.vp.panel.common.api.smf_old", 2,
 		    "type", "service", "service", sname);
 	}
-	si->inst = instance_create(objname, &api_ServiceInfo_svr, si, NULL);
+	si->inst = instance_create(objname, &interface_ServiceInfo_svr,
+	    si, NULL);
 	(void) cont_insert(rad_container, si->inst, INST_ID_PICK);
 
 	if (inst) {
@@ -1903,7 +1906,7 @@
 	scf_handle_destroy(scfhandle);
 
 	agg_inst = instance_create(adr_name_fromstr(aggregator_pattern),
-	    &api_Aggregator_svr, NULL, NULL);
+	    &interface_Aggregator_svr, NULL, NULL);
 	if (agg_inst != NULL)
 		(void) cont_insert(rad_container, agg_inst, INST_ID_PICK);
 
--- a/usr/src/cmd/rad/mod/test-compat-cnew/mod_test_compat_cnew.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test-compat-cnew/mod_test_compat_cnew.c	Tue May 08 19:19:59 2012 -0400
@@ -53,8 +53,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_boolPropTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_boolPropTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	/* Required, read-write, boolean property */
 	*data = data_new_boolean(TESTBOOL1);
@@ -63,8 +63,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_boolPropTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_boolPropTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	/* Required, read-write, boolean property */
 	return ((data_to_boolean(data) != TESTBOOL1) ? ce_object : ce_ok);
@@ -72,8 +72,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_intPropTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_intPropTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	/* Required, read-write, int property */
 	*data = data_new_integer(TESTINT1);
@@ -82,8 +82,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_intPropTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_intPropTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	/* Required, read-write, int property */
 	return ((data_to_integer(data) != TESTINT1) ? ce_object : ce_ok);
@@ -91,8 +91,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_strPropTest1(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_strPropTest1(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	/* Required, read-only, string property */
 	*data = data_new_string(TESTSTR1, lt_const);
@@ -101,8 +101,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_strPropTest2(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_strPropTest2(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	/* Nullable, write-only, string property */
 	return ((data != NULL && strcmp(data_to_string(data), TESTSTR2) != 0) ?
@@ -111,8 +111,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_uniArmTest1(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_uniArmTest1(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	static int toggle = 0;
 	*data = NULL;
@@ -138,8 +138,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_uniArmTest1(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_uniArmTest1(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	if (data == NULL)
 		return (ce_object);
@@ -171,8 +171,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_uniArmTest2(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_uniArmTest2(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	static int toggle = 0;
 	*data = NULL;
@@ -199,8 +199,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_uniArmTest2(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_uniArmTest2(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	if (data == NULL)
 		return (ce_object);
@@ -226,8 +226,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_retvalTest(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_CompatTest_invoke_retvalTest(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	/*
 	 * Method with non-nullable arg,
@@ -240,8 +240,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_argvalTest(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_CompatTest_invoke_argvalTest(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	/*
 	 * Method with nullable arg (was non-nullable),
@@ -258,7 +258,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_readAcct(rad_instance_t *inst, adr_method_t *meth,
+interface_CompatTest_invoke_readAcct(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = NULL;
@@ -285,7 +285,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_writeAcct(rad_instance_t *inst, adr_method_t *meth,
+interface_CompatTest_invoke_writeAcct(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = NULL;
@@ -376,7 +376,7 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.compat", 1,
-	    "type", "cnew"), &api_CompatTest_svr);
+	    "type", "cnew"), &interface_CompatTest_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/test-compat-cold/mod_test_compat_cold.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test-compat-cold/mod_test_compat_cold.c	Tue May 08 19:19:59 2012 -0400
@@ -53,8 +53,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_boolPropTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_boolPropTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	/* Required, read-only, boolean property */
 	*data = data_new_boolean(TESTBOOL1);
@@ -63,8 +63,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_intPropTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_intPropTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	/* Required, write-only, int property */
 	return ((data_to_integer(data) != TESTINT1) ? ce_object : ce_ok);
@@ -72,8 +72,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_strPropTest1(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_strPropTest1(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	/* Optional, read-only, string property */
 	/* Return null for some cases */
@@ -88,8 +88,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_strPropTest2(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_strPropTest2(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	/* Required, write-only, string property */
 	return ((data == NULL || strcmp(data_to_string(data), TESTSTR2) != 0) ?
@@ -98,8 +98,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_uniArmTest1(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_uniArmTest1(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	static int toggle = 0;
 	*data = NULL;
@@ -122,8 +122,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_uniArmTest1(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_uniArmTest1(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	if (data == NULL)
 		return (ce_object);
@@ -149,8 +149,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_read_uniArmTest2(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_CompatTest_read_uniArmTest2(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	static int toggle = 0;
 	*data = NULL;
@@ -172,8 +172,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_write_uniArmTest2(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_CompatTest_write_uniArmTest2(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	if (data == NULL)
 		return (ce_object);
@@ -196,7 +196,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_retvalTest(rad_instance_t *inst, adr_method_t *meth,
+interface_CompatTest_invoke_retvalTest(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	/* Method with non-nullable arg, nullable return value */
@@ -212,7 +212,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_argvalTest(rad_instance_t *inst, adr_method_t *meth,
+interface_CompatTest_invoke_argvalTest(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	/* Method with non-nullable arg, non-nullable return value */
@@ -223,7 +223,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_readAcct(rad_instance_t *inst, adr_method_t *meth,
+interface_CompatTest_invoke_readAcct(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = NULL;
@@ -250,7 +250,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_CompatTest_invoke_writeAcct(rad_instance_t *inst, adr_method_t *meth,
+interface_CompatTest_invoke_writeAcct(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = NULL;
@@ -342,7 +342,7 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.compat", 1,
-	    "type", "cold"), &api_CompatTest_svr);
+	    "type", "cold"), &interface_CompatTest_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/test-fallback-new/mod_test_fallback_new.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test-fallback-new/mod_test_fallback_new.c	Tue May 08 19:19:59 2012 -0400
@@ -32,8 +32,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_growerFirst(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_growerFirst(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Grower_first;
 	return (ce_ok);
@@ -41,8 +41,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_growerLast(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_growerLast(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Grower_fourth;
 	return (ce_ok);
@@ -50,8 +50,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_shrinkerFirst(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_shrinkerFirst(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Shrinker_first;
 	return (ce_ok);
@@ -59,8 +59,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_shrinkerLast(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_shrinkerLast(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Shrinker_third;
 	return (ce_ok);
@@ -68,8 +68,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_invoke_shrinkerString(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_FallbackTest_invoke_shrinkerString(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	*ret = data_new_string(enum_tostring(args[0]), lt_const);
 	return (*ret == NULL ? ce_system : ce_ok);
@@ -77,8 +78,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_invoke_growerString(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_FallbackTest_invoke_growerString(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	*ret = data_new_string(enum_tostring(args[0]), lt_const);
 	return (*ret == NULL ? ce_system : ce_ok);
@@ -99,7 +101,7 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.fallback", 1,
-	    "type", "new"), &api_FallbackTest_svr);
+	    "type", "new"), &interface_FallbackTest_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/test-fallback-old/mod_test_fallback_old.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test-fallback-old/mod_test_fallback_old.c	Tue May 08 19:19:59 2012 -0400
@@ -32,8 +32,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_growerFirst(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_growerFirst(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Grower_first;
 	return (ce_ok);
@@ -41,8 +41,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_growerLast(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_growerLast(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Grower_third;
 	return (ce_ok);
@@ -50,8 +50,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_shrinkerFirst(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_shrinkerFirst(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Shrinker_first;
 	return (ce_ok);
@@ -59,8 +59,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_read_shrinkerLast(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_FallbackTest_read_shrinkerLast(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = &e__Shrinker_fourth;
 	return (ce_ok);
@@ -68,8 +68,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_invoke_shrinkerString(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_FallbackTest_invoke_shrinkerString(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	*ret = data_new_string(enum_tostring(args[0]), lt_const);
 	return (*ret == NULL ? ce_system : ce_ok);
@@ -77,8 +78,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_FallbackTest_invoke_growerString(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_FallbackTest_invoke_growerString(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = data_new_string(enum_tostring(args[0]), lt_const);
 	return (*ret == NULL ? ce_system : ce_ok);
@@ -99,7 +100,7 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.fallback", 1,
-	    "type", "old"), &api_FallbackTest_svr);
+	    "type", "old"), &interface_FallbackTest_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/test-version-vnew/mod_test_version_vnew.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test-version-vnew/mod_test_version_vnew.c	Tue May 08 19:19:59 2012 -0400
@@ -35,8 +35,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_MinorRevTest_read_strvalue(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_MinorRevTest_read_strvalue(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_string(STRVAL, lt_const);
 	return (ce_ok);
@@ -44,8 +44,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_MajorRevTest_read_strvalue(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_MajorRevTest_read_strvalue(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_string(STRVAL, lt_const);
 	return (ce_ok);
@@ -66,11 +66,11 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.version", 1,
-	    "type", "minorNew"), &api_MinorRevTest_svr);
+	    "type", "minorNew"), &interface_MinorRevTest_svr);
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.version", 1,
-	    "type", "majorNew"), &api_MajorRevTest_svr);
+	    "type", "majorNew"), &interface_MajorRevTest_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/test-version-vold/mod_test_version_vold.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test-version-vold/mod_test_version_vold.c	Tue May 08 19:19:59 2012 -0400
@@ -35,8 +35,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_MinorRevTest_read_strvalue(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_MinorRevTest_read_strvalue(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_string(STRVAL, lt_const);
 	return (ce_ok);
@@ -44,8 +44,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_MajorRevTest_read_strvalue(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_MajorRevTest_read_strvalue(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_string(STRVAL, lt_const);
 	return (ce_ok);
@@ -66,11 +66,11 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.version", 1,
-	    "type", "minorOld"), &api_MinorRevTest_svr);
+	    "type", "minorOld"), &interface_MinorRevTest_svr);
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test.version", 1,
-	    "type", "majorOld"), &api_MajorRevTest_svr);
+	    "type", "majorOld"), &interface_MajorRevTest_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/test/addremove.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/addremove.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <stdio.h>
@@ -45,7 +45,7 @@
 	(void) adr_name_hold(newname);
 
 	conerr_t err = cont_insert_singleton(rad_container, newname,
-	    &api_AddRemoveDummy_svr);
+	    &interface_AddRemoveDummy_svr);
 
 	if (err == ce_ok)
 		*ret = data_new_name(newname);
@@ -57,7 +57,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_AddRemove_invoke_addOne(rad_instance_t *inst, adr_method_t *meth,
+interface_AddRemove_invoke_addOne(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) pthread_mutex_lock(&addremove_lock);
@@ -69,7 +69,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_AddRemove_invoke_addSpecific(rad_instance_t *inst, adr_method_t *meth,
+interface_AddRemove_invoke_addSpecific(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (addInternal(data_to_integer(args[0]), ret));
@@ -77,7 +77,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_AddRemoveDummy_invoke_tickle(rad_instance_t *inst, adr_method_t *meth,
+interface_AddRemoveDummy_invoke_tickle(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	*ret = data_new_string("The test dummy stares at you blankly.",
@@ -87,7 +87,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_AddRemoveDummy_invoke_remove(rad_instance_t *inst, adr_method_t *meth,
+interface_AddRemoveDummy_invoke_remove(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	/*
--- a/usr/src/cmd/rad/mod/test/derived.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/derived.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <stdio.h>
@@ -42,8 +42,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_DerivedTypes_read_structProp(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_DerivedTypes_read_structProp(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	data_t *substruct = data_new_struct(&t__SubStruct);
 	struct_set(substruct, "stringfield",
@@ -74,8 +74,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_DerivedTypes_write_structProp(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_DerivedTypes_write_structProp(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	if (data_to_integer(struct_get(data, "intfield")) != VALUE_INTFIELD)
 		return (ce_object);
--- a/usr/src/cmd/rad/mod/test/list.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/list.c	Tue May 08 19:19:59 2012 -0400
@@ -48,14 +48,14 @@
 {
 	for (int i = 0; i < RAD_COUNT(names); i++)
 		(void) cont_insert_singleton(rad_container,
-		    adr_name_fromstr(names[i]), &api_ListDummy_svr);
+		    adr_name_fromstr(names[i]), &interface_ListDummy_svr);
 
 	return (ce_ok);
 }
 
 /*ARGSUSED*/
 conerr_t
-api_ListDummy_read_true(rad_instance_t *inst, adr_attribute_t *attr,
+interface_ListDummy_read_true(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_boolean(B_TRUE);
--- a/usr/src/cmd/rad/mod/test/mod_test.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/mod_test.c	Tue May 08 19:19:59 2012 -0400
@@ -34,7 +34,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_longMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_longMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_long(LLONG_MAX);
@@ -43,7 +43,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_longMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_longMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_long(LLONG_MIN);
@@ -52,7 +52,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_intMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_intMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_integer(INT_MAX);
@@ -61,7 +61,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_intMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_intMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_integer(INT_MIN);
@@ -70,7 +70,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_ulongMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_ulongMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_ulong(ULLONG_MAX);
@@ -79,7 +79,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_ulongMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_ulongMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_ulong(0);
@@ -88,7 +88,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_uintMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_uintMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_uinteger(UINT_MAX);
@@ -97,7 +97,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_uintMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_uintMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_uinteger(0);
@@ -106,8 +106,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_stringEmpty(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_BaseTypes_read_stringEmpty(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_string("", lt_const);
 	return (ce_ok);
@@ -115,8 +115,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_stringNull(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_BaseTypes_read_stringNull(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = NULL;
 	return (ce_ok);
@@ -124,7 +124,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_stringTest(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_read_stringTest(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_string("test", lt_const);
@@ -133,8 +133,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_booleanTrue(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_BaseTypes_read_booleanTrue(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_boolean(B_TRUE);
 	return (ce_ok);
@@ -142,8 +142,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_read_booleanFalse(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_BaseTypes_read_booleanFalse(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*data = data_new_boolean(B_FALSE);
 	return (ce_ok);
@@ -151,7 +151,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_longMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_longMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_longint(data) == LLONG_MAX ? ce_ok : ce_object);
@@ -159,7 +159,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_longMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_longMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_longint(data) == LLONG_MIN ? ce_ok : ce_object);
@@ -167,7 +167,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_intMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_intMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_integer(data) == INT_MAX ? ce_ok : ce_object);
@@ -175,7 +175,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_intMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_intMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_integer(data) == INT_MIN ? ce_ok : ce_object);
@@ -183,7 +183,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_ulongMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_ulongMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_ulongint(data) == ULLONG_MAX ? ce_ok : ce_object);
@@ -191,7 +191,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_ulongMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_ulongMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_ulongint(data) == 0 ? ce_ok : ce_object);
@@ -199,7 +199,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_uintMax(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_uintMax(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_uinteger(data) == UINT_MAX ? ce_ok : ce_object);
@@ -207,7 +207,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_uintMin(rad_instance_t *inst, adr_attribute_t *attr,
+interface_BaseTypes_write_uintMin(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	return (data_to_uinteger(data) == 0 ? ce_ok : ce_object);
@@ -215,8 +215,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_stringEmpty(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_BaseTypes_write_stringEmpty(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	return ((data == NULL || data_to_string(data)[0] != '\0') ?
 	    ce_object : ce_ok);
@@ -224,16 +224,16 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_stringNull(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_BaseTypes_write_stringNull(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	return (data == NULL ? ce_ok : ce_object);
 }
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_stringTest(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_BaseTypes_write_stringTest(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	return ((data == NULL || strcmp(data_to_string(data), "test") != 0) ?
 	    ce_object : ce_ok);
@@ -241,16 +241,16 @@
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_booleanTrue(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_BaseTypes_write_booleanTrue(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	return (data_to_boolean(data) ? ce_ok : ce_object);
 }
 
 /*ARGSUSED*/
 conerr_t
-api_BaseTypes_write_booleanFalse(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_BaseTypes_write_booleanFalse(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	return (data_to_boolean(data) ? ce_object : ce_ok);
 }
@@ -275,33 +275,33 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_fromstr("com.oracle.solaris.rad.test:type=baseTypes"),
-	    &api_BaseTypes_svr);
+	    &interface_BaseTypes_svr);
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_fromstr("com.oracle.solaris.rad.test:type=derivedTypes"),
-	    &api_DerivedTypes_svr);
+	    &interface_DerivedTypes_svr);
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_fromstr("com.oracle.solaris.rad.test:type=properties"),
-	    &api_Properties_svr);
+	    &interface_Properties_svr);
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_fromstr("com.oracle.solaris.rad.test:type=unions"),
-	    &api_Unions_svr);
+	    &interface_Unions_svr);
 
 	addremove_template = adr_name_vcreate(
 	    "com.oracle.solaris.rad.test.addremove", 1, "type", "dummy");
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_vcreate("com.oracle.solaris.rad.test",
 	    1, "type", "addremove"),
-	    &api_AddRemove_svr);
+	    &interface_AddRemove_svr);
 
 	adr_name_t *rr_name = adr_name_vcreate("com.oracle.solaris.rad.test",
 	    1, "type", "radRequest");
 	rad_instance_t *inst = instance_create(adr_name_hold(rr_name),
-	    &api_RadRequest_svr, NULL, NULL);
+	    &interface_RadRequest_svr, NULL, NULL);
 	rad_instance_t *uinst = instance_create(adr_name_hold(rr_name),
-	    &api_RadRequest_svr, NULL, NULL);
+	    &interface_RadRequest_svr, NULL, NULL);
 
 	conerr_t err = ce_nomem;
 	if (inst == NULL || uinst == NULL ||
--- a/usr/src/cmd/rad/mod/test/properties.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/properties.c	Tue May 08 19:19:59 2012 -0400
@@ -38,7 +38,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propWO(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Properties_write_propWO(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	propval = data_to_integer(data);
@@ -47,7 +47,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propRW(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Properties_write_propRW(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	propval = data_to_integer(data);
@@ -56,8 +56,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propRWOpt(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_Properties_write_propRWOpt(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	data_free(optpropval);
 	optpropval = data_ref(data);
@@ -66,8 +66,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propWONonOpt(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_Properties_write_propWONonOpt(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	assert(data != NULL);	/* Should be caught by container */
 
@@ -78,8 +78,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propFailIO(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_Properties_write_propFailIO(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	exit(0);
 	/* LINTED E_FUNC_HAS_NO_RETURN_STMT */
@@ -87,7 +87,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propFailPlain(rad_instance_t *inst,
+interface_Properties_write_propFailPlain(rad_instance_t *inst,
     adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	return (ce_object);
@@ -95,8 +95,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propFailStr(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_Properties_write_propFailStr(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	data_t *e = data_new_struct(&t__ErrorType);
 	struct_set(e, "code", data_new_integer(propval));
@@ -106,7 +106,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_write_propFailStrNull(rad_instance_t *inst,
+interface_Properties_write_propFailStrNull(rad_instance_t *inst,
     adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	*error = NULL;
@@ -115,7 +115,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propRO(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Properties_read_propRO(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_integer(propval);
@@ -124,7 +124,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propRW(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Properties_read_propRW(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_integer(propval);
@@ -133,7 +133,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propRWOpt(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Properties_read_propRWOpt(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_ref(optpropval);
@@ -142,8 +142,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propFailIO(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_Properties_read_propFailIO(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	exit(0);
 	/* LINTED E_FUNC_HAS_NO_RETURN_STMT */
@@ -151,16 +151,16 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propFailPlain(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_Properties_read_propFailPlain(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	return (ce_object);
 }
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propFailStr(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
+interface_Properties_read_propFailStr(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	data_t *e = data_new_struct(&t__ErrorType);
 	struct_set(e, "code", data_new_integer(propval));
@@ -170,7 +170,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Properties_read_propFailStrNull(rad_instance_t *inst,
+interface_Properties_read_propFailStrNull(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	*error = NULL;
--- a/usr/src/cmd/rad/mod/test/rad_request.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/rad_request.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <unistd.h>
@@ -63,7 +63,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_RadRequest_invoke_sleep(rad_instance_t *inst, adr_method_t *meth,
+interface_RadRequest_invoke_sleep(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **err)
 {
 	int milliseconds = data_to_integer(args[0]);
@@ -76,8 +76,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_RadRequest_invoke_eventsStart(rad_instance_t *inst, adr_method_t *meth,
-    data_t **rtnval, data_t **args, int count, data_t **error)
+interface_RadRequest_invoke_eventsStart(rad_instance_t *inst,
+    adr_method_t *meth, data_t **rtnval, data_t **args, int count,
+    data_t **error)
 {
 	rad_mutex_enter(&events_lock);
 	if (!started) {
@@ -95,7 +96,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_RadRequest_invoke_eventsStop(rad_instance_t *inst, adr_method_t *meth,
+interface_RadRequest_invoke_eventsStop(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	rad_mutex_enter(&events_lock);
--- a/usr/src/cmd/rad/mod/test/unions.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/test/unions.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <stdio.h>
@@ -47,8 +47,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeCompleteBool(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeCompleteBool(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	boolean_t arm = data_to_boolean(args[0]);
 
@@ -68,8 +69,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makePartialBool(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makePartialBool(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	boolean_t arm = data_to_boolean(args[0]);
 
@@ -89,8 +91,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeVoidyBool(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeVoidyBool(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	boolean_t arm = data_to_boolean(args[0]);
 
@@ -110,8 +113,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeCompleteEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeCompleteEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -146,8 +150,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makePartialEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makePartialEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -175,8 +180,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeDefaultedEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeDefaultedEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -205,8 +211,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeVoidyEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeVoidyEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -233,8 +240,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeTypes(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeTypes(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -271,8 +279,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeArray(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeArray(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *result = data_new_array(&t_array__uc_enum, 2);
 
@@ -291,8 +300,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeCompleteFlex(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeCompleteFlex(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -323,8 +333,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_makeDefaultedFlex(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_makeDefaultedFlex(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *arm = args[0];
 
@@ -356,8 +367,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeCompleteBool(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeCompleteBool(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -380,8 +392,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takePartialBool(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takePartialBool(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -403,8 +416,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeVoidyBool(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeVoidyBool(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -426,8 +440,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeCompleteEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeCompleteEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -461,8 +476,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takePartialEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takePartialEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -489,8 +505,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeDefaultedEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeDefaultedEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -519,8 +536,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeVoidyEnum(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeVoidyEnum(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -546,8 +564,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeTypes(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeTypes(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -583,8 +602,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeArray(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeArray(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *array = args[0];
 
@@ -611,8 +631,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeCompleteFlex(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeCompleteFlex(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
@@ -641,8 +662,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Unions_invoke_takeDefaultedFlex(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
+interface_Unions_invoke_takeDefaultedFlex(rad_instance_t *inst,
+    adr_method_t *meth, data_t **ret, data_t **args, int count,
+    data_t **error)
 {
 	data_t *un = args[0];
 	data_t *arm = union_get_arm(un);
--- a/usr/src/cmd/rad/mod/time/mod_time.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/time/mod_time.c	Tue May 08 19:19:59 2012 -0400
@@ -50,7 +50,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_time(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_time(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	*data = data_new_time_now();
@@ -61,7 +61,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_write_time(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_write_time(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	long long seconds = data_to_time_secs(data);
@@ -96,7 +96,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_defaultTimeZone(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_defaultTimeZone(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	char zonefile[PATH_MAX];
@@ -124,8 +124,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_write_defaultTimeZone(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
+interface_Time_write_defaultTimeZone(rad_instance_t *inst,
+    adr_attribute_t *attr, data_t *data, data_t **error)
 {
 	conerr_t err = smfu_set_property((char *)SCF_INSTANCE_ENV,
 	    SMF_TZ_PGNAME, SMF_TZ_PROPNAME, (char *)data_to_string(data));
@@ -180,7 +180,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_ntpServers(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_ntpServers(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	data_t *result = data_new_array(&t_array__ServerInfo, 4);
@@ -228,7 +228,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_sufficientlyPrivileged(rad_instance_t *inst,
+interface_Time_read_sufficientlyPrivileged(rad_instance_t *inst,
     adr_attribute_t *attr, data_t **data, data_t **error)
 {
 	/* XXX: Crude */
@@ -238,7 +238,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_continents(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_continents(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	FILE *file = fopen("/usr/share/lib/zoneinfo/tab/continent.tab", "r");
@@ -267,7 +267,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_countries(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_countries(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	FILE *file = fopen("/usr/share/lib/zoneinfo/tab/country.tab", "r");
@@ -366,7 +366,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_read_timeZones(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_read_timeZones(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **data, data_t **error)
 {
 	FILE *file = fopen("/usr/share/lib/zoneinfo/tab/zone_sun.tab", "r");
@@ -436,7 +436,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_Time_write_ntpServers(rad_instance_t *inst, adr_attribute_t *attr,
+interface_Time_write_ntpServers(rad_instance_t *inst, adr_attribute_t *attr,
     data_t *data, data_t **error)
 {
 	FILE *from, *to, *tmp; /* Read, write, & temp files */
@@ -526,7 +526,7 @@
 
 	(void) cont_insert_singleton(rad_container,
 	    adr_name_fromstr("com.oracle.solaris.vp.panels.time:type=Time"),
-	    &api_Time_svr);
+	    &interface_Time_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/usermgr/mod_usermgr.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/usermgr/mod_usermgr.c	Tue May 08 19:19:59 2012 -0400
@@ -878,7 +878,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_users(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_users(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -936,7 +936,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_groups(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_groups(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -992,7 +992,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_shells(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_shells(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1026,7 +1026,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_addUser(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_addUser(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1143,7 +1143,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_modifyUser(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_modifyUser(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1249,7 +1249,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_deleteUser(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_deleteUser(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	assert(args[0] != NULL);
@@ -1332,7 +1332,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_getUser(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_getUser(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	/* will implement along with other fixes. */
@@ -1343,8 +1343,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_isAdministrator(rad_instance_t *inst, adr_method_t *meth,
-    data_t **rtnval, data_t **args, int count, data_t **error)
+interface_UserMgr_invoke_isAdministrator(rad_instance_t *inst, 
+    adr_method_t *meth, data_t **rtnval, data_t **args, int count, 
+    data_t **error)
 {
 	const char *username = data_to_string(args[0]);
 	boolean_t admin = B_FALSE;
@@ -1367,8 +1368,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_setAdministrator(rad_instance_t *inst, adr_method_t *meth,
-    data_t **rtnval, data_t **args, int count, data_t **error)
+interface_UserMgr_invoke_setAdministrator(rad_instance_t *inst, 
+    adr_method_t *meth, data_t **rtnval, data_t **args, int count, 
+    data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
 	const char *username = data_to_string(args[0]);
@@ -1431,7 +1433,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_getUserType(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_getUserType(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	const char *username = data_to_string(args[0]);
@@ -1526,7 +1528,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_defaultUser(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_defaultUser(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	gid_t group = 1;
@@ -1607,7 +1609,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_profiles(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_profiles(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1622,7 +1624,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_roles(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_roles(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1637,7 +1639,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_auths(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_auths(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1652,7 +1654,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_defaultPrivs(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_defaultPrivs(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1667,7 +1669,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_limitPrivs(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_limitPrivs(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1682,7 +1684,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_supplGroups(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_supplGroups(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1696,7 +1698,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_scopes(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_scopes(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1730,7 +1732,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_auditClasses(rad_instance_t *inst, adr_attribute_t *attr,
+interface_UserMgr_read_auditClasses(rad_instance_t *inst, adr_attribute_t *attr,
     data_t **rtnval, data_t **error)
 {
 	/* will implement along with other fixes. */
@@ -1742,8 +1744,8 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_read_pamUserConfFiles(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **rtnval, data_t **error)
+interface_UserMgr_read_pamUserConfFiles(rad_instance_t *inst, 
+    adr_attribute_t *attr, data_t **rtnval, data_t **error)
 {
 	/* will implement along with other fixes. */
 	*rtnval = NULL;
@@ -1753,7 +1755,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_setScope(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_setScope(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	boolean_t setOK = B_TRUE;
@@ -1772,7 +1774,7 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_setFilter(rad_instance_t *inst, adr_method_t *meth,
+interface_UserMgr_invoke_setFilter(rad_instance_t *inst, adr_method_t *meth,
     data_t **rtnval, data_t **args, int count, data_t **error)
 {
 	conerr_t rtn_code = ce_ok;
@@ -1790,8 +1792,9 @@
 
 /*ARGSUSED*/
 conerr_t
-api_UserMgr_invoke_isSystemLabeled(rad_instance_t *inst, adr_method_t *meth,
-    data_t **rtnval, data_t **args, int count, data_t **error)
+interface_UserMgr_invoke_isSystemLabeled(rad_instance_t *inst, 
+    adr_method_t *meth, data_t **rtnval, data_t **args, int count, 
+    data_t **error)
 {
 	/* will implement along with other fixes. */
 	*rtnval = NULL;
@@ -1813,7 +1816,7 @@
 
 	(void) cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.rad.usermgr:type=UserMgr"),
-	    &api_UserMgr_svr);
+	    &interface_UserMgr_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/xport_pipe/pipe.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/xport_pipe/pipe.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="pipe_props">
+<api xmlns="http://xmlns.oracle.com/radadr" name="pipe_props">
 	<struct name="stdin">
 		<field type="string" name="proto" />
 		<field type="boolean" name="exit" />
@@ -32,4 +32,4 @@
 		<field type="integer" name="fd" />
 		<field type="boolean" name="exit" />
 	</struct>
-</interface>
+</api>
--- a/usr/src/cmd/rad/mod/xport_tcp/tcp.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/xport_tcp/tcp.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="tcp_props">
+<api xmlns="http://xmlns.oracle.com/radadr" name="tcp_props">
   <struct name="tcp">
     <field type="string" name="proto" nullable="true" />
     <field type="integer" name="port" />
@@ -30,4 +30,4 @@
     <field type="boolean" name="noauth" nullable="true" />
     <field type="string" name="pam_service" nullable="true" />
   </struct>
-</interface>
+</api>
--- a/usr/src/cmd/rad/mod/xport_tls/tls.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/xport_tls/tls.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="tls_props">
+<api xmlns="http://xmlns.oracle.com/radadr" name="tls_props">
   <struct name="tls">
     <field type="string" name="proto" nullable="true" />
     <field type="integer" name="port" />
@@ -32,4 +32,4 @@
     <field type="boolean" name="generate" nullable="true" />
     <field type="string" name="pam_service" nullable="true" />
   </struct>
-</interface>
+</api>
--- a/usr/src/cmd/rad/mod/xport_unix/unix.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/xport_unix/unix.xml	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
  CDDL HEADER END
 -->
 
-<interface xmlns="http://xmlns.oracle.com/radadr" name="unix_props">
+<api xmlns="http://xmlns.oracle.com/radadr" name="unix_props">
   <struct name="unix">
     <field type="string" name="proto" nullable="true" />
     <field type="string" name="path" />
@@ -30,4 +30,4 @@
     <field type="boolean" name="peercred" nullable="true" />
     <field type="string" name="pam_service" nullable="true" />
   </struct>
-</interface>
+</api>
--- a/usr/src/cmd/rad/mod/zones/api_zones.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/zones/api_zones.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <arpa/inet.h>
@@ -82,11 +82,11 @@
 
 
 conerr_t
-api_SchedulerManagement_invoke_setDefaultScheduler(rad_instance_t *inst,
+iface_SchedulerManagement_invoke_setDefaultScheduler(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_SchedulerManagement_invoke_setDefaultScheduler\n");
+	    "iface_SchedulerManagement_invoke_setDefaultScheduler\n");
 	return (ce_system);
 }
 
@@ -218,7 +218,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_getZoneConfig(rad_instance_t *inst,
+iface_zonesManagement_invoke_getZoneConfig(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count,
     data_t **error)
 {
@@ -351,20 +351,20 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_getAllZoneConfig(rad_instance_t *inst,
+iface_zonesManagement_invoke_getAllZoneConfig(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED:"
-	    " api_zonesManagement_invoke_getAllZoneConfig\n");
+	    " iface_zonesManagement_invoke_getAllZoneConfig\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_verifyZoneConfig(rad_instance_t *inst,
+iface_zonesManagement_invoke_verifyZoneConfig(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED:"
-	    "api_zonesManagement_invoke_verifyZoneConfig\n");
+	    "iface_zonesManagement_invoke_verifyZoneConfig\n");
 	return (ce_system);
 }
 
@@ -455,7 +455,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_setZoneConfig(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZoneConfig(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	zone_dochandle_t handle = NULL;
@@ -505,7 +505,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneConfigure(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneConfigure(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	zone_dochandle_t handle = NULL;
@@ -556,7 +556,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneUnconfigure(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneUnconfigure(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	zone_dochandle_t handle = NULL;
@@ -847,7 +847,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_getSystemState(rad_instance_t *inst,
+iface_zonesManagement_invoke_getSystemState(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	data_t *systemState = NULL;
@@ -1121,88 +1121,88 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_getZoneState(rad_instance_t *inst,
+iface_zonesManagement_invoke_getZoneState(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED:"
-	    " api_zonesManagement_invoke_getZoneState\n");
+	    " iface_zonesManagement_invoke_getZoneState\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_GetCpuState(rad_instance_t *inst,
+iface_zonesManagement_invoke_GetCpuState(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_GetCpuState\n");
+	    "iface_zonesManagement_invoke_GetCpuState\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_setZonePool(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZonePool(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_setZonePool\n");
+	    "iface_zonesManagement_invoke_setZonePool\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_setZoneScheduler(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZoneScheduler(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_setZoneScheduler\n");
+	    "iface_zonesManagement_invoke_setZoneScheduler\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_setZoneCpuShares(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZoneCpuShares(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_setZoneCpuShares\n");
+	    "iface_zonesManagement_invoke_setZoneCpuShares\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_setZoneCappedCpu(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZoneCappedCpu(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_setZoneCappedCpu\n");
+	    "iface_zonesManagement_invoke_setZoneCappedCpu\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_setZoneDedicatedCpu(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZoneDedicatedCpu(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_setZoneDedicatedCpu\n");
+	    "iface_zonesManagement_invoke_setZoneDedicatedCpu\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_setZoneCappedMemory(rad_instance_t *inst,
+iface_zonesManagement_invoke_setZoneCappedMemory(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_setZoneCappedMemory\n");
+	    "iface_zonesManagement_invoke_setZoneCappedMemory\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneMove(rad_instance_t *inst, adr_method_t *meth,
+iface_zonesManagement_invoke_zoneMove(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED:"
-	    " api_zonesManagement_invoke_zoneMove\n");
+	    " iface_zonesManagement_invoke_zoneMove\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneInstall(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneInstall(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *zonename = data_to_string(args[0]);
@@ -1272,7 +1272,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneUninstall(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneUninstall(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *zonename = data_to_string(args[0]);
@@ -1331,47 +1331,47 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneInstallP2V(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneInstallP2V(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneInstallP2V\n");
+	    "iface_zonesManagement_invoke_zoneInstallP2V\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneClone(rad_instance_t *inst, adr_method_t *meth,
+iface_zonesManagement_invoke_zoneClone(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneClone\n");
+	    "iface_zonesManagement_invoke_zoneClone\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneAttach(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneAttach(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneAttach\n");
+	    "iface_zonesManagement_invoke_zoneAttach\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneDetach(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneDetach(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneDetach\n");
+	    "iface_zonesManagement_invoke_zoneDetach\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneVerify(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneVerify(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneVerify\n");
+	    "iface_zonesManagement_invoke_zoneVerify\n");
 	return (ce_system);
 }
 
@@ -1475,7 +1475,7 @@
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneBoot(rad_instance_t *inst, adr_method_t *meth,
+iface_zonesManagement_invoke_zoneBoot(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 
@@ -1484,42 +1484,42 @@
 
 
 conerr_t
-api_zonesManagement_invoke_zoneReboot(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneReboot(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (do_zoneadmd_cmd(inst, meth, ret, args, count, error, Z_REBOOT));
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneHalt(rad_instance_t *inst, adr_method_t *meth,
+iface_zonesManagement_invoke_zoneHalt(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	return (do_zoneadmd_cmd(inst, meth, ret, args, count, error, Z_HALT));
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneIsConfigured(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneIsConfigured(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneIsConfigured\n");
+	    "iface_zonesManagement_invoke_zoneIsConfigured\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneIsInstalled(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneIsInstalled(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneIsInstalled\n");
+	    "iface_zonesManagement_invoke_zoneIsInstalled\n");
 	return (ce_system);
 }
 
 conerr_t
-api_zonesManagement_invoke_zoneIsRunning(rad_instance_t *inst,
+iface_zonesManagement_invoke_zoneIsRunning(rad_instance_t *inst,
     adr_method_t *meth, data_t **ret, data_t **args, int count, data_t **error)
 {
 	(void) fprintf(stderr, "NOT IMPLEMENTED: "
-	    "api_zonesManagement_invoke_zoneIsRunning\n");
+	    "iface_zonesManagement_invoke_zoneIsRunning\n");
 	return (ce_system);
 }
--- a/usr/src/cmd/rad/mod/zones/mod_zones.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/zones/mod_zones.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <sys/list.h>
@@ -48,7 +48,7 @@
 
 	cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.zonesManagement:type=zonesManager"),
-	    &api_zonesManagement_svr);
+	    &interface_zonesManagement_svr);
 
 	return (0);
 }
--- a/usr/src/cmd/rad/mod/zonesbridge/mod_zonesbridge.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/rad/mod/zonesbridge/mod_zonesbridge.c	Tue May 08 19:19:59 2012 -0400
@@ -81,11 +81,11 @@
 
 	(void) cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.rad.zonesbridge:type=IO"),
-	    &api_IO_svr);
+	    &interface_IO_svr);
 
 	(void) cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.rad.zonesbridge:type=Util"),
-	    &api_Util_svr);
+	    &interface_Util_svr);
 
 	token_list_create(&tlist);
 
@@ -94,7 +94,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_IO_invoke_available(rad_instance_t *inst, adr_method_t *meth,
+interface_IO_invoke_available(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	token_t *token;
@@ -116,7 +116,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_IO_invoke_close(rad_instance_t *inst, adr_method_t *meth,
+interface_IO_invoke_close(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	token_t *token;
@@ -133,7 +133,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_Util_invoke_getZones(rad_instance_t *inst, adr_method_t *meth,
+interface_Util_invoke_getZones(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	conerr_t err = ce_ok;
@@ -195,7 +195,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_IO_invoke_openConsole(rad_instance_t *inst, adr_method_t *meth,
+interface_IO_invoke_openConsole(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *zone = data_to_string(args[0]);
@@ -252,7 +252,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_IO_invoke_openRad(rad_instance_t *inst, adr_method_t *meth,
+interface_IO_invoke_openRad(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	const char *zone = data_to_string(args[0]);
@@ -330,7 +330,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_IO_invoke_read(rad_instance_t *inst, adr_method_t *meth,
+interface_IO_invoke_read(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	token_t *token;
@@ -373,7 +373,7 @@
 
 /* ARGSUSED */
 conerr_t
-api_IO_invoke_write(rad_instance_t *inst, adr_method_t *meth,
+interface_IO_invoke_write(rad_instance_t *inst, adr_method_t *meth,
     data_t **ret, data_t **args, int count, data_t **error)
 {
 	token_t *token;
--- a/usr/src/cmd/radcli/radcli.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/cmd/radcli/radcli.c	Tue May 08 19:19:59 2012 -0400
@@ -193,7 +193,8 @@
 	char *namestr = adr_name_tostr(sendmail);
 
 	rc_object_t *o = NULL;
-	if (rc_lookup_typed(rcc, sendmail, &o, &api_ServiceInfo, &err) != 0) {
+	if (rc_lookup_typed(rcc, sendmail, &o, &interface_ServiceInfo,
+	    &err) != 0) {
 		(void) fprintf(stderr, "Error looking up %s.\n", namestr);
 		goto errout;
 	}
--- a/usr/src/doc/manpage/rad.1m.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/doc/manpage/rad.1m.xml	Tue May 08 19:19:59 2012 -0400
@@ -97,7 +97,7 @@
             <manvolnum>3PAM</manvolnum>
           </citerefentry>.
 
-          When used in this way, <acronym>API</acronym>s consumed are run as the
+          When used in this way, consumed <acronym>API</acronym>s are run as the
           authenticated user.  This mode of operation is provided with both
           local consumers looking to isolate execution of their privileged
           operations and remote consumers in mind.
@@ -110,7 +110,7 @@
         <para>
           When run as an unprivileged program, rad serves solely as a bridge
           between its clients and the administrative <acronym>API</acronym>s it
-          publishes.  When used in this way, any <acronym>API</acronym>s
+          publishes.  When used in this way, any interfaces
           consumed will be run with the rights held by the rad process.
         </para>
       </listitem>
--- a/usr/src/doc/manpage/radadrgen.1.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/doc/manpage/radadrgen.1.xml	Tue May 08 19:19:59 2012 -0400
@@ -30,7 +30,7 @@
 
   <refnamediv>
     <refname>radadrgen</refname>
-    <refpurpose><acronym>API</acronym> code generator</refpurpose>
+    <refpurpose>code generator</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
@@ -127,9 +127,9 @@
     <para>
       <command>radadrgen</command> is the <acronym>ADR</acronym>
       <acronym>IDL</acronym> processing tool.  Its primary
-      purpose is to generate <acronym>API</acronym>-specific
-      language bindings for the <command>rad</command> server and
-      the various <command>rad</command> client environments.
+      purpose is to generate language bindings for the 
+      <command>rad</command> server and the various 
+      <command>rad</command> client environments.
       It can also generate documentation, and audit changes
       to interfaces for consistency with their versions.
     </para>
@@ -179,7 +179,7 @@
           </term>
           <listitem>
             <para>
-              Generate C definitions for the types and <acronym>API</acronym>s
+              Generate C definitions for the types and interfaces
               defined in the input file.  Files will be created under
               <replaceable>dir</replaceable>.
             </para>
@@ -205,9 +205,9 @@
           <listitem>
             <para>
               Don't generate separate definitions for inherited
-              <acronym>API</acronym>s.  By default, new definitions are
-              generated for inherited <acronym>API</acronym>s, replicating the
-              definitions in the inherited <acronym>API</acronym>.
+              interfaces.  By default, new definitions are
+              generated for inherited interfaces, replicating the
+              definitions in the inherited interface.
             </para>
           </listitem>
         </varlistentry>
@@ -237,7 +237,7 @@
           </term>
           <listitem>
             <para>
-              Generate Java interfaces for the types and <acronym>API</acronym>s
+              Generate Java interfaces for the types and interfaces
               defined in the input file.  The Java source tree will be created
               under <replaceable>dir</replaceable>.
             </para>
@@ -350,8 +350,8 @@
         <varlistentry>
           <term><replaceable>spec.xml</replaceable></term>
           <listitem><para>
-            The path to the <acronym>API</acronym> specification for which type
-            and <acronym>API</acronym> definitions must be generated.
+            The path to the <acronym>API</acronym> specification for 
+	    which type and interface definitions must be generated.
           </para></listitem>
         </varlistentry>
 
--- a/usr/src/doc/rad-dev/c-best-practices.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/doc/rad-dev/c-best-practices.xml	Tue May 08 19:19:59 2012 -0400
@@ -372,7 +372,7 @@
     ...
     adr_name_t *name =
         adr_name_fromstr("<emphasis role="strong">com.oracle.solaris.rad.zfs</emphasis>:type=<emphasis role="strong">ZPool</emphasis>");
-    (void) cont_insert_singleton(rad_container, name, &amp;api_ZPool_svr);</programlisting>
+    (void) cont_insert_singleton(rad_container, name, &amp;interface_ZPool_svr);</programlisting>
 
       <para>
         On the consumer side (Python):
--- a/usr/src/doc/rad-dev/c-libadr-radadrgen.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/doc/rad-dev/c-libadr-radadrgen.xml	Tue May 08 19:19:59 2012 -0400
@@ -41,37 +41,37 @@
 
     <para>
     The <option>-c</option> option produces two files,
-    <filename>api_INTERFACE.h</filename> and
-    <filename>api_INTERFACE_impl.c</filename>, where INTERFACE is the
+    <filename>api_APINAME.h</filename> and
+    <filename>api_APINAME_impl.c</filename>, where APINAME is the
     value of the <sgmltag class='attribute'>name</sgmltag> attribute of
-    the interface document's <sgmltag
-    class='element'>interface</sgmltag> element.
-    <filename>api_INTERFACE_impl.c</filename> contains the
-    implementation of the <acronym>API</acronym>s and data types
-    defined by the interface description.  It should be compiled and
+    the <acronym>API</acronym> document's <sgmltag 
+    class='element'>api</sgmltag> element.
+    <filename>api_APINAME_impl.c</filename> contains the
+    implementation of the interfaces and data types
+    defined by the <acronym>API</acronym>.  It should be compiled and
     linked with the software needing those definitions.
-    <filename>api_INTERFACE.h</filename> externs the specific symbols
-    defined by <filename>api_INTERFACE_impl.c</filename> that consumers
+    <filename>api_APINAME.h</filename> externs the specific symbols
+    defined by <filename>api_APINAME_impl.c</filename> that consumers
     will need to reference, and should be #included by those
-    consumers.  <filename>api_INTERFACE.h</filename> contains no data
+    consumers.  <filename>api_APINAME.h</filename> contains no data
     definitions itself and may be included in as many places as
     necessary.  The definitions
-    <filename>api_INTERFACE_impl.c</filename> are 100% data and are
+    <filename>api_APINAME_impl.c</filename> are 100% data and are
     statically initialized.  There are no initialization functions to
     be called.  Neither file should be modified.
     </para>
 
     <para>
     For each derived type TYPE (be it <type>enumeration</type> or
-    <type>structure</type>) defined in the interface description, a
+    <type>structure</type>) defined in the <acronym>API</acronym>, a
     <type>type_t</type> named <symbol>t__TYPE</symbol> (two
     underscores) representing that type is generated and externed by
     the header file.  If an array of that type is used anywhere in the
-    interface definition, a <type>type_t</type> named
+    <acronym>API</acronym>, a <type>type_t</type> named
     <symbol>t_array__TYPE</symbol> (one underscore, two underscores)
     representing that array type is generated and externed.  For each
-    <acronym>API</acronym> APINAME defined in the file, an
-    <type>adr_object_t</type> named <symbol>api_APINAME</symbol> is
+    interface, INTERFACE defined in the file, an
+    <type>adr_object_t</type> named <symbol>interface_INTERFACE</symbol> is
     defined and externed.
     </para>
 
@@ -90,12 +90,12 @@
     <acronym>ADR</acronym> chapter (see <xref linkend="adr.idl.example"
     />), we get two files.  One,
     <filename>api_example_impl.c</filename>, holds the implementation
-    of the GrabBag <acronym>API</acronym> and data types it depends on,
+    of the GrabBag interface and data types it depends on,
     and should be simply be compiled and linked with the GrabBag
     consumer.  The other, <filename>api_example.h</filename>, exposes
     only the relevant symbols defined by
     <filename>api_example_impl.c</filename> and should be included by
-    consumers of the <type>GrabBag</type> <acronym>API</acronym> and
+    consumers of the <type>GrabBag</type> interface and
     its related types:
     </para>
 
--- a/usr/src/doc/rad-dev/c-modules.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/doc/rad-dev/c-modules.xml	Tue May 08 19:19:59 2012 -0400
@@ -78,8 +78,8 @@
     value of the method, if any.
 </para>
 <para>
-    The entry point for a method named <type>METHOD</type> in api
-    <type>API</type> is named <type>api_API_invoke_METHOD</type>.
+    The entry point for a method named <type>METHOD</type> in interface
+    <type>INTERFACE</type> is named <type>interface_INTERFACE_invoke_METHOD</type>.
 </para>
 </listitem>
 
@@ -98,7 +98,8 @@
 </para>
 <para>
     The read entry point for an attribute named <type>ATTR</type> in
-    api <type>API</type> is named <type>api_API_read_ATTR</type>.
+    interface <type>INTERFACE</type> is named 
+    <type>interface_INTERFACE_read_ATTR</type>.
 </para>
 </listitem>
 
@@ -118,7 +119,8 @@
 </para>
 <para>
     The write entry point for an attribute named <type>ATTR</type> in
-    api <type>API</type> is named <type>api_API_write_ATTR</type>.
+    interface <type>INTERFACE</type> is named 
+    <type>interface_INTERFACE_write_ATTR</type>.
 </para>
 </listitem>
 </itemizedlist>
@@ -680,7 +682,7 @@
 
     <programlisting>
 i = instance_create("com.oracle.solaris.user:type=User,name=Kyle",
-    &amp;api_User_svr, kyle_data);
+    &amp;interface_User_svr, kyle_data);
 cont_insert(&amp;rad_container, i, error_return);
     </programlisting>
 
@@ -693,7 +695,7 @@
 
     <programlisting>
 cont_insert_singleton(&amp;rad_container,
-    "com.oracle.solaris.user:type=UserManager", &amp;api_UserManager_svr,
+    "com.oracle.solaris.user:type=UserManager", &amp;interface_UserManager_svr,
     error_return);
     </programlisting>
 
@@ -758,7 +760,7 @@
 
 	(void) cont_insert_singleton(rad_container, adr_name_fromstr(
 	    "com.oracle.solaris.user:type=UserManager"),
-	    &api_UserMgr_svr);
+	    &interface_UserMgr_svr);
 
 	return (0);
 }
--- a/usr/src/doc/rad-dev/example.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/doc/rad-dev/example.xml	Tue May 08 19:19:59 2012 -0400
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<interface xmlns="http://xmlns.oracle.com/radadr" name="example">
+<api xmlns="http://xmlns.oracle.com/radadr" name="example">
 
         <pragma domain="java" name="package" value="com.example" />
 
@@ -25,7 +25,7 @@
                 <field type="boolean" name="changed" />
         </struct>
 
-        <api name="GrabBag">
+        <interface name="GrabBag">
                 <version major="1" minor="2" stability="private" />
 
                 <method name="sqrt">
@@ -44,5 +44,5 @@
                 </property>
 
                 <event typeref="MoodStatus" name="moodswings" />
-        </api>
-</interface>
+        </interface>
+</api>
--- a/usr/src/java/adr/com/oracle/solaris/adr/API.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/API.java	Tue May 08 19:19:59 2012 -0400
@@ -20,131 +20,255 @@
  */
 
 /*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 package com.oracle.solaris.adr;
 
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
-public class API implements Definition {
+/**
+ * Represents an ADR API, which consists of interfaces and the types they
+ * reference.
+ */
+public class API {
     private String name_;
-    private Map<Stability, APIVersion> vers_;
-    private Map<String, Property> props_, allProps_;
-    private Map<String, Method> methods_, allMethods_;
-    private Map<String, Event> events_, allEvents_;
     private Doc doc_;
-    private List<API> parents_;
-    private Interface interface_;
+    private Map<String, Type> allTypes_ = new HashMap<String, Type>();
+    private Map<String, Type.ArrayType> arrayTypes_ =
+	new HashMap<String, Type.ArrayType>();
 
-    public API(String name, Map<Stability, APIVersion> vers,
-	Map<String, Property> props, Map<String, Method> methods,
-	Map<String, Event> events, List<API> parents, Doc doc) {
+    /* Public for use by ADRGen */
+    public Map<String, Type.StructType> structs_ =
+	new HashMap<String, Type.StructType>();
+    public Map<String, Type.EnumType> enums_ =
+	new HashMap<String, Type.EnumType>();
+    public Map<String, Type.UnionType> unions_ =
+	new HashMap<String, Type.UnionType>();
+    /*
+     * Use a LinkedHashMap to preserve the interface definition order
+     * and avoid forward references when an interface includes another.
+     */
+    public Map<String, Interface> ifaces_ =
+	new LinkedHashMap<String, Interface>();
 
+    /**
+     * Creates an API object.
+     *
+     * @param name the name of the API
+     */
+    public API(String name) {
 	name_ = name;
-	vers_ = vers;
-	parents_ = parents;
-	doc_ = doc;
+    }
 
-	props_ = props;
-	allProps_ = new HashMap<String, Property>(props_);
-	for (Property p : props.values())
-	    p.setAPI(this);
+    /**
+     * Obtains the name of the API.
+     *
+     * @return the name of the API.
+     */
+    public String getName() {
+	return (name_);
+    }
+
 
-	methods_ = methods;
-	allMethods_ = new HashMap<String, Method>(methods_);
-	for (Method m : methods.values())
-	    m.setAPI(this);
-
-	events_ = events;
-	allEvents_ = new HashMap<String, Event>(events_);
-	for (Event e : events.values())
-	    e.setAPI(this);
-
-	if (parents_ != null) {
-	    for (API parent : parents) {
-		allProps_.putAll(parent.getAllProps());
-		allMethods_.putAll(parent.getAllMethods());
-		allEvents_.putAll(parent.getAllEvents());
-	    }
-	}
+    /**
+     * Adds an Interface type to the API.
+     *
+     * @param iface the Interface to add
+     * @return true if successful, false if the Interface already exists
+     */
+    public boolean addInterface(Interface iface) {
+	if (ifaces_.containsKey(iface.getName()))
+		return false;
+	iface.setAPI(this);
+	ifaces_.put(iface.getName(), iface);
+	return true;
     }
 
-    public API(String name, Map<Stability, APIVersion> vers,
-	Map<String, Property> props, Map<String, Method> methods,
-	Map<String, Event> events, List<API> parents) {
-	this(name, vers, props, methods, events, parents, null);
-    }
-
-    public String getName() {
-	return name_;
+    /**
+     * Adds a structured type to the API.
+     *
+     * @param type the structured type to add
+     * @return true if successful, false if the structured type already exists
+     */
+    public boolean addType(Type.StructType type) {
+	if (allTypes_.containsKey(type.getName()))
+	    return false;
+	type.setAPI(this);
+	structs_.put(type.getName(), type);
+	allTypes_.put(type.getName(), type);
+	return true;
     }
 
-    public Map<Stability, APIVersion> getVers() {
-	return vers_;
-    }
-
-    public Map<String, Property> getProps() {
-	return props_;
-    }
-
-    public Map<String, Method> getMethods() {
-	return methods_;
-    }
-
-    public Map<String, Event> getEvents() {
-	return events_;
+    /**
+     * Adds an enumerated type to the API.
+     *
+     * @param type the enumerated type to add
+     * @return true if successful, false if the enumerated type already exists
+     */
+    public boolean addEnum(Type.EnumType type) {
+	if (allTypes_.containsKey(type.getName()))
+	    return false;
+	type.setAPI(this);
+	enums_.put(type.getName(), type);
+	allTypes_.put(type.getName(), type);
+	return true;
     }
 
-    public Map<String, Property> getAllProps() {
-	return allProps_;
-    }
-
-    public Map<String, Method> getAllMethods() {
-	return allMethods_;
-    }
-
-    public Map<String, Event> getAllEvents() {
-	return allEvents_;
-    }
-
-    public APIVersion getVersionByStability(Stability s) {
-	return vers_.get(s) != null ? vers_.get(s): APIVersion.getNone(s);
+    /**
+     * Adds a union type to the API.
+     *
+     * @param type the union type to add
+     * @return true if successful, false if the union type already exists
+     */
+    public boolean addUnion(Type.UnionType type) {
+	if (allTypes_.containsKey(type.getName()))
+	    return false;
+	type.setAPI(this);
+	unions_.put(type.getName(), type);
+	allTypes_.put(type.getName(), type);
+	return true;
     }
 
-    public Collection<API> getParents() {
-	return parents_;
-    }
-
-    public Property getProp(String name) {
-	return allProps_.get(name);
+    /**
+     * Creates an array type for the specified element type.  Returns
+     * an existing array type if one had already already been created.
+     *
+     * @param t the defined type to create an array type for
+     * @return the new or existing array type
+     */
+    public Type.ArrayType addArray(Type.DefinedType t) {
+	Type.ArrayType at = arrayTypes_.get(t.getName());
+	if (at == null) {
+	    at = new Type.ArrayType(t);
+	    arrayTypes_.put(t.getName(), at);
+	    allTypes_.put(t.getName() + "[]", at);
+	}
+	return (at);
     }
 
-    public Method getMethod(String name) {
-	return allMethods_.get(name);
+    /**
+     * Adds documentation to the API element.
+     *
+     * @param doc documentation content
+     */
+    public void setDoc(Doc doc) {
+	doc_ = doc;
     }
 
-    public Event getEvent(String name) {
-	return allEvents_.get(name);
-    }
-
+    /**
+     * Obtains the documentation associated with this API
+     * element.
+     *
+     * @return documentation content
+     */
     public Doc getDoc() {
 	return doc_;
     }
 
-    /*
-     * Definition defintions
+    /**
+     * Obtains a specific structured type by name.
+     *
+     * @param name the name of the structured type
+     * @return the structured type, or null if not found
+     */
+    public Type.StructType getStruct(String name) {
+	return structs_.get(name);
+    }
+
+    /**
+     * Obtains a specific enumerated type by name.
+     *
+     * @param name the name of the enumerated type
+     * @return the enumerated type, or null if not found
      */
-    @Override
-    public void setInterface(Interface iface) {
-	interface_ = iface;
+    public Type.EnumType getEnum(String name) {
+	return enums_.get(name);
+    }
+
+    /**
+     * Obtains a specific enumerated type by name.
+     *
+     * @param name the name of the enumerated type
+     * @return the enumerated type, or null if not found
+     */
+    public Type.UnionType getUnion(String name) {
+	return unions_.get(name);
+    }
+
+    /**
+     * Resolves a structured type or enumerated type reference.
+     *
+     * @param name the name of the structured type or enumerated type
+     * @return the structure or enumerated type, or null if not found
+     */
+    public Type getRef(String name) {
+	Type t;
+	if ((t = structs_.get(name)) != null)
+	    return t;
+	if ((t = unions_.get(name)) != null)
+	    return t;
+	return enums_.get(name);
     }
 
-    @Override
-    public Interface getInterface() {
-	return interface_;
+
+    /**
+     * Returns an unmodifiable map of Interfaces defined by the API.
+     *
+     * @return an unmodifiable map of Interfaces
+     */
+    public Map<String, Interface> getInterfaces() {
+	return Collections.unmodifiableMap(ifaces_);
+    }
+
+    /**
+     * Returns an unmodifiable collection of structured types defined by the
+     * API.
+     *
+     * @return an unmodifiable collection of structured types
+     */
+    public Collection<Type.StructType> getStructs() {
+	return Collections.unmodifiableCollection(structs_.values());
+    }
+
+    /**
+     * Returns an unmodifiable collection of enumerated types defined by the
+     * API.
+     *
+     * @return an unmodifiable collection of enumerated types
+     */
+    public Collection<Type.EnumType> getEnums() {
+	return Collections.unmodifiableCollection(enums_.values());
+    }
+
+    /**
+     * Returns an unmodifiable collection of enumerated types defined by the
+     * API.
+     *
+     * @return an unmodifiable collection of enumerated types
+     */
+    public Collection<Type.UnionType> getUnions() {
+	return Collections.unmodifiableCollection(unions_.values());
+    }
+
+    /**
+     * Returns an unmodifiable collection of array types defined by the
+     * API.
+     *
+     * @return an unmodifiable collection of array types
+     */
+    public Collection<Type.ArrayType> getArrays() {
+	/* Give me a raise! */
+	return Collections.unmodifiableCollection(arrayTypes_.values());
+    }
+
+    /**
+     * Returns an unmodifiable collection of all types defined by the
+     * API.
+     *
+     * @return an unmodifiable collection of all types
+     */
+    public Collection<Type> getAll() {
+	return Collections.unmodifiableCollection(allTypes_.values());
     }
 }
--- a/usr/src/java/adr/com/oracle/solaris/adr/APIDiff.java	Tue May 08 16:53:42 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- */
-
-package com.oracle.solaris.adr;
-
-import java.io.File;
-import java.util.*;
-import java.util.Map.Entry;
-import com.oracle.solaris.adr.adrgen.*;
-
-public class APIDiff {
-    public static int diff(Map<String, API> oldApis, Map<String, API> newApis) {
-	int err = 0;
-	for (Map.Entry<String, API> e : oldApis.entrySet()) {
-	    /*
-	     * Version checking is only applicable to api's defined
-	     * in both interfaces.
-	     */
-	    String name = e.getKey();
-	    if (newApis.containsKey(name)) {
-		Map<Stability, Diff> diffs =
-		    new EnumMap<Stability, Diff>(Stability.class);
-		diffs.put(Stability.PRIVATE, Diff.NONE);
-		diffs.put(Stability.UNCOMMITTED, Diff.NONE);
-		diffs.put(Stability.COMMITTED, Diff.NONE);
-
-		API apiOld = e.getValue();
-		API apiNew = newApis.get(name);
-
-		PropertyDiff diffp = new PropertyDiff(diffs);
-		diffp.generateDiffs(apiOld.getAllProps(),
-		    apiNew.getAllProps());
-
-		MethodDiff diffm = new MethodDiff(diffs);
-		diffm.generateDiffs(apiOld.getAllMethods(),
-		    apiNew.getAllMethods());
-
-		EventDiff diffe = new EventDiff(diffs);
-		diffe.generateDiffs(apiOld.getAllEvents(),
-		    apiNew.getAllEvents());
-
-		err = validateVersions(name, apiOld.getVers(), apiNew.getVers(),
-		    diffs);
-	    }
-	}
-	return err;
-    }
-
-    private static int validateVersions(String name,
-	Map<Stability, APIVersion> versold, Map<Stability, APIVersion> versnew,
-	Map<Stability, Diff> diffs) {
-
-	int err = 0;
-	for (Stability s: diffs.keySet()) {
-	    int major = 0, minor = 0;
-	    int newmajor = 0, newminor = 0;
-	    Diff diff = diffs.get(s);
-
-	    APIVersion vold = versold.get(s);
-	    if (vold != null) {
-		major = vold.getMajor();
-		minor = vold.getMinor();
-	    }
-	    APIVersion vnew = versnew.get(s);
-	    if (vnew != null) {
-		newmajor = vnew.getMajor();
-		newminor = vnew.getMinor();
-	    }
-
-	    if (diff == Diff.INCOMPATIBLE) {
-		major = major + 1;
-		minor = 0;
-	    } else if (diff == Diff.COMPATIBLE) {
-		minor = minor + 1;
-	    }
-
-	    if (newmajor == major && newminor == minor) {
-		    continue;
-	    }
-
-	    System.out.format("API '%s': ", name);
-	    if (vold == null && vnew == null) {
-		System.out.format("WARNING: No version information found.%n");
-		continue;
-	    } else if (newmajor > major ||
-		(newmajor == major && newminor > minor)) {
-		System.out.format("WARNING: Version number ");
-		System.out.format("greater than expected ");
-	    } else {
-		err = 1;
-		System.out.format("ERROR: Invalid version number ");
-	    }
-	    System.out.format("for committment level '%s'. ",
-		s.toString().toLowerCase());
-	    System.out.format("(Expected version: %s)%n", major + "." + minor);
-	}
-	return err;
-    }
-
-    /**
-     * Performs intrinsic validation of the given spec files, then diffs the two
-     * interfaces.  Note: this method does NOT validate against a schema.
-     *
-     * Usage: java ... <baseline.xml> <spec.xml>
-     */
-    public static void main(String[] args) {
-	CLI cli = new CLI(APIDiff.class);
-	if (args.length != 2) {
-	    cli.die(2, "exactly two spec files must be specified");
-	}
-	ADRGen[] adr = new ADRGen[2];
-	for (int i = 0; i < adr.length; i++) {
-	    File file = new File(args[i]);
-	    try {
-		adr[i] = new ADRGen(file, false);
-	    } catch (ParseException e) {
-		cli.die(1, "error parsing file %s: %s", file,
-		    e.getLocalizedMessage());
-	    }
-	}
-	APIDiff.diff(adr[0].getInterface().getAPIs(),
-	    adr[1].getInterface().getAPIs());
-    }
-}
--- a/usr/src/java/adr/com/oracle/solaris/adr/APIVersion.java	Tue May 08 16:53:42 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- */
-
-package com.oracle.solaris.adr;
-
-public class APIVersion implements Comparable<APIVersion> {
-
-    private int major_;
-    private int minor_;
-    private Stability stability_;
-
-    /*
-     * Default api versions
-     */
-    public static final APIVersion PRIVATE_VNONE =
-	new APIVersion(Stability.PRIVATE, 0, 0);
-    public static final APIVersion UNCOMMITTED_VNONE =
-	new APIVersion(Stability.UNCOMMITTED, 0, 0);
-    public static final APIVersion COMMITTED_VNONE =
-	new APIVersion(Stability.COMMITTED, 0, 0);
-
-    public APIVersion(Stability stability, int major, int minor) {
-	assert (isValid(stability, major, minor));
-	stability_ = stability;
-	major_ = major;
-	minor_ = minor;
-    }
-
-    public APIVersion(int major, int minor) {
-	this(Stability.PRIVATE, major, minor);
-    }
-
-    /*
-     * Comparable methods
-     */
-
-    @Override
-    public int compareTo(APIVersion v) throws ClassCastException {
-	if (this == v)
-	    return 0;
-	int diff = stability_.compareTo(v.getStability());
-	if (diff == 0) {
-	    diff = major_ - v.getMajor();
-	    if (diff == 0) {
-		diff = minor_ - v.getMinor();
-	    }
-	}
-	return diff;
-    }
-
-    /*
-     * Object methods
-     */
-
-    @Override
-    public boolean equals(Object o) {
-	if (this == o)
-	    return true;
-	if (!(o instanceof APIVersion))
-	    return (false);
-	APIVersion v = (APIVersion) o;
-	return (stability_ == v.getStability() &&
-	    major_ == v.getMajor() && minor_ == v.getMinor());
-    }
-
-    @Override
-    public int hashCode() {
-	int hash = 31 + (17 * major_) ^ minor_;
-	hash = hash ^ (17 * stability_.hashCode());
-	return hash;
-    }
-
-    @Override
-    public String toString() {
-	return String.format("%s(%s.%s)", stability_, major_, minor_);
-    }
-
-    /*
-     * APIVersion methods
-     */
-
-    public int getMajor() {
-	return major_;
-    }
-
-    public int getMinor() {
-	return minor_;
-    }
-
-    public Stability getStability() {
-	return stability_;
-    }
-
-    public static APIVersion getNone(Stability s) {
-	if (s == Stability.COMMITTED)
-	    return COMMITTED_VNONE;
-	else if (s == Stability.UNCOMMITTED)
-	    return UNCOMMITTED_VNONE;
-	else
-	    return PRIVATE_VNONE;
-    }
-
-    public static boolean isValid(Stability stability, int major, int minor) {
-	return ((stability == Stability.PRIVATE ||
-	    stability == Stability.UNCOMMITTED ||
-	    stability == Stability.COMMITTED) &&
-	    major >= 0 && minor >= 0);
-    }
-}
--- a/usr/src/java/adr/com/oracle/solaris/adr/Definition.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/Definition.java	Tue May 08 19:19:59 2012 -0400
@@ -26,9 +26,9 @@
 package com.oracle.solaris.adr;
 
 /**
- * A Definition is a member of an Interface, like a Feature is to an API.
+ * A Definition is a member of an API, like a Feature is to an Interface.
  */
 public interface Definition {
-    void setInterface(Interface iface);
-    Interface getInterface();
+    void setAPI(API api);
+    API getAPI();
 }
--- a/usr/src/java/adr/com/oracle/solaris/adr/Feature.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/Feature.java	Tue May 08 19:19:59 2012 -0400
@@ -27,7 +27,7 @@
 
 public abstract class Feature extends SimpleHasType {
 
-    private API api_ = null;
+    private Interface iface_ = null;
     protected String name_;
     protected Stability stability_;
     protected Doc doc_;
@@ -52,13 +52,13 @@
 	this(name, Stability.UNDEFINED, t, nullable, null);
     }
 
-    public API getAPI() {
-	return api_;
+    public Interface getInterface() {
+	return iface_;
     }
 
-    public void setAPI(API api) {
-	assert (api_ == null);
-	api_ = api;
+    public void setInterface(Interface iface) {
+	assert (iface_ == null);
+	iface_ = iface;
     }
 
     public String getName() {
--- a/usr/src/java/adr/com/oracle/solaris/adr/Interface.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/Interface.java	Tue May 08 19:19:59 2012 -0400
@@ -20,254 +20,131 @@
  */
 
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 package com.oracle.solaris.adr;
 
-import java.util.*;
-
-/**
- * Represents an ADR interface, which consists of APIs and the types they
- * reference.
- */
-public class Interface {
-    private String name_;
-    private Doc doc_;
-    private Map<String, Type> allTypes_ = new HashMap<String, Type>();
-    private Map<String, Type.ArrayType> arrayTypes_ =
-	new HashMap<String, Type.ArrayType>();
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
-    /* Public for use by ADRGen */
-    public Map<String, Type.StructType> structs_ =
-	new HashMap<String, Type.StructType>();
-    public Map<String, Type.EnumType> enums_ =
-	new HashMap<String, Type.EnumType>();
-    public Map<String, Type.UnionType> unions_ =
-	new HashMap<String, Type.UnionType>();
-    /*
-     * Use a LinkedHashMap to preserve the api definition order
-     * and avoid forward references when an api includes another api.
-     */
-    public Map<String, API> apis_ = new LinkedHashMap<String, API>();
+public class Interface implements Definition {
+    private String name_;
+    private Map<Stability, InterfaceVersion> vers_;
+    private Map<String, Property> props_, allProps_;
+    private Map<String, Method> methods_, allMethods_;
+    private Map<String, Event> events_, allEvents_;
+    private Doc doc_;
+    private List<Interface> parents_;
+    private API api_;
+
+    public Interface(String name, Map<Stability, InterfaceVersion> vers,
+	Map<String, Property> props, Map<String, Method> methods,
+	Map<String, Event> events, List<Interface> parents, Doc doc) {
 
-    /**
-     * Creates an interface object.
-     *
-     * @param name the name of the interface
-     */
-    public Interface(String name) {
 	name_ = name;
-    }
+	vers_ = vers;
+	parents_ = parents;
+	doc_ = doc;
+
+	props_ = props;
+	allProps_ = new HashMap<String, Property>(props_);
+	for (Property p : props.values())
+	    p.setInterface(this);
 
-    /**
-     * Obtains the name of the interface.
-     *
-     * @return the name of the interface.
-     */
-    public String getName() {
-	return (name_);
-    }
-
+	methods_ = methods;
+	allMethods_ = new HashMap<String, Method>(methods_);
+	for (Method m : methods.values())
+	    m.setInterface(this);
 
-    /**
-     * Adds an API type to the interface.
-     *
-     * @param api the API to add
-     * @return true if successful, false if the API already exists
-     */
-    public boolean addAPI(API api) {
-	if (apis_.containsKey(api.getName()))
-		return false;
-	api.setInterface(this);
-	apis_.put(api.getName(), api);
-	return true;
+	events_ = events;
+	allEvents_ = new HashMap<String, Event>(events_);
+	for (Event e : events.values())
+	    e.setInterface(this);
+
+	if (parents_ != null) {
+	    for (Interface parent : parents) {
+		allProps_.putAll(parent.getAllProps());
+		allMethods_.putAll(parent.getAllMethods());
+		allEvents_.putAll(parent.getAllEvents());
+	    }
+	}
     }
 
-    /**
-     * Adds a structured type to the interface.
-     *
-     * @param type the structured type to add
-     * @return true if successful, false if the structured type already exists
-     */
-    public boolean addType(Type.StructType type) {
-	if (allTypes_.containsKey(type.getName()))
-	    return false;
-	type.setInterface(this);
-	structs_.put(type.getName(), type);
-	allTypes_.put(type.getName(), type);
-	return true;
+    public Interface(String name, Map<Stability, InterfaceVersion> vers,
+	Map<String, Property> props, Map<String, Method> methods,
+	Map<String, Event> events, List<Interface> parents) {
+	this(name, vers, props, methods, events, parents, null);
+    }
+
+    public String getName() {
+	return name_;
     }
 
-    /**
-     * Adds an enumerated type to the interface.
-     *
-     * @param type the enumerated type to add
-     * @return true if successful, false if the enumerated type already exists
-     */
-    public boolean addEnum(Type.EnumType type) {
-	if (allTypes_.containsKey(type.getName()))
-	    return false;
-	type.setInterface(this);
-	enums_.put(type.getName(), type);
-	allTypes_.put(type.getName(), type);
-	return true;
+    public Map<Stability, InterfaceVersion> getVers() {
+	return vers_;
+    }
+
+    public Map<String, Property> getProps() {
+	return props_;
+    }
+
+    public Map<String, Method> getMethods() {
+	return methods_;
+    }
+
+    public Map<String, Event> getEvents() {
+	return events_;
     }
 
-    /**
-     * Adds a union type to the interface.
-     *
-     * @param type the union type to add
-     * @return true if successful, false if the union type already exists
-     */
-    public boolean addUnion(Type.UnionType type) {
-	if (allTypes_.containsKey(type.getName()))
-	    return false;
-	type.setInterface(this);
-	unions_.put(type.getName(), type);
-	allTypes_.put(type.getName(), type);
-	return true;
+    public Map<String, Property> getAllProps() {
+	return allProps_;
+    }
+
+    public Map<String, Method> getAllMethods() {
+	return allMethods_;
+    }
+
+    public Map<String, Event> getAllEvents() {
+	return allEvents_;
+    }
+
+    public InterfaceVersion getVersionByStability(Stability s) {
+	return vers_.get(s) != null ? vers_.get(s): InterfaceVersion.getNone(s);
     }
 
-    /**
-     * Creates an array type for the specified element type.  Returns
-     * an existing array type if one had already already been created.
-     *
-     * @param t the defined type to create an array type for
-     * @return the new or existing array type
-     */
-    public Type.ArrayType addArray(Type.DefinedType t) {
-	Type.ArrayType at = arrayTypes_.get(t.getName());
-	if (at == null) {
-	    at = new Type.ArrayType(t);
-	    arrayTypes_.put(t.getName(), at);
-	    allTypes_.put(t.getName() + "[]", at);
-	}
-	return (at);
+    public Collection<Interface> getParents() {
+	return parents_;
+    }
+
+    public Property getProp(String name) {
+	return allProps_.get(name);
     }
 
-    /**
-     * Adds documentation to the interface element.
-     *
-     * @param doc documentation content
-     */
-    public void setDoc(Doc doc) {
-	doc_ = doc;
+    public Method getMethod(String name) {
+	return allMethods_.get(name);
     }
 
-    /**
-     * Obtains the documentation associated with this interface
-     * element.
-     *
-     * @return documentation content
-     */
+    public Event getEvent(String name) {
+	return allEvents_.get(name);
+    }
+
     public Doc getDoc() {
 	return doc_;
     }
 
-    /**
-     * Obtains a specific structured type by name.
-     *
-     * @param name the name of the structured type
-     * @return the structured type, or null if not found
-     */
-    public Type.StructType getStruct(String name) {
-	return structs_.get(name);
-    }
-
-    /**
-     * Obtains a specific enumerated type by name.
-     *
-     * @param name the name of the enumerated type
-     * @return the enumerated type, or null if not found
+    /*
+     * Definition defintions
      */
-    public Type.EnumType getEnum(String name) {
-	return enums_.get(name);
-    }
-
-    /**
-     * Obtains a specific enumerated type by name.
-     *
-     * @param name the name of the enumerated type
-     * @return the enumerated type, or null if not found
-     */
-    public Type.UnionType getUnion(String name) {
-	return unions_.get(name);
-    }
-
-    /**
-     * Resolves a structured type or enumerated type reference.
-     *
-     * @param name the name of the structured type or enumerated type
-     * @return the structure or enumerated type, or null if not found
-     */
-    public Type getRef(String name) {
-	Type t;
-	if ((t = structs_.get(name)) != null)
-	    return t;
-	if ((t = unions_.get(name)) != null)
-	    return t;
-	return enums_.get(name);
+    @Override
+    public void setAPI(API api) {
+	api_ = api;
     }
 
-
-    /**
-     * Returns an unmodifiable map of APIs defined by the interface.
-     *
-     * @return an unmodifiable map of APIs
-     */
-    public Map<String, API> getAPIs() {
-	return Collections.unmodifiableMap(apis_);
-    }
-
-    /**
-     * Returns an unmodifiable collection of structured types defined by the
-     * interface.
-     *
-     * @return an unmodifiable collection of structured types
-     */
-    public Collection<Type.StructType> getStructs() {
-	return Collections.unmodifiableCollection(structs_.values());
-    }
-
-    /**
-     * Returns an unmodifiable collection of enumerated types defined by the
-     * interface.
-     *
-     * @return an unmodifiable collection of enumerated types
-     */
-    public Collection<Type.EnumType> getEnums() {
-	return Collections.unmodifiableCollection(enums_.values());
-    }
-
-    /**
-     * Returns an unmodifiable collection of enumerated types defined by the
-     * interface.
-     *
-     * @return an unmodifiable collection of enumerated types
-     */
-    public Collection<Type.UnionType> getUnions() {
-	return Collections.unmodifiableCollection(unions_.values());
-    }
-
-    /**
-     * Returns an unmodifiable collection of array types defined by the
-     * interface.
-     *
-     * @return an unmodifiable collection of array types
-     */
-    public Collection<Type.ArrayType> getArrays() {
-	/* Give me a raise! */
-	return Collections.unmodifiableCollection(arrayTypes_.values());
-    }
-
-    /**
-     * Returns an unmodifiable collection of all types defined by the
-     * interface.
-     *
-     * @return an unmodifiable collection of all types
-     */
-    public Collection<Type> getAll() {
-	return Collections.unmodifiableCollection(allTypes_.values());
+    @Override
+    public API getAPI() {
+	return api_;
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/adr/com/oracle/solaris/adr/InterfaceDiff.java	Tue May 08 19:19:59 2012 -0400
@@ -0,0 +1,147 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package com.oracle.solaris.adr;
+
+import java.io.File;
+import java.util.*;
+import java.util.Map.Entry;
+import com.oracle.solaris.adr.adrgen.*;
+
+public class InterfaceDiff {
+    public static int diff(Map<String, Interface> oldIfaces,
+	Map<String, Interface> newIfaces) {
+	int err = 0;
+	for (Map.Entry<String, Interface> e : oldIfaces.entrySet()) {
+	    /*
+	     * Version checking is only applicable to interfaces defined
+	     * in both APIs.
+	     */
+	    String name = e.getKey();
+	    if (newIfaces.containsKey(name)) {
+		Map<Stability, Diff> diffs =
+		    new EnumMap<Stability, Diff>(Stability.class);
+		diffs.put(Stability.PRIVATE, Diff.NONE);
+		diffs.put(Stability.UNCOMMITTED, Diff.NONE);
+		diffs.put(Stability.COMMITTED, Diff.NONE);
+
+		Interface ifaceOld = e.getValue();
+		Interface ifaceNew = newIfaces.get(name);
+
+		PropertyDiff diffp = new PropertyDiff(diffs);
+		diffp.generateDiffs(ifaceOld.getAllProps(),
+		    ifaceNew.getAllProps());
+
+		MethodDiff diffm = new MethodDiff(diffs);
+		diffm.generateDiffs(ifaceOld.getAllMethods(),
+		    ifaceNew.getAllMethods());
+
+		EventDiff diffe = new EventDiff(diffs);
+		diffe.generateDiffs(ifaceOld.getAllEvents(),
+		    ifaceNew.getAllEvents());
+
+		err = validateVersions(name, ifaceOld.getVers(),
+		    ifaceNew.getVers(), diffs);
+	    }
+	}
+	return err;
+    }
+
+    private static int validateVersions(String name,
+	Map<Stability, InterfaceVersion> versold,
+	Map<Stability, InterfaceVersion> versnew, Map<Stability, Diff> diffs) {
+
+	int err = 0;
+	for (Stability s: diffs.keySet()) {
+	    int major = 0, minor = 0;
+	    int newmajor = 0, newminor = 0;
+	    Diff diff = diffs.get(s);
+
+	    InterfaceVersion vold = versold.get(s);
+	    if (vold != null) {
+		major = vold.getMajor();
+		minor = vold.getMinor();
+	    }
+	    InterfaceVersion vnew = versnew.get(s);
+	    if (vnew != null) {
+		newmajor = vnew.getMajor();
+		newminor = vnew.getMinor();
+	    }
+
+	    if (diff == Diff.INCOMPATIBLE) {
+		major = major + 1;
+		minor = 0;
+	    } else if (diff == Diff.COMPATIBLE) {
+		minor = minor + 1;
+	    }
+
+	    if (newmajor == major && newminor == minor) {
+		    continue;
+	    }
+
+	    System.out.format("Interface '%s': ", name);
+	    if (vold == null && vnew == null) {
+		System.out.format("WARNING: No version information found.%n");
+		continue;
+	    } else if (newmajor > major ||
+		(newmajor == major && newminor > minor)) {
+		System.out.format("WARNING: Version number ");
+		System.out.format("greater than expected ");
+	    } else {
+		err = 1;
+		System.out.format("ERROR: Invalid version number ");
+	    }
+	    System.out.format("for committment level '%s'. ",
+		s.toString().toLowerCase());
+	    System.out.format("(Expected version: %s)%n", major + "." + minor);
+	}
+	return err;
+    }
+
+    /**
+     * Performs intrinsic validation of the given spec files, then diffs the two
+     * APIs.  Note: this method does NOT validate against a schema.
+     *
+     * Usage: java ... <baseline.xml> <spec.xml>
+     */
+    public static void main(String[] args) {
+	CLI cli = new CLI(InterfaceDiff.class);
+	if (args.length != 2) {
+	    cli.die(2, "exactly two spec files must be specified");
+	}
+	ADRGen[] adr = new ADRGen[2];
+	for (int i = 0; i < adr.length; i++) {
+	    File file = new File(args[i]);
+	    try {
+		adr[i] = new ADRGen(file, false);
+	    } catch (ParseException e) {
+		cli.die(1, "error parsing file %s: %s", file,
+		    e.getLocalizedMessage());
+	    }
+	}
+	InterfaceDiff.diff(adr[0].getAPI().getInterfaces(),
+	    adr[1].getAPI().getInterfaces());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/adr/com/oracle/solaris/adr/InterfaceVersion.java	Tue May 08 19:19:59 2012 -0400
@@ -0,0 +1,131 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package com.oracle.solaris.adr;
+
+public class InterfaceVersion implements Comparable<InterfaceVersion> {
+
+    private int major_;
+    private int minor_;
+    private Stability stability_;
+
+    /*
+     * Default interface versions
+     */
+    public static final InterfaceVersion PRIVATE_VNONE =
+	new InterfaceVersion(Stability.PRIVATE, 0, 0);
+    public static final InterfaceVersion UNCOMMITTED_VNONE =
+	new InterfaceVersion(Stability.UNCOMMITTED, 0, 0);
+    public static final InterfaceVersion COMMITTED_VNONE =
+	new InterfaceVersion(Stability.COMMITTED, 0, 0);
+
+    public InterfaceVersion(Stability stability, int major, int minor) {
+	assert (isValid(stability, major, minor));
+	stability_ = stability;
+	major_ = major;
+	minor_ = minor;
+    }
+
+    public InterfaceVersion(int major, int minor) {
+	this(Stability.PRIVATE, major, minor);
+    }
+
+    /*
+     * Comparable methods
+     */
+
+    @Override
+    public int compareTo(InterfaceVersion v) throws ClassCastException {
+	if (this == v)
+	    return 0;
+	int diff = stability_.compareTo(v.getStability());
+	if (diff == 0) {
+	    diff = major_ - v.getMajor();
+	    if (diff == 0) {
+		diff = minor_ - v.getMinor();
+	    }
+	}
+	return diff;
+    }
+
+    /*
+     * Object methods
+     */
+
+    @Override
+    public boolean equals(Object o) {
+	if (this == o)
+	    return true;
+	if (!(o instanceof InterfaceVersion))
+	    return (false);
+	InterfaceVersion v = (InterfaceVersion) o;
+	return (stability_ == v.getStability() &&
+	    major_ == v.getMajor() && minor_ == v.getMinor());
+    }
+
+    @Override
+    public int hashCode() {
+	int hash = 31 + (17 * major_) ^ minor_;
+	hash = hash ^ (17 * stability_.hashCode());
+	return hash;
+    }
+
+    @Override
+    public String toString() {
+	return String.format("%s(%s.%s)", stability_, major_, minor_);
+    }
+
+    /*
+     * InterfaceVersion methods
+     */
+
+    public int getMajor() {
+	return major_;
+    }
+
+    public int getMinor() {
+	return minor_;
+    }
+
+    public Stability getStability() {
+	return stability_;
+    }
+
+    public static InterfaceVersion getNone(Stability s) {
+	if (s == Stability.COMMITTED)
+	    return COMMITTED_VNONE;
+	else if (s == Stability.UNCOMMITTED)
+	    return UNCOMMITTED_VNONE;
+	else
+	    return PRIVATE_VNONE;
+    }
+
+    public static boolean isValid(Stability stability, int major, int minor) {
+	return ((stability == Stability.PRIVATE ||
+	    stability == Stability.UNCOMMITTED ||
+	    stability == Stability.COMMITTED) &&
+	    major >= 0 && minor >= 0);
+    }
+}
--- a/usr/src/java/adr/com/oracle/solaris/adr/Type.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/Type.java	Tue May 08 19:19:59 2012 -0400
@@ -55,7 +55,7 @@
     public abstract static class DefinedType extends Type
 	implements Definition {
 
-	private Interface interface_;
+	private API api_;
 	private String name_;
 
 	DefinedType(Source s, String name) {
@@ -68,13 +68,13 @@
 	}
 
 	@Override
-	public void setInterface(Interface iface) {
-	    interface_ = iface;
+	public void setAPI(API api) {
+	    api_ = api;
 	}
 
 	@Override
-	public Interface getInterface() {
-	    return interface_;
+	public API getAPI() {
+	    return api_;
 	}
     }
 
--- a/usr/src/java/adr/com/oracle/solaris/adr/adrgen/ADRGen.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/adrgen/ADRGen.java	Tue May 08 19:19:59 2012 -0400
@@ -44,7 +44,7 @@
 	new HashMap<String, Type.ForwardType>();
     Map<String, String> pragmas_ = new HashMap<String, String>();
     String basename_;
-    Interface iface_;
+    API api_;
     Document doc_;
 
     private boolean checkNullable_ = true;
@@ -115,8 +115,8 @@
 	throw new ParseException("UNKNOWN TYPE: " + type);
     }
 
-    public Interface getInterface() {
-	return iface_;
+    public API getAPI() {
+	return api_;
     }
 
     private boolean validNullable(Type t) {
@@ -140,7 +140,7 @@
 	typename = typed.getAttribute("typeref");
 	if (typename.length() > 0) {
 	    Type t;
-	    if ((t = iface_.getRef(typename)) == null &&
+	    if ((t = api_.getRef(typename)) == null &&
 		(t = forwardTypes_.get(typename)) == null) {
 		Type.ForwardType ft = new Type.ForwardType(typename);
 		forwardTypes_.put(typename, ft);
@@ -176,7 +176,7 @@
 	    return Type.getArrayType((Type.BuiltinType)t);
 
 	if (t instanceof Type.DefinedType)
-	    return iface_.addArray((Type.DefinedType)t);
+	    return api_.addArray((Type.DefinedType)t);
 
 	/* Shouldn't get here */
 	throw new ParseException("Bad array type encountered: " +
@@ -288,7 +288,7 @@
 		fields.add(f);
 	    } else if (nname.equals("include")) {
 		assert (fields.size() == 0);  /* Schema enforced */
-		parents.add(parseInclude(e, iface_.structs_));
+		parents.add(parseInclude(e, api_.structs_));
 	    } else if (!nname.equals("doc") && !nname.equals("summary")) {
 		throw new ParseException("UNKNOWN ELEMENT: " + nname);
 	    }
@@ -299,7 +299,7 @@
 
 	resolveForward(name, newtype);
 
-	if (!iface_.addType(newtype))
+	if (!api_.addType(newtype))
 	    throw new ParseException("Type redefined: " + name);
 
 	return (newtype);
@@ -347,7 +347,7 @@
 
 	resolveForward(name, newtype);
 
-	if (!iface_.addEnum(newtype))
+	if (!api_.addEnum(newtype))
 	    throw new ParseException("Type redefined: " + name);
 
 	return (newtype);
@@ -454,19 +454,19 @@
 
 	resolveForward(name, newtype);
 
-	if (!iface_.addUnion(newtype))
+	if (!api_.addUnion(newtype))
 	    throw new ParseException("Type redefined: " + name);
     }
 
-    private API parseApi(Element type) throws ParseException {
+    private Interface parseInterface(Element type) throws ParseException {
 
 	String name = type.getAttribute("name");
-	Map<Stability, APIVersion> vers =
-	    new EnumMap<Stability, APIVersion>(Stability.class);
+	Map<Stability, InterfaceVersion> vers =
+	    new EnumMap<Stability, InterfaceVersion>(Stability.class);
 	Map<String, Property> props = new TreeMap<String, Property>();
 	Map<String, Method> methods = new TreeMap<String, Method>();
 	Map<String, Event> events = new TreeMap<String, Event>();
-	List<API> parents = new LinkedList<API>();
+	List<Interface> parents = new LinkedList<Interface>();
 	Doc adoc = parseDocElements(type);
 
 	for (Element e : getChildElements(type)) {
@@ -491,13 +491,14 @@
 		}
 		if (vers.containsKey(stability)) {
 		    throw new ParseException(
-			"Multiple API versions defined for stability: "
+			"Multiple Interface versions defined for stability: "
 			    + stability);
 		}
 
-		vers.put(stability, new APIVersion(stability, major, minor));
+		vers.put(stability,
+		    new InterfaceVersion(stability, major, minor));
 	    } else if (nname.equals("include")) {
-		parents.add(parseInclude(e, iface_.apis_));
+		parents.add(parseInclude(e, api_.ifaces_));
 	    } else if (nname.equals("property")) {
 		Type t = parseTypedOrListed(e);
 		boolean nullable = isNullable(e);
@@ -521,9 +522,9 @@
 		    if ((efor == null) || (efor.trim().length() == 0))
 			efor = access;
 
-		    Type theError = parseRef(f, iface_.structs_);
+		    Type theError = parseRef(f, api_.structs_);
 		    if (theError == null)
-			theError = parseRef(f, iface_.unions_);
+			theError = parseRef(f, api_.unions_);
 		    if (theError == null)
 			theError = Type.getType(StdType.VOID);
 
@@ -584,9 +585,9 @@
 			result = new Result(t, nullable, doc);
 		    } else if (nnname.equals("error")) {
 			assert (error == null);  /* Schema enforced */
-			Type t = parseRef(f, iface_.structs_);
+			Type t = parseRef(f, api_.structs_);
 			if (t == null)
-			    t = parseRef(f, iface_.unions_);
+			    t = parseRef(f, api_.unions_);
 			Type etype = t != null ? t : Type.getType(StdType.VOID);
 			Doc doc = parseDocElements(f);
 			error = new ADRError(etype, doc);
@@ -615,11 +616,12 @@
 	    }
 	}
 
-	API api = new API(name, vers, props, methods, events, parents, adoc);
-	if (!iface_.addAPI(api))
-	    throw new ParseException("API redefined: " + name);
+	Interface iface = new Interface(name, vers, props, methods,
+	    events, parents, adoc);
+	if (!api_.addInterface(iface))
+	    throw new ParseException("Interface redefined: " + name);
 
-	return (api);
+	return (iface);
     }
 
     private void parsePragma(Element pragma) {
@@ -711,8 +713,8 @@
 	}
 
 	Element docelement = doc_.getDocumentElement();
-	iface_ = new Interface(docelement.getAttribute("name"));
-	iface_.setDoc(parseDocElements(docelement));
+	api_ = new API(docelement.getAttribute("name"));
+	api_.setDoc(parseDocElements(docelement));
 
 	/* XXX: get data from document element */
 
@@ -725,8 +727,8 @@
 		parseEnum(e);
 	    } else if (nname.equals("union")) {
 		parseUnion(e);
-	    } else if (nname.equals("api")) {
-		parseApi(e);
+	    } else if (nname.equals("interface")) {
+		parseInterface(e);
 	    } else if (nname.equals("pragma")) {
 		parsePragma(e);
 	    } else if (!nname.equals("doc") && !nname.equals("summary")) {
--- a/usr/src/java/adr/com/oracle/solaris/adr/adrgen/CGenerator.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/adrgen/CGenerator.java	Tue May 08 19:19:59 2012 -0400
@@ -67,14 +67,14 @@
 	}
     }
 
-    static void generateVersions(PrintStream impl, API api) {
-	APIVersion v = api.getVersionByStability(Stability.PRIVATE);
+    static void generateVersions(PrintStream impl, Interface iface) {
+	InterfaceVersion v = iface.getVersionByStability(Stability.PRIVATE);
 	impl.format("    { { %s, %d, %d },", toStabilityStr(Stability.PRIVATE),
 	    v.getMajor(), v.getMinor());
-	v = api.getVersionByStability(Stability.UNCOMMITTED);
+	v = iface.getVersionByStability(Stability.UNCOMMITTED);
 	impl.format(" { %s, %d, %d },", toStabilityStr(Stability.UNCOMMITTED),
 	    v.getMajor(), v.getMinor());
-	v = api.getVersionByStability(Stability.COMMITTED);
+	v = iface.getVersionByStability(Stability.COMMITTED);
 	impl.format(" { %s, %d, %d } },\n", toStabilityStr(Stability.COMMITTED),
 	    v.getMajor(), v.getMinor());
     }
@@ -196,8 +196,8 @@
     static void generate(ADRGen p, String outDir, boolean server, boolean stubs,
 	boolean common) throws FileNotFoundException {
 
-	Interface iface = p.iface_;
-	Map<String, API> apis = iface.getAPIs();
+	API api = p.api_;
+	Map<String, Interface> ifaces = api.getInterfaces();
 	String header_name = "api_" + p.basename_ + ".h";
 	PrintStream o_header = new PrintStream(new File(outDir, header_name));
 	PrintStream o_impl = new PrintStream(
@@ -209,16 +209,16 @@
 	for (Type.ArrayType t : Type.BUILTIN_ARRAYS.values())
 	    setTargetName(t, "array_" + getTargetName(t.getType()));
 
-	for (Type.StructType t : iface.getStructs())
+	for (Type.StructType t : api.getStructs())
 	    setTargetName(t, "_" + t.getName());
 
-	for (Type.UnionType t : iface.getUnions())
+	for (Type.UnionType t : api.getUnions())
 	    setTargetName(t, "_" + t.getName());
 
-	for (Type.EnumType t : iface.getEnums())
+	for (Type.EnumType t : api.getEnums())
 	    setTargetName(t, "_" + t.getName());
 
-	for (Type.ArrayType t : iface.getArrays())
+	for (Type.ArrayType t : api.getArrays())
 	    setTargetName(t, "array_" + getTargetName(t.getType()));
 
 	o_header.format("#include <rad/adr.h>\n\n");
@@ -230,7 +230,7 @@
 	o_impl.format("/* LINTLIBRARY */\n\n");
 	o_impl.format("#define\tCOUNT(x)\t(sizeof (x) / sizeof (x[0]))\n\n");
 
-	for (Type t : iface.getAll()) {
+	for (Type t : api.getAll()) {
 	    if (t instanceof Type.StructType) {
 		generateStruct(o_header, o_impl, (Type.StructType)t);
 	    } else if (t instanceof Type.ArrayType) {
@@ -248,34 +248,34 @@
 	List<String> writers = new LinkedList<String>();
 
 	/*
-	 * API naming conventions
+	 * Interface naming conventions
 	 *
 	 * Functions:
-	 * api_name_read_aname
-	 * api_name_write_aname
-	 * api_name_invoke_mname
+	 * interface_name_read_aname
+	 * interface_name_write_aname
+	 * interface_name_invoke_mname
 	 *
 	 * Types:
-	 * adr_attribute_t api_name_attribute_aname
-	 * adr_attribute_t *api_name_attributes[]
+	 * adr_attribute_t interface_name_attribute_aname
+	 * adr_attribute_t *interface_name_attributes[]
 	 *
-	 * parameter_t api_name_params_mname[]
-	 * adr_method_t api_name_method_mname
-	 * adr_method_t *api_name_methods[]
+	 * parameter_t interface_name_params_mname[]
+	 * adr_method_t interface_name_method_mname
+	 * adr_method_t *interface_name_methods[]
 	 *
-	 * (Below isn't an array of pointers, no api_name_event_ename)
-	 * eventtype_t api_name_events[]
+	 * (Below isn't an array of pointers, no interface_name_event_ename)
+	 * eventtype_t interface_name_events[]
 	 *
 	 * Parents:
-	 * adr_object_t *api_name_parents[];
+	 * adr_object_t *interface_name_parents[];
 	 *
-	 * adr_object_t api_name
-	 * rad_object_t api_name_svr
+	 * adr_object_t interface_name
+	 * rad_object_t interface_name_svr
 	 */
 
-	/* XXX: need to require api/feature names be "tame". */
+	/* XXX: need to require interface/feature names be "tame". */
 	/* XXX: Should keep readers/writers/invokers sorted */
-	for (API api : iface.getAPIs().values()) {
+	for (Interface iface : api.getInterfaces().values()) {
 	    List<String> myinvokers = new LinkedList<String>();
 	    List<String> myreaders = new LinkedList<String>();
 	    List<String> mywriters = new LinkedList<String>();
@@ -283,15 +283,16 @@
 	     * First, define attributes
 	     */
 	    List<String> myprops = new LinkedList<String>();
-	    for (Property prop : api.getAllProps().values()) {
+	    for (Property prop : iface.getAllProps().values()) {
 		String writefunc = NULLSTR;
 		String readfunc = writefunc;
-		boolean mine = common ? prop.getAPI() == api : true;
-		String apiname = mine ? api.getName() : prop.getAPI().getName();
+		boolean mine = common ? prop.getInterface() == iface : true;
+		String ifacename = mine ? iface.getName() :
+		    prop.getInterface().getName();
 
 		if (server && prop.isWritable()) {
-		    writefunc = String.format("api_%s_write_%s",
-			apiname, prop.getName());
+		    writefunc = String.format("interface_%s_write_%s",
+			ifacename, prop.getName());
 		    mywriters.add(writefunc);
 
 		    if (mine) {
@@ -304,8 +305,8 @@
 		}
 
 		if (server && prop.isReadable()) {
-		    readfunc = String.format("api_%s_read_%s",
-			apiname, prop.getName());
+		    readfunc = String.format("interface_%s_read_%s",
+			ifacename, prop.getName());
 		    myreaders.add(readfunc);
 
 		    if (mine) {
@@ -318,9 +319,9 @@
 		}
 
 		if (mine) {
-		    o_impl.format(
-			"static adr_attribute_t api_%s_attribute_%s = {\n",
-			apiname, prop.getName());
+		    o_impl.format("static adr_attribute_t " +
+			"interface_%s_attribute_%s = {\n",
+			 ifacename, prop.getName());
 		    o_impl.format("    \"%s\", %s, &t_%s, %s,\n" +
 			"    %s, %s, %s, %s\n",
 			prop.getName(),
@@ -333,13 +334,13 @@
 			toBoolean(prop.isWritable()));
 		    o_impl.format("};\n\n");
 		}
-		myprops.add(String.format("api_%s_attribute_%s",
-		    apiname, prop.getName()));
+		myprops.add(String.format("interface_%s_attribute_%s",
+		    ifacename, prop.getName()));
 	    }
 
 	    if (server && mywriters.size() > 0) {
-		o_impl.format("static attr_write_t api_%s_write[] = {\n",
-		    api.getName());
+		o_impl.format("static attr_write_t interface_%s_write[] = {\n",
+		    iface.getName());
 
 		for (String writer : mywriters) {
 		    if (writer == null)
@@ -351,8 +352,8 @@
 	    }
 
 	    if (server && myreaders.size() > 0) {
-		o_impl.format("static attr_read_t api_%s_read[] = {\n",
-		    api.getName());
+		o_impl.format("static attr_read_t interface_%s_read[] = {\n",
+		    iface.getName());
 
 		for (String reader : myreaders) {
 		    if (reader == null)
@@ -366,7 +367,8 @@
 	    String nattributes = "0";
 	    String attributes = NULLSTR;
 	    if (myprops.size() > 0) {
-		attributes = String.format("api_%s_attributes", api.getName());
+		attributes = String.format("interface_%s_attributes",
+		    iface.getName());
 		nattributes = String.format("COUNT(%s)", attributes);
 		o_impl.format("static adr_attribute_t *%s[] = {\n", attributes);
 		for (String prop : myprops)
@@ -378,12 +380,12 @@
 	     * Second define methods
 	     */
 	    List<String> mymethods = new LinkedList<String>();
-	    for (Method method : api.getAllMethods().values()) {
-		boolean mine = common ? method.getAPI() == api : true;
-		String apiname = mine ? api.getName() :
-		    method.getAPI().getName();
-		String mfunc = String.format("api_%s_invoke_%s",
-		    apiname, method.getName());
+	    for (Method method : iface.getAllMethods().values()) {
+		boolean mine = common ? method.getInterface() == iface : true;
+		String ifacename = mine ? iface.getName() :
+		    method.getInterface().getName();
+		String mfunc = String.format("interface_%s_invoke_%s",
+		    ifacename, method.getName());
 		myinvokers.add(mfunc);
 
 		if (mine) {
@@ -392,8 +394,8 @@
 
 		    String paramname = NULLSTR;
 		    if (method.getArguments().size() > 0) {
-			paramname = String.format("api_%s_params_%s",
-			    apiname, method.getName());
+			paramname = String.format("interface_%s_params_%s",
+			    ifacename, method.getName());
 			o_impl.format("static adr_parameter_t %s[] = {\n",
 			    paramname);
 			for (Argument arg : method.getArguments())
@@ -403,8 +405,9 @@
 			o_impl.format("};\n");
 		    }
 
-		    o_impl.format("static adr_method_t api_%s_method_%s = {\n",
-			apiname, method.getName());
+		    o_impl.format(
+			"static adr_method_t interface_%s_method_%s = {\n",
+			ifacename, method.getName());
 		    o_impl.format(
 			"    \"%s\", %s, %d, &t_%s, %s,\n    %s, %s\n",
 			method.getName(),
@@ -417,13 +420,13 @@
 		    invokers.add(mfunc);
 		}
 
-		mymethods.add(String.format("api_%s_method_%s",
-		    apiname, method.getName()));
+		mymethods.add(String.format("interface_%s_method_%s",
+		    ifacename, method.getName()));
 	    }
 
 	    if (server && myinvokers.size() > 0) {
-		o_impl.format("static meth_invoke_t api_%s_invoke[] = {\n",
-		    api.getName());
+		o_impl.format("static meth_invoke_t " +
+		    "interface_%s_invoke[] = {\n", iface.getName());
 		for (String invoker : myinvokers)
 		    o_impl.format("    &%s,\n", invoker);
 		o_impl.format("};\n");
@@ -432,7 +435,8 @@
 	    String nmethods = "0";
 	    String methods = NULLSTR;
 	    if (mymethods.size() > 0) {
-		methods = String.format("api_%s_methods", api.getName());
+		methods = String.format("interface_%s_methods",
+		    iface.getName());
 		nmethods = String.format("COUNT(%s)", methods);
 		o_impl.format("static adr_method_t *%s[] = {\n", methods);
 		for (String method : mymethods)
@@ -445,11 +449,11 @@
 	     */
 	    String nevents = "0";
 	    String events = NULLSTR;
-	    if (api.getAllEvents().size() > 0) {
-		events = String.format("api_%s_events", api.getName());
+	    if (iface.getAllEvents().size() > 0) {
+		events = String.format("interface_%s_events", iface.getName());
 		nevents = String.format("COUNT(%s)", events);
 		o_impl.format("static adr_event_t %s[] = {\n", events);
-		for (Event event : api.getAllEvents().values())
+		for (Event event : iface.getAllEvents().values())
 		    o_impl.format("    { \"%s\", %s, &t_%s },\n",
 			event.getName(),
 			toStabilityStr(event.getStability()),
@@ -462,23 +466,25 @@
 	     */
 	    String nparents = "0";
 	    String parents = NULLSTR;
-	    if (api.getParents().size() > 0) {
-		parents = String.format("api_%s_parents", api.getName());
+	    if (iface.getParents().size() > 0) {
+		parents = String.format("interface_%s_parents",
+		    iface.getName());
 		nparents = String.format("COUNT(%s)", parents);
 		o_impl.format("static adr_object_t *%s[] = {\n", parents);
-		for (API papi : api.getParents())
-		    o_impl.format("    &api_%s,\n", papi.getName());
+		for (Interface piface : iface.getParents())
+		    o_impl.format("    &interface_%s,\n", piface.getName());
 		o_impl.format("};\n\n");
 	    }
 
 	    /*
-	     * Last, define api
+	     * Last, define interface
 	     */
-	    o_header.format("extern adr_object_t api_%s;\n", api.getName());
-	    o_impl.format("adr_object_t api_%s = {\n", api.getName());
+	    o_header.format("extern adr_object_t interface_%s;\n",
+		iface.getName());
+	    o_impl.format("adr_object_t interface_%s = {\n", iface.getName());
+	    o_impl.format("    \"%s\",\n", api.getName());
 	    o_impl.format("    \"%s\",\n", iface.getName());
-	    o_impl.format("    \"%s\",\n", api.getName());
-	    generateVersions(o_impl, api);
+	    generateVersions(o_impl, iface);
 	    o_impl.format("    %s,\n", nattributes);
 	    o_impl.format("    %s,\n", nmethods);
 	    o_impl.format("    %s,\n", nevents);
@@ -490,20 +496,22 @@
 	    o_impl.format("};\n\n");
 
 	    if (server) {
-		o_header.format("extern rad_object_t api_%s_svr;\n",
-		    api.getName());
-		o_impl.format("rad_object_t api_%s_svr = {\n", api.getName());
-		o_impl.format("    &api_%s,\n", api.getName());
+		o_header.format("extern rad_object_t interface_%s_svr;\n",
+		    iface.getName());
+		o_impl.format("rad_object_t interface_%s_svr = {\n",
+		    iface.getName());
+		o_impl.format("    &interface_%s,\n", iface.getName());
 		if (myinvokers.size() > 0)
-		    o_impl.format("    api_%s_invoke,\n", api.getName());
+		    o_impl.format("    interface_%s_invoke,\n",
+		    iface.getName());
 		else
 		    o_impl.format("    NULL,\n");
 		if (mywriters.size() > 0)
-		    o_impl.format("    api_%s_write,\n", api.getName());
+		    o_impl.format("    interface_%s_write,\n", iface.getName());
 		else
 		    o_impl.format("    NULL,\n");
 		if (myreaders.size() > 0)
-		    o_impl.format("    api_%s_read\n", api.getName());
+		    o_impl.format("    interface_%s_read\n", iface.getName());
 		else
 		    o_impl.format("    NULL\n");
 		o_impl.format("};\n\n");
@@ -514,7 +522,7 @@
 	    return;
 
 	PrintStream o_stubs = new PrintStream(
-	    new File(outDir, "api_" + p.basename_ + "_stubs.c"));
+	    new File(outDir, "mod_" + p.basename_ + "_stubs.c"));
 	o_stubs.format("#include <stdio.h>\n");
 	o_stubs.format("#include <rad/adr.h>\n\n");
 	o_stubs.format("#include <rad/adr_object.h>\n\n");
--- a/usr/src/java/adr/com/oracle/solaris/adr/adrgen/JGenerator.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/com/oracle/solaris/adr/adrgen/JGenerator.java	Tue May 08 19:19:59 2012 -0400
@@ -46,7 +46,7 @@
     private static final String COMPOSITE_DATA =
 	"javax.management.openmbean.CompositeData";
     private static final String STAB_ANN =
-	"com.oracle.solaris.rad.ApiStability";
+	"com.oracle.solaris.rad.InterfaceStability";
     private static final String STAB_ENUM =
 	"com.oracle.solaris.adr.Stability";
     private static final String VERSIONS_ANN =
@@ -99,38 +99,38 @@
     }
 
     private ADRGen parser_;
-    private Interface iface_;
+    private API api_;
     private String package_ = null;
     private String dir_ = null;
 
     JGenerator(ADRGen p, String dir) {
 	parser_ = p;
-	iface_ = p.iface_;
+	api_ = p.api_;
 	String pkg = p.pragmas_.get(DOMAIN + ":" + PRAGMA_PACKAGE);
 	if (pkg == null) {
-	    System.err.println("No package defined for interface \"" +
-		iface_.getName() + "\".");
+	    System.err.println("No package defined for api \"" +
+		api_.getName() + "\".");
 	    System.err.println("Creating subpackage of root package.");
-	    package_ = iface_.getName();
+	    package_ = api_.getName();
 	} else {
-	    // package_ = pkg + "." + iface_.getName();
+	    // package_ = pkg + "." + api_.getName();
 	    package_ = pkg;
 	}
 	dir_ = dir + File.separator + package_.replaceAll("\\.", "/");
     }
 
-    private void generateVersions(PrintStream out, API api) {
-	Map<Stability, APIVersion> vers = api.getVers();
+    private void generateVersions(PrintStream out, Interface iface) {
+	Map<Stability, InterfaceVersion> vers = iface.getVers();
 	if (vers != null) {
 	    int i = 0;
 	    int num = vers.size();
 	    String indent = "    ";
 	    out.format("@%s(\n", VERSIONS_ANN);
-	    out.format("%sinterfaceName = \"%s\",\n", indent,
-		iface_.getName());
-	    out.format("%sapiName = \"%s\",\n", indent, api.getName());
+	    out.format("%sapiName = \"%s\",\n", indent,
+		api_.getName());
+	    out.format("%sinterfaceName = \"%s\",\n", indent, iface.getName());
 	    out.format("%sversions = {\n", indent);
-	    for (APIVersion v : vers.values()) {
+	    for (InterfaceVersion v : vers.values()) {
 		out.format("%s@%s(major=%d, minor=%d,\n", indent, VERSION_ANN,
 		    v.getMajor(), v.getMinor());
 		out.format("%sstability=%s.%s)%s", indent, STAB_ENUM,
@@ -186,8 +186,8 @@
     private void generateStructImpl(Type.StructType t)
 	throws FileNotFoundException {
 
-	String iface = t.getName();
-	String n = iface + "Impl";
+	String api = t.getName();
+	String n = api + "Impl";
 	PrintStream out = newFile(n);
 
 	List<Field> fields;
@@ -197,7 +197,7 @@
 	if (pcount == 0 || pcount > 1) {
 	    superargs = null;
 	    conargs = fields = t.getAllFields();
-	    out.format("public class %s implements %s {\n", n, iface);
+	    out.format("public class %s implements %s {\n", n, api);
 	} else {
 	    /* We can extend a single parent's implementation */
 	    superargs = t.getAllFields();
@@ -206,7 +206,7 @@
 	    fields = t.getFields();
 	    Type.StructType tt = t.getParents().get(0);
 	    out.format("public class %s extends %s\n    implements %s {\n\n",
-		n, getTargetName(tt) + "Impl", iface);
+		n, getTargetName(tt) + "Impl", api);
 	}
 
 	for (Field f : fields)
@@ -512,46 +512,46 @@
 	    setTargetName(t,
 		"java.util.List<" + getTargetRefName(t.getType()) + ">");
 
-	for (Type.StructType t : iface_.getStructs())
+	for (Type.StructType t : api_.getStructs())
 	    setTargetName(t, t.getName());
 
-	for (Type.UnionType t : iface_.getUnions())
+	for (Type.UnionType t : api_.getUnions())
 	    setTargetName(t, t.getName());
 
-	for (Type.EnumType t : iface_.getEnums())
+	for (Type.EnumType t : api_.getEnums())
 	    setTargetName(t, t.getFallback() == null ?
 		t.getName() : "Flex" + t.getName());
 
-	for (Type.ArrayType t : iface_.getArrays())
+	for (Type.ArrayType t : api_.getArrays())
 	    setTargetName(t,
 		"java.util.List<" + getTargetRefName(t.getType()) + ">");
 
 	new File(dir_).mkdirs();
 
-	for (Type.StructType t : iface_.getStructs()) {
+	for (Type.StructType t : api_.getStructs()) {
 	    generateStruct(t);
 	    if (impl)
 		generateStructImpl(t);
 	}
 
-	for (Type.UnionType t : iface_.getUnions())
+	for (Type.UnionType t : api_.getUnions())
 	    generateUnion(t);
 
-	for (Type.EnumType t : iface_.getEnums())
+	for (Type.EnumType t : api_.getEnums())
 	    generateEnum(t);
 
-	/* XXX: need to require api/feature names be "tame". */
-	for (API api : iface_.getAPIs().values()) {
-	    String mxname = upperFirst(api.getName()) + "MXBean";
+	/* XXX: need to require interface/feature names be "tame". */
+	for (Interface iface : api_.getInterfaces().values()) {
+	    String mxname = upperFirst(iface.getName()) + "MXBean";
 	    PrintStream out = newFile(mxname);
-	    generateVersions(out, api);
+	    generateVersions(out, iface);
 	    out.format("public interface %s {\n", mxname);
 
 
 	    /*
 	     * First, define attributes
 	     */
-	    for (Property prop : api.getAllProps().values()) {
+	    for (Property prop : iface.getAllProps().values()) {
 		String readEx = toThrows(prop.getReadErrorType(), pedant);
 		String writeEx = toThrows(prop.getWriteErrorType(), pedant);
 
@@ -570,13 +570,13 @@
 			prop.getName(), writeEx);
 		}
 	    }
-	    if (api.getAllProps().size() > 0)
+	    if (iface.getAllProps().size() > 0)
 		out.println();
 
 	    /*
 	     * Second define methods
 	     */
-	    for (Method method : api.getAllMethods().values()) {
+	    for (Method method : iface.getAllMethods().values()) {
 		out.format("    @%s(\n\t%s.%s)\n", STAB_ANN, STAB_ENUM,
 		    method.getStability());
 		out.format("    %s %s(", getTypedName(method.getResult()),
--- a/usr/src/java/adr/xml/rng/radadr-doc.rng.1	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/rng/radadr-doc.rng.1	Tue May 08 19:19:59 2012 -0400
@@ -84,9 +84,9 @@
         <!-- external link -->
         <attribute name="url" />
 
-        <!-- internal link to an api, api method, or api property -->
+        <!-- internal link to an interface, i/f method, or i/f property -->
         <group>
-          <attribute name="api" />
+          <attribute name="interface" />
           <optional>
             <choice>
               <attribute name="property" />
--- a/usr/src/java/adr/xml/rng/radadr.rng.1	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/rng/radadr.rng.1	Tue May 08 19:19:59 2012 -0400
@@ -337,8 +337,8 @@
     </element>
   </define>
 
-  <define name="element_api">
-    <element name="api">
+  <define name="element_interface">
+    <element name="interface">
       <attribute name="name" />
       <ref name="doc-optional" />
       <!-- only 1 version per stability level is permitted -->
@@ -366,7 +366,7 @@
   </define>
 
   <start>
-    <element name="interface">
+    <element name="api">
       <attribute name="name" />
       <ref name="doc-optional" />
       <oneOrMore>
@@ -375,7 +375,7 @@
           <ref name="element_type" />
           <ref name="element_enum" />
           <ref name="element_union" />
-          <ref name="element_api" />
+          <ref name="element_interface" />
         </choice>
       </oneOrMore>
     </element>
--- a/usr/src/java/adr/xml/style/locale/radadr-strings.xml	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/style/locale/radadr-strings.xml	Tue May 08 19:19:59 2012 -0400
@@ -40,82 +40,82 @@
     Description
   </string>
 
-  <!-- interface -->
-  <string name='docbook.interface.title'>
-    Interface Documentation: {1}
-  </string>
-  <string name='docbook.interface.label'>
-    interface {1}
+  <!-- api -->
+  <string name='docbook.api.title'>
+    API Documentation: {1}
   </string>
-
-  <!-- api -->
-  <string name="docbook.api.title">
-    APIs
-  </string>
-  <string name="docbook.api.label">
+  <string name='docbook.api.label'>
     api {1}
   </string>
-  <string name="docbook.api.inheritance.title">
+
+  <!-- interface -->
+  <string name="docbook.interface.title">
+    Interfaces
+  </string>
+  <string name="docbook.interface.label">
+    interface {1}
+  </string>
+  <string name="docbook.interface.inheritance.title">
     Inheritance Hierarchy
   </string>
-  <string name="docbook.api.version.header">
+  <string name="docbook.interface.version.header">
     Version:
   </string>
-  <string name="docbook.api.id.warning">
-    warning: line {1}: id "{2}" generated for non-existent api: {3}
+  <string name="docbook.interface.id.warning">
+    warning: line {1}: id "{2}" generated for non-existent interface: {3}
   </string>
-  <string name="docbook.api.property.header">
+  <string name="docbook.interface.property.header">
     {1} Properties
   </string>
-  <string name="docbook.api.property.id.warning">
-    warning: line {1}: id "{2}" generated for non-existent api property: {3}.{4}
+  <string name="docbook.interface.property.id.warning">
+    warning: line {1}: id "{2}" generated for non-existent interface property: {3}.{4}
   </string>
-  <string name="docbook.api.property.ro">
+  <string name="docbook.interface.property.ro">
     read-only
   </string>
-  <string name="docbook.api.property.wo">
+  <string name="docbook.interface.property.wo">
     write-only
   </string>
-  <string name="docbook.api.property.rw">
+  <string name="docbook.interface.property.rw">
     read-write
   </string>
-  <string name="docbook.api.property.error.header.ro">
+  <string name="docbook.interface.property.error.header.ro">
     Read Error:
   </string>
-  <string name="docbook.api.property.error.header.wo">
+  <string name="docbook.interface.property.error.header.wo">
     Write Error:
   </string>
-  <string name="docbook.api.property.error.header.rw">
+  <string name="docbook.interface.property.error.header.rw">
     Read-Write Error:
   </string>
-  <string name='docbook.api.property.inherited.header'>
+  <string name='docbook.interface.property.inherited.header'>
     Inherited Properties ({1}):
   </string>
-  <string name='docbook.api.property.inherited.none'>
+  <string name='docbook.interface.property.inherited.none'>
     (none)
   </string>
-  <string name="docbook.api.method.header">
+  <string name="docbook.interface.method.header">
     {1} Methods
   </string>
-  <string name="docbook.api.method.argument.header">
+  <string name="docbook.interface.method.argument.header">
     Arguments:
   </string>
-  <string name="docbook.api.method.result.header">
+  <string name="docbook.interface.method.result.header">
     Result:
   </string>
-  <string name="docbook.api.method.error.header">
+  <string name="docbook.interface.method.error.header">
     Error:
   </string>
-  <string name='docbook.api.method.inherited.header'>
+  <string name='docbook.interface.method.inherited.header'>
     Inherited Methods ({1}):
   </string>
-  <string name='docbook.api.method.inherited.none'>
+  <string name='docbook.interface.method.inherited.none'>
     (none)
   </string>
-  <string name="docbook.api.method.id.warning">
-    warning: line {1}: id "{2}" generated for non-existent api method: {3}.{4}
+  <string name="docbook.interface.method.id.warning">
+    warning: line {1}: id "{2}" generated for non-existent interface method: {3}.{4}
   </string>
-  <string name="docbook.api.event.header">
+  <string name="docbook.interface.event.header">
     {1} Events
   </string>
 
--- a/usr/src/java/adr/xml/style/radadr-docbook-common.xsl	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/style/radadr-docbook-common.xsl	Tue May 08 19:19:59 2012 -0400
@@ -196,7 +196,7 @@
     </xsl:if>
   </xsl:template>
 
-  <!-- API hierarchy characters -->
+  <!-- Interface hierarchy characters -->
   <xsl:variable name="hierarchy.boxdr">.</xsl:variable>
   <xsl:variable name="hierarchy.boxh">-</xsl:variable>
   <xsl:variable name="hierarchy.boxv">|</xsl:variable>
@@ -204,25 +204,25 @@
   <xsl:variable name="hierarchy.rarr">&gt;</xsl:variable>
 
   <!--
-   * Output an inheritance tree for the given api or struct.  Since these elements
+   * Output an inheritance tree for the given interface or struct.  Since these elements
    * support multiple inheritance, the tree must be drawn slightly differently
    * than, say, a Javadoc class hierarchy.
    *
-   *  .-> api threeletterwords
+   *  .-> interface threeletterwords
    *  |
-   *  |   .-> api familymember
+   *  |   .-> interface familymember
    *  |   |
-   *  +-> api pet
+   *  +-> interface pet
    *  |
-   *  |       .-> api lifeform
+   *  |       .-> interface lifeform
    *  |       |
-   *  |   .-> api animal
+   *  |   .-> interface animal
    *  |   |
-   *  +-> api mammal
+   *  +-> interface mammal
    *  |
-   *  api dog
+   *  interface dog
    -->
-  <xsl:template match="adr:api|adr:struct" mode="hierarchy">
+  <xsl:template match="adr:interface|adr:struct" mode="hierarchy">
     <xsl:param name="prefix"/>
     <xsl:param name="position" select='0'/>
 
@@ -282,7 +282,7 @@
   </xsl:template>
 
   <!-- Default presentation of hierarchy nodes -->
-  <xsl:template match="adr:api" mode="hierarchy-node">
+  <xsl:template match="adr:interface" mode="hierarchy-node">
     <xsl:param name="position"/>
     <xsl:choose>
       <xsl:when test="$position = 0">
@@ -293,7 +293,7 @@
       <xsl:otherwise>
         <link>
           <xsl:attribute name="linkend">
-            <xsl:call-template name="id-generate-api"/>
+            <xsl:call-template name="id-generate-interface"/>
           </xsl:attribute>
           <xsl:apply-templates select="." mode="label"/>
         </link>
@@ -333,12 +333,12 @@
 
   <!--
    * Output sections listing the members (fields of structs, properties of
-   * apis, methods of apis, etc.) of inherited entities.  Each member is
+   * interfaces, methods of interfaces, etc.) of inherited entities.  Each member is
    * hyperlinked to the actual definition of that member elsewhere in the
    * document.  When no members of the given type are found, the noneRes
    * resource is used to display a "none" label.
    -->
-  <xsl:template match="adr:api|adr:struct" mode="member-hierarchy">
+  <xsl:template match="adr:interface|adr:struct" mode="member-hierarchy">
     <xsl:param name="level" select='0'/>
     <xsl:param name="member"/>
     <xsl:param name="noneRes"/>
@@ -381,14 +381,14 @@
     </xsl:if>
   </xsl:template>
 
-  <!-- Present an api header to appear in a member hierarchy section -->
-  <xsl:template match="adr:api" mode="member-hierarchy-header">
+  <!-- Present an interface header to appear in a member hierarchy section -->
+  <xsl:template match="adr:interface" mode="member-hierarchy-header">
     <xsl:param name="member"/>
     <xsl:call-template name="header">
       <xsl:with-param name="node">
         <xsl:call-template name="getString">
           <xsl:with-param name="name"
-            select="concat('docbook.api.', $member, '.inherited.header')"/>
+            select="concat('docbook.interface.', $member, '.inherited.header')"/>
           <xsl:with-param name="params">
             <param>
               <xsl:value-of select="@name"/>
@@ -433,7 +433,7 @@
   <xsl:template match="adr:property" mode="member-hierarchy-list-item">
     <link>
       <xsl:attribute name="linkend">
-        <xsl:call-template name="id-generate-api-property"/>
+        <xsl:call-template name="id-generate-interface-property"/>
       </xsl:attribute>
       <emphasis>
         <xsl:value-of select="@name"/>
@@ -445,7 +445,7 @@
   <xsl:template match="adr:method" mode="member-hierarchy-list-item">
     <link>
       <xsl:attribute name="linkend">
-        <xsl:call-template name="id-generate-api-method"/>
+        <xsl:call-template name="id-generate-interface-method"/>
       </xsl:attribute>
       <emphasis>
         <xsl:value-of select="@name"/>
@@ -528,23 +528,23 @@
           <xsl:attribute name="linkend">
             <xsl:choose>
 
-              <xsl:when test="@api">
+              <xsl:when test="@interface">
                 <xsl:choose>
                   <xsl:when test="@property">
-                    <xsl:call-template name="id-generate-api-property">
-                      <xsl:with-param name="api" select="@api"/>
+                    <xsl:call-template name="id-generate-interface-property">
+                      <xsl:with-param name="interface" select="@interface"/>
                       <xsl:with-param name="property" select="@property"/>
                     </xsl:call-template>
                   </xsl:when>
                   <xsl:when test="@method">
-                    <xsl:call-template name="id-generate-api-method">
-                      <xsl:with-param name="api" select="@api"/>
+                    <xsl:call-template name="id-generate-interface-method">
+                      <xsl:with-param name="interface" select="@interface"/>
                       <xsl:with-param name="method" select="@method"/>
                     </xsl:call-template>
                   </xsl:when>
                   <xsl:otherwise>
-                    <xsl:call-template name="id-generate-api">
-                      <xsl:with-param name="api" select="@api"/>
+                    <xsl:call-template name="id-generate-interface">
+                      <xsl:with-param name="interface" select="@interface"/>
                     </xsl:call-template>
                   </xsl:otherwise>
                 </xsl:choose>
@@ -698,23 +698,23 @@
     </programlisting>
   </xsl:template>
 
-  <!-- Process the interface element -->
-  <xsl:template match="adr:interface" mode="children">
+  <!-- Process the api element -->
+  <xsl:template match="adr:api" mode="children">
 
-    <!-- Process the api elements, if any -->
-    <xsl:if test="adr:api">
+    <!-- Process the interface elements, if any -->
+    <xsl:if test="adr:interface">
       <xsl:element name="{$element.section1}">
         <xsl:attribute name="role">
           <xsl:call-template name="getString">
-            <xsl:with-param name="name" select="'docbook.api.title'"/>
+            <xsl:with-param name="name" select="'docbook.interface.title'"/>
           </xsl:call-template>
         </xsl:attribute>
         <title>
           <xsl:call-template name="getString">
-            <xsl:with-param name="name" select="'docbook.api.title'"/>
+            <xsl:with-param name="name" select="'docbook.interface.title'"/>
           </xsl:call-template>
         </title>
-        <xsl:apply-templates select="adr:api"/>
+        <xsl:apply-templates select="adr:interface"/>
       </xsl:element>
     </xsl:if>
 
@@ -770,9 +770,9 @@
     </xsl:if>
   </xsl:template>
 
-  <xsl:template match="adr:api" mode="label">
+  <xsl:template match="adr:interface" mode="label">
     <xsl:call-template name="getString">
-      <xsl:with-param name="name" select="'docbook.api.label'"/>
+      <xsl:with-param name="name" select="'docbook.interface.label'"/>
       <xsl:with-param name="params">
         <param>
           <xsl:value-of select="@name"/>
@@ -781,12 +781,12 @@
     </xsl:call-template>
   </xsl:template>
 
-  <!-- Process the api elements -->
-  <xsl:template match="adr:api">
+  <!-- Process the interface elements -->
+  <xsl:template match="adr:interface">
     <xsl:element name="{$element.section2}">
       <title>
         <xsl:attribute name="id">
-          <xsl:call-template name="id-generate-api"/>
+          <xsl:call-template name="id-generate-interface"/>
         </xsl:attribute>
         <xsl:apply-templates select="." mode="label"/>
       </title>
@@ -802,7 +802,7 @@
           <title>
             <xsl:call-template name="getString">
               <xsl:with-param name="name"
-                select="'docbook.api.inheritance.title'"/>
+                select="'docbook.interface.inheritance.title'"/>
             </xsl:call-template>
           </title>
           <para>
@@ -823,7 +823,7 @@
             <xsl:with-param name="node">
               <xsl:call-template name="getString">
                 <xsl:with-param name="name"
-                  select="'docbook.api.version.header'"/>
+                  select="'docbook.interface.version.header'"/>
               </xsl:call-template>
             </xsl:with-param>
           </xsl:call-template>
@@ -842,13 +842,13 @@
         </para>
       </xsl:if>
 
-      <!-- Process the api properties, if any -->
+      <!-- Process the interface properties, if any -->
       <xsl:if test="adr:property or adr:include">
         <xsl:element name="{$element.section3}">
           <title>
             <xsl:call-template name="getString">
               <xsl:with-param name="name"
-                select="'docbook.api.property.header'"/>
+                select="'docbook.interface.property.header'"/>
               <xsl:with-param name="params">
                 <param>
                   <xsl:value-of select="@name"/>
@@ -860,17 +860,17 @@
           <xsl:apply-templates select="." mode="member-hierarchy">
             <xsl:with-param name="member">property</xsl:with-param>
             <xsl:with-param name="noneRes"
-              select="'docbook.api.property.inherited.none'"/>
+              select="'docbook.interface.property.inherited.none'"/>
           </xsl:apply-templates>
         </xsl:element>
       </xsl:if>
 
-      <!-- Process the api methods, if any -->
+      <!-- Process the interface methods, if any -->
       <xsl:if test="adr:method or adr:include">
         <xsl:element name="{$element.section3}">
           <title>
             <xsl:call-template name="getString">
-              <xsl:with-param name="name" select="'docbook.api.method.header'"/>
+              <xsl:with-param name="name" select="'docbook.interface.method.header'"/>
               <xsl:with-param name="params">
                 <param>
                   <xsl:value-of select="@name"/>
@@ -882,17 +882,17 @@
           <xsl:apply-templates select="." mode="member-hierarchy">
             <xsl:with-param name="member">method</xsl:with-param>
             <xsl:with-param name="noneRes"
-              select="'docbook.api.method.inherited.none'"/>
+              select="'docbook.interface.method.inherited.none'"/>
           </xsl:apply-templates>
         </xsl:element>
       </xsl:if>
 
-      <!-- Process the api events, if any -->
+      <!-- Process the interface events, if any -->
       <xsl:if test="adr:event">
         <xsl:element name="{$element.section3}">
           <title>
             <xsl:call-template name="getString">
-              <xsl:with-param name="name" select="'docbook.api.event.header'"/>
+              <xsl:with-param name="name" select="'docbook.interface.event.header'"/>
               <xsl:with-param name="params">
                 <param>
                   <xsl:value-of select="@name"/>
@@ -910,7 +910,7 @@
   <xsl:template match="adr:property">
     <para>
       <xsl:attribute name="id">
-        <xsl:call-template name="id-generate-api-property"/>
+        <xsl:call-template name="id-generate-interface-property"/>
       </xsl:attribute>
       <xsl:apply-templates select="." mode="parameter">
         <xsl:with-param name="strong" select="1"/>
@@ -923,13 +923,13 @@
                 <xsl:with-param name="name">
                   <xsl:choose>
                     <xsl:when test="@access='ro'">
-                      <xsl:text>docbook.api.property.ro</xsl:text>
+                      <xsl:text>docbook.interface.property.ro</xsl:text>
                     </xsl:when>
                     <xsl:when test="@access='wo'">
-                      <xsl:text>docbook.api.property.wo</xsl:text>
+                      <xsl:text>docbook.interface.property.wo</xsl:text>
                     </xsl:when>
                     <xsl:otherwise>
-                      <xsl:text>docbook.api.property.rw</xsl:text>
+                      <xsl:text>docbook.interface.property.rw</xsl:text>
                     </xsl:otherwise>
                   </xsl:choose>
                 </xsl:with-param>
@@ -966,13 +966,13 @@
             <xsl:with-param name="name">
               <xsl:choose>
                 <xsl:when test="@for='ro' or ../@access='ro'">
-                  <xsl:text>docbook.api.property.error.header.ro</xsl:text>
+                  <xsl:text>docbook.interface.property.error.header.ro</xsl:text>
                 </xsl:when>
                 <xsl:when test="@for='wo' or ../@access='wo'">
-                  <xsl:text>docbook.api.property.error.header.wo</xsl:text>
+                  <xsl:text>docbook.interface.property.error.header.wo</xsl:text>
                 </xsl:when>
                 <xsl:when test="@for='rw' or ../@access='rw'">
-                  <xsl:text>docbook.api.property.error.header.rw</xsl:text>
+                  <xsl:text>docbook.interface.property.error.header.rw</xsl:text>
                 </xsl:when>
               </xsl:choose>
             </xsl:with-param>
@@ -990,7 +990,7 @@
   <xsl:template match="adr:method">
     <para>
       <xsl:attribute name="id">
-        <xsl:call-template name="id-generate-api-method"/>
+        <xsl:call-template name="id-generate-interface-method"/>
       </xsl:attribute>
       <xsl:if test="adr:result">
         <xsl:apply-templates select="adr:result" mode="type"/>
@@ -1022,7 +1022,7 @@
             <xsl:with-param name="node">
               <xsl:call-template name="getString">
                 <xsl:with-param name="name"
-                  select="'docbook.api.method.argument.header'"/>
+                  select="'docbook.interface.method.argument.header'"/>
               </xsl:call-template>
             </xsl:with-param>
           </xsl:call-template>
@@ -1034,7 +1034,7 @@
             <xsl:with-param name="node">
               <xsl:call-template name="getString">
                 <xsl:with-param name="name"
-                  select="'docbook.api.method.result.header'"/>
+                  select="'docbook.interface.method.result.header'"/>
               </xsl:call-template>
             </xsl:with-param>
           </xsl:call-template>
@@ -1046,7 +1046,7 @@
             <xsl:with-param name="node">
               <xsl:call-template name="getString">
                 <xsl:with-param name="name"
-                  select="'docbook.api.method.error.header'"/>
+                  select="'docbook.interface.method.error.header'"/>
               </xsl:call-template>
             </xsl:with-param>
           </xsl:call-template>
@@ -1368,13 +1368,13 @@
     <xsl:apply-templates select="adr:doc" mode="indent"/>
   </xsl:template>
 
-  <xsl:template name="id-validate-api">
+  <xsl:template name="id-validate-interface">
     <xsl:param name="id"/>
-    <xsl:param name="api"/>
-    <xsl:if test="not(//adr:api[@name = $api])">
+    <xsl:param name="interface"/>
+    <xsl:if test="not(//adr:interface[@name = $interface])">
       <xsl:message>
         <xsl:call-template name="getString">
-          <xsl:with-param name="name" select="'docbook.api.id.warning'"/>
+          <xsl:with-param name="name" select="'docbook.interface.id.warning'"/>
           <xsl:with-param name="params">
             <param>
               <xsl:value-of select="saxon:line-number()"/>
@@ -1383,7 +1383,7 @@
               <xsl:value-of select="$id"/>
             </param>
             <param>
-              <xsl:value-of select="$api"/>
+              <xsl:value-of select="$interface"/>
             </param>
           </xsl:with-param>
         </xsl:call-template>
@@ -1391,25 +1391,25 @@
     </xsl:if>
   </xsl:template>
 
-  <xsl:template name="id-generate-api">
-    <xsl:param name="api" select="@name"/>
-    <xsl:variable name="id" select="concat('api.', $api)"/>
-    <xsl:call-template name="id-validate-api">
+  <xsl:template name="id-generate-interface">
+    <xsl:param name="interface" select="@name"/>
+    <xsl:variable name="id" select="concat('interface.', $interface)"/>
+    <xsl:call-template name="id-validate-interface">
       <xsl:with-param name="id" select="$id"/>
-      <xsl:with-param name="api" select="$api"/>
+      <xsl:with-param name="interface" select="$interface"/>
     </xsl:call-template>
     <xsl:value-of select="$id"/>
   </xsl:template>
 
-  <xsl:template name="id-validate-api-property">
+  <xsl:template name="id-validate-interface-property">
     <xsl:param name="id"/>
-    <xsl:param name="api"/>
+    <xsl:param name="interface"/>
     <xsl:param name="property"/>
-    <xsl:if test="not(//adr:api[@name = $api]/adr:property[@name = $property])">
+    <xsl:if test="not(//adr:interface[@name = $interface]/adr:property[@name = $property])">
       <xsl:message>
         <xsl:call-template name="getString">
           <xsl:with-param name="name"
-            select="'docbook.api.property.id.warning'"/>
+            select="'docbook.interface.property.id.warning'"/>
           <xsl:with-param name="params">
             <param>
               <xsl:value-of select="saxon:line-number()"/>
@@ -1418,7 +1418,7 @@
               <xsl:value-of select="$id"/>
             </param>
             <param>
-              <xsl:value-of select="$api"/>
+              <xsl:value-of select="$interface"/>
             </param>
             <param>
               <xsl:value-of select="$property"/>
@@ -1429,31 +1429,31 @@
     </xsl:if>
   </xsl:template>
 
-  <xsl:template name="id-generate-api-property">
-    <xsl:param name="api" select="../@name"/>
+  <xsl:template name="id-generate-interface-property">
+    <xsl:param name="interface" select="../@name"/>
     <xsl:param name="property" select="@name"/>
     <xsl:variable name="id"
-      select="concat('api-property.', $api, '.', $property)"/>
-    <xsl:call-template name="id-validate-api">
+      select="concat('interface-property.', $interface, '.', $property)"/>
+    <xsl:call-template name="id-validate-interface">
       <xsl:with-param name="id" select="$id"/>
-      <xsl:with-param name="api" select="$api"/>
+      <xsl:with-param name="interface" select="$interface"/>
     </xsl:call-template>
-    <xsl:call-template name="id-validate-api-property">
+    <xsl:call-template name="id-validate-interface-property">
       <xsl:with-param name="id" select="$id"/>
-      <xsl:with-param name="api" select="$api"/>
+      <xsl:with-param name="interface" select="$interface"/>
       <xsl:with-param name="property" select="$property"/>
     </xsl:call-template>
     <xsl:value-of select="$id"/>
   </xsl:template>
 
-  <xsl:template name="id-validate-api-method">
+  <xsl:template name="id-validate-interface-method">
     <xsl:param name="id"/>
-    <xsl:param name="api"/>
+    <xsl:param name="interface"/>
     <xsl:param name="method"/>
-    <xsl:if test="not(//adr:api[@name = $api]/adr:method[@name = $method])">
+    <xsl:if test="not(//adr:interface[@name = $interface]/adr:method[@name = $method])">
       <xsl:message>
         <xsl:call-template name="getString">
-          <xsl:with-param name="name" select="'docbook.api.method.id.warning'"/>
+          <xsl:with-param name="name" select="'docbook.interface.method.id.warning'"/>
           <xsl:with-param name="params">
             <param>
               <xsl:value-of select="saxon:line-number()"/>
@@ -1462,7 +1462,7 @@
               <xsl:value-of select="$id"/>
             </param>
             <param>
-              <xsl:value-of select="$api"/>
+              <xsl:value-of select="$interface"/>
             </param>
             <param>
               <xsl:value-of select="$method"/>
@@ -1473,17 +1473,17 @@
     </xsl:if>
   </xsl:template>
 
-  <xsl:template name="id-generate-api-method">
-    <xsl:param name="api" select="../@name"/>
+  <xsl:template name="id-generate-interface-method">
+    <xsl:param name="interface" select="../@name"/>
     <xsl:param name="method" select="@name"/>
-    <xsl:variable name="id" select="concat('api-method.', $api, '.', $method)"/>
-    <xsl:call-template name="id-validate-api">
+    <xsl:variable name="id" select="concat('interface-method.', $interface, '.', $method)"/>
+    <xsl:call-template name="id-validate-interface">
       <xsl:with-param name="id" select="$id"/>
-      <xsl:with-param name="api" select="$api"/>
+      <xsl:with-param name="interface" select="$interface"/>
     </xsl:call-template>
-    <xsl:call-template name="id-validate-api-method">
+    <xsl:call-template name="id-validate-interface-method">
       <xsl:with-param name="id" select="$id"/>
-      <xsl:with-param name="api" select="$api"/>
+      <xsl:with-param name="interface" select="$interface"/>
       <xsl:with-param name="method" select="$method"/>
     </xsl:call-template>
     <xsl:value-of select="$id"/>
--- a/usr/src/java/adr/xml/style/radadr-docbook-man.xsl	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/style/radadr-docbook-man.xsl	Tue May 08 19:19:59 2012 -0400
@@ -46,7 +46,7 @@
     <xsl:apply-templates/>
   </xsl:template>
 
-  <xsl:template match="adr:interface">
+  <xsl:template match="adr:api">
     <xsl:variable name="basename">
       <xsl:call-template name="basename">
         <xsl:with-param name="str" select='@name'/>
@@ -89,7 +89,7 @@
       </refnamediv>
 
       <refsynopsisdiv>
-        <xsl:apply-templates select="adr:api" mode="synopsis"/>
+        <xsl:apply-templates select="adr:interface" mode="synopsis"/>
       </refsynopsisdiv>
 
       <refsect1 role="description">
@@ -103,7 +103,7 @@
         <xsl:call-template name="header">
           <xsl:with-param name="node">
             <xsl:call-template name="getString">
-              <xsl:with-param name="name" select="'docbook.interface.label'"/>
+              <xsl:with-param name="name" select="'docbook.api.label'"/>
               <xsl:with-param name="params">
                 <param>
                   <xsl:value-of select="@name"/>
@@ -120,11 +120,11 @@
     </xsl:element>
   </xsl:template>
 
-  <xsl:template match="adr:api" mode="synopsis">
+  <xsl:template match="adr:interface" mode="synopsis">
     <refsect2>
       <title>
         <xsl:call-template name="getString">
-          <xsl:with-param name="name" select="'docbook.api.label'"/>
+          <xsl:with-param name="name" select="'docbook.interface.label'"/>
           <xsl:with-param name="params">
             <param>
               <xsl:value-of select="@name"/>
--- a/usr/src/java/adr/xml/style/radadr-docbook.xsl	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/style/radadr-docbook.xsl	Tue May 08 19:19:59 2012 -0400
@@ -42,7 +42,7 @@
       doctype-public="-//OASIS//DTD DocBook V4.4//EN"
       doctype-system="http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"/>
 
-  <!-- Override API hierarchy characters -->
+  <!-- Override interface hierarchy characters -->
   <xsl:variable name="hierarchy.boxdr">&boxdr;</xsl:variable>
   <xsl:variable name="hierarchy.boxh">&boxh;</xsl:variable>
   <xsl:variable name="hierarchy.boxv">&boxv;</xsl:variable>
@@ -56,13 +56,13 @@
     </article>
   </xsl:template>
 
-  <!-- Process the interface element -->
-  <xsl:template match="adr:interface">
+  <!-- Process the api element -->
+  <xsl:template match="adr:api">
     <!-- Write out a heading -->
     <section>
       <title>
         <xsl:call-template name="getString">
-          <xsl:with-param name="name" select="'docbook.interface.title'"/>
+          <xsl:with-param name="name" select="'docbook.api.title'"/>
           <xsl:with-param name="params">
             <param>
               <xsl:value-of select="@name"/>
@@ -73,7 +73,7 @@
       <para>
         <emphasis role="strong">
           <xsl:call-template name="getString">
-            <xsl:with-param name="name" select="'docbook.interface.label'"/>
+            <xsl:with-param name="name" select="'docbook.api.label'"/>
             <xsl:with-param name="params">
               <param>
                 <xsl:value-of select="@name"/>
@@ -85,7 +85,7 @@
       </para>
       <xsl:apply-templates select="adr:doc"/>
 
-      <!-- Process interface children -->
+      <!-- Process api children -->
       <xsl:apply-templates select="." mode="children"/>
     </section>
   </xsl:template>
--- a/usr/src/java/adr/xml/style/radadr-rmdoc.xsl	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/adr/xml/style/radadr-rmdoc.xsl	Tue May 08 19:19:59 2012 -0400
@@ -22,7 +22,7 @@
   Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 -->
 
-<!-- Strips documentation elements from ADR interface definitions -->
+<!-- Strips documentation elements from ADR API definitions -->
 <xsl:stylesheet version="1.0" xmlns:adr="http://xmlns.oracle.com/radadr"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
--- a/usr/src/java/rad/com/oracle/solaris/rad/ApiStability.java	Tue May 08 16:53:42 2012 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
- */
-
-package com.oracle.solaris.rad;
-
-import java.lang.annotation.*;
-import com.oracle.solaris.adr.Stability;
-
-@Retention(RetentionPolicy.CLASS)
-@Target(ElementType.METHOD)
-public @interface ApiStability {
-
-    Stability value() default Stability.PRIVATE;
-}
--- a/usr/src/java/rad/com/oracle/solaris/rad/Client.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/Client.java	Tue May 08 19:19:59 2012 -0400
@@ -57,7 +57,7 @@
     static private Property findProperty(Instance inst, String pname)
 	throws ContainerException {
 
-	Property p = inst.getAPI().getProp(pname);
+	Property p = inst.getInterface().getProp(pname);
 	if (p != null)
 	    return p;
 	throw new TargetedException(RadError.NOTFOUND, Target.FEATURE, pname,
@@ -67,7 +67,7 @@
     static private Method findMethod(Instance inst, String mname)
 	throws ContainerException {
 
-	Method m = inst.getAPI().getMethod(mname);
+	Method m = inst.getInterface().getMethod(mname);
 	if (m != null)
 	    return m;
 	throw new TargetedException(RadError.NOTFOUND, Target.FEATURE, mname,
@@ -77,7 +77,8 @@
 
     private ADRXDR adrxdr_;
     private ClientFramer framer_;
-    private final Map<Long, API> apimap_ = new HashMap<Long, API>();
+    private final Map<Long, Interface> ifacemap_ =
+	new HashMap<Long, Interface>();
     private final Map<Long, Instance> idmap_ = new HashMap<Long, Instance>();
     private final Map<RadError, Type> errorTypes_ =
 	new HashMap<RadError, Type>();
@@ -294,30 +295,30 @@
 	}
     }
 
-    private API readAPI(XDRInputStream descresp) throws IOException,
+    private Interface readInterface(XDRInputStream descresp) throws IOException,
 	ContainerException {
 
-	Interface iface = new Interface(descresp.getString());
-	int nAPIs = descresp.getInteger();
-	if (nAPIs < 1)
-	    throw new IOException("invalid API count");
+	API api = new API(descresp.getString());
+	int nIface = descresp.getInteger();
+	if (nIface < 1)
+	    throw new IOException("invalid Interface count");
 
 	String aname = null;
-	Map<Stability, APIVersion> vers = null;
-	for (int a = 0; a < nAPIs; a++) {
-	    vers = new EnumMap<Stability, APIVersion>(Stability.class);
+	Map<Stability, InterfaceVersion> vers = null;
+	for (int a = 0; a < nIface; a++) {
+	    vers = new EnumMap<Stability, InterfaceVersion>(Stability.class);
 	    aname = descresp.getString();
 	    for (int i = 0; i < 3; i++) {
 		Stability stability = ADRXDR.readStability(descresp);
 		int major = descresp.getInteger();
 		int minor = descresp.getInteger();
-		if (APIVersion.isValid(stability, major, minor))
+		if (InterfaceVersion.isValid(stability, major, minor))
 		    vers.put(stability,
-			new APIVersion(stability, major, minor));
+			new InterfaceVersion(stability, major, minor));
 	    }
-	    /* The last API is the real one */
-	    if (a < nAPIs - 1)
-		iface.addAPI(new API(aname, vers, emptyPmap_,
+	    /* The last Interface is the real one */
+	    if (a < nIface - 1)
+		api.addInterface(new Interface(aname, vers, emptyPmap_,
 		    emptyMmap_, emptyEmap_, null));
 	}
 
@@ -385,14 +386,14 @@
 	    events.put(nname, new Event(nname, stability, ntype));
 	}
 
-	API api = new API(aname, vers, props, meths, events,
-	    new ArrayList<API>(iface.getAPIs().values()));
-	iface.addAPI(api);
+	Interface iface = new Interface(aname, vers, props, meths, events,
+	    new ArrayList<Interface>(api.getInterfaces().values()));
+	api.addInterface(iface);
 
-	return api;
+	return iface;
     }
 
-    private API define(long id) throws IOException, ContainerException {
+    private Interface define(long id) throws IOException, ContainerException {
 	/*
 	 * Request
 	 */
@@ -405,7 +406,7 @@
 	 */
 	if (r.isSuccess()) {
 	    XDRInputStream descresp = r.getPayload();
-	    return readAPI(descresp);
+	    return readInterface(descresp);
 	} else {
 	    throw toException(r);
 	}
@@ -440,23 +441,24 @@
 	    }
 
 	    long typeid = descresp.getHyper();
-	    API a;
+	    Interface iface;
 
-	    synchronized (apimap_) {
-		a = apimap_.get(typeid);
+	    synchronized (ifacemap_) {
+		iface = ifacemap_.get(typeid);
 	    }
 
-	    if (a == null) {
-		a = descresp.getBoolean() ? readAPI(descresp) : define(typeid);
-		synchronized (apimap_) {
-		    if (!apimap_.containsKey(typeid))
-			apimap_.put(typeid, a);
+	    if (iface == null) {
+		iface = descresp.getBoolean() ?
+		    readInterface(descresp) : define(typeid);
+		synchronized (ifacemap_) {
+		    if (!ifacemap_.containsKey(typeid))
+			ifacemap_.put(typeid, iface);
 		    else
-			a = apimap_.get(typeid);
+			iface = ifacemap_.get(typeid);
 		}
 	    }
 
-	    Instance i = new Instance(this, a, id, name);
+	    Instance i = new Instance(this, iface, id, name);
 	    synchronized (idmap_) {
 		idmap_.put(i.getID(), i);
 	    }
@@ -522,7 +524,7 @@
 	} while (inst == null);
 
 	e.instance_ = inst;
-	Event ev = inst.getAPI().getEvent(e.getEvent());
+	Event ev = inst.getInterface().getEvent(e.getEvent());
 	if (ev != null) {
 	    XDRInputStream is = new XDRInputStream(e.getPayload());
 	    e.data_ = adrxdr_.readNullable(ev.getType(), is);
--- a/usr/src/java/rad/com/oracle/solaris/rad/EnumMapper.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/EnumMapper.java	Tue May 08 19:19:59 2012 -0400
@@ -34,7 +34,7 @@
  * Interface for factoring enumeration mapping out of ADRXDR.  The RAD data
  * model supports compatibly extending enumerations by optionally mapping
  * unknown values to a designated fallback value.  Because only the client
- * knows which version of the interface it is bound to, it is up to the
+ * knows which version of the api it is bound to, it is up to the
  * client infrastructure to perform this adaptation.  Moreover, this
  * knowledge isn't available to Client, only the layer above it.
  * <br>
--- a/usr/src/java/rad/com/oracle/solaris/rad/Instance.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/Instance.java	Tue May 08 19:19:59 2012 -0400
@@ -25,22 +25,22 @@
 
 package com.oracle.solaris.rad;
 
-import com.oracle.solaris.adr.API;
+import com.oracle.solaris.adr.Interface;
 
 /**
- * Class that references a specific instance of an API.  Obtained by
+ * Class that references a specific instance of an Interface.  Obtained by
  * calling describe(), and supplied to all other operations that act
  * on server objects.
  */
 public class Instance {
-    private API api_;
+    private Interface iface_;
     private long id_;
     private ADRName name_;
     private Client client_;
 
-    Instance(Client client, API api, long id, ADRName name) {
+    Instance(Client client, Interface iface, long id, ADRName name) {
 	client_ = client;
-	api_ = api;
+	iface_ = iface;
 	id_ = id;
 	name_ = name;
     }
@@ -62,10 +62,10 @@
     }
 
     /**
-     * Gets the API description for the server object.
+     * Gets the Interface description for the server object.
      */
-    public API getAPI() {
-	return api_;
+    public Interface getInterface() {
+	return iface_;
     }
 
     /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/rad/com/oracle/solaris/rad/InterfaceStability.java	Tue May 08 19:19:59 2012 -0400
@@ -0,0 +1,36 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package com.oracle.solaris.rad;
+
+import java.lang.annotation.*;
+import com.oracle.solaris.adr.Stability;
+
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.METHOD)
+public @interface InterfaceStability {
+
+    Stability value() default Stability.PRIVATE;
+}
--- a/usr/src/java/rad/com/oracle/solaris/rad/Versions.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/Versions.java	Tue May 08 19:19:59 2012 -0400
@@ -30,7 +30,7 @@
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.TYPE)
 public @interface Versions {
+    String apiName();
     String interfaceName();
-    String apiName();
     Version[] versions();
 }
--- a/usr/src/java/rad/com/oracle/solaris/rad/jmx/IncompatibleVersionException.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/jmx/IncompatibleVersionException.java	Tue May 08 19:19:59 2012 -0400
@@ -26,23 +26,23 @@
 package com.oracle.solaris.rad.jmx;
 
 import javax.management.JMException;
-import com.oracle.solaris.adr.APIVersion;
+import com.oracle.solaris.adr.InterfaceVersion;
 
 public class IncompatibleVersionException extends JMException {
     private Class<?> iface_;
-    private APIVersion cver_;
-    private APIVersion sver_;
+    private InterfaceVersion cver_;
+    private InterfaceVersion sver_;
 
-    IncompatibleVersionException(Class<?> iface, APIVersion cver,
-	APIVersion sver, String msg) {
+    IncompatibleVersionException(Class<?> iface, InterfaceVersion cver,
+	InterfaceVersion sver, String msg) {
 	super(msg);
 	iface_ = iface;
 	cver_ = cver;
 	sver_ = sver;
     }
 
-    IncompatibleVersionException(Class<?> iface, APIVersion cver,
-	APIVersion sver) {
+    IncompatibleVersionException(Class<?> iface, InterfaceVersion cver,
+	InterfaceVersion sver) {
 	this(iface, cver, sver, String.format("Incompatible versions: " +
 	    "%s Client [%s], Server = [%s].", iface.getName(), cver, sver));
     }
@@ -51,11 +51,11 @@
 	return iface_;
     }
 
-    public APIVersion getClientVersion() {
+    public InterfaceVersion getClientVersion() {
 	return cver_;
     }
 
-    public APIVersion getServerVersion() {
+    public InterfaceVersion getServerVersion() {
 	return sver_;
     }
 }
--- a/usr/src/java/rad/com/oracle/solaris/rad/jmx/RadJMX.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/jmx/RadJMX.java	Tue May 08 19:19:59 2012 -0400
@@ -38,16 +38,17 @@
     //
 
     // Descriptor fields
+    static final String API_NAME = "com.oracle.solaris.rad.apiName";
     static final String INTERFACE_NAME = "com.oracle.solaris.rad.interfaceName";
-    static final String API_NAME = "com.oracle.solaris.rad.apiName";
     static final String PRIVATE_VER = "com.oracle.solaris.rad.privateVersion";
     static final String UNCOMMITTED_VER =
 	"com.oracle.solaris.rad.uncommittedVersion";
     static final String COMMITTED_VER =
 	"com.oracle.solaris.rad.commitedVersion";
     static final String STABILITY = "com.oracle.solaris.rad.stability";
-    // Pointer to private API data - not for general consumption
-    static final String API_PRIVDATA = "com.oracle.solaris.rad.apiPrivate";
+    // Pointer to private Interface data - not for general consumption
+    static final String INTERFACE_PRIVDATA =
+	"com.oracle.solaris.rad.interfacePrivate";
 
     //
     // RadJMXProxy methods
@@ -105,33 +106,35 @@
 	    false, stab);
     }
 
-    private static APIVersion getClientVersion(Stability s, Versions versInfo) {
+    private static InterfaceVersion getClientVersion(Stability s,
+	Versions versInfo) {
 	if (versInfo != null) {
 	    for (Version version : versInfo.versions()) {
 		if (version.stability() == s) {
-		    return new APIVersion(version.stability(), version.major(),
-			version.minor());
+		    return new InterfaceVersion(version.stability(),
+			version.major(), version.minor());
 		}
 	    }
 	}
-	return APIVersion.getNone(s);
+	return InterfaceVersion.getNone(s);
     }
 
     private static void assertCompatible(Class<?> interfaceClass,
 	Stability stab, Versions vers, Descriptor desc)
 	throws IncompatibleVersionException {
 
-	APIVersion vc = getClientVersion(stab, vers);
-	APIVersion vs = APIVersion.getNone(stab);
-	if (vers != null && desc != null && vers.interfaceName() != null &&
-	    vers.interfaceName().equals(desc.getFieldValue(INTERFACE_NAME))) {
-	    String aname = vers.apiName();
-	    API api = (API) desc.getFieldValue(API_PRIVDATA);
-	    if (aname != null && api != null) {
-		if (aname.equals(desc.getFieldValue(API_NAME))) {
-		    vs = api.getVersionByStability(stab);
+	InterfaceVersion vc = getClientVersion(stab, vers);
+	InterfaceVersion vs = InterfaceVersion.getNone(stab);
+	if (vers != null && desc != null && vers.apiName() != null &&
+	    vers.apiName().equals(desc.getFieldValue(API_NAME))) {
+	    String aname = vers.interfaceName();
+	    Interface iface =
+		(Interface) desc.getFieldValue(INTERFACE_PRIVDATA);
+	    if (aname != null && iface != null) {
+		if (aname.equals(desc.getFieldValue(INTERFACE_NAME))) {
+		    vs = iface.getVersionByStability(stab);
 		} else {
-		    for (API parent : api.getParents()) {
+		    for (Interface parent : iface.getParents()) {
 			if (aname.equals(parent.getName())) {
 			    vs = parent.getVersionByStability(stab);
 			    break;
--- a/usr/src/java/rad/com/oracle/solaris/rad/jmx/RadMBeanServerConnection.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/java/rad/com/oracle/solaris/rad/jmx/RadMBeanServerConnection.java	Tue May 08 19:19:59 2012 -0400
@@ -130,29 +130,29 @@
 	    new Object[] { f.getStability() });
     }
 
-    private static Descriptor versionDescriptor(API api) {
+    private static Descriptor versionDescriptor(Interface iface) {
 	Map<String, Object> descMap = new HashMap<String, Object>();
-	descMap.put(RadJMX.INTERFACE_NAME, api.getInterface().getName());
-	descMap.put(RadJMX.API_NAME, api.getName());
-	descMap.put(RadJMX.API_PRIVDATA, api);
+	descMap.put(RadJMX.API_NAME, iface.getAPI().getName());
+	descMap.put(RadJMX.INTERFACE_NAME, iface.getName());
+	descMap.put(RadJMX.INTERFACE_PRIVDATA, iface);
 	descMap.put(RadJMX.PRIVATE_VER,
-	    api.getVersionByStability(Stability.PRIVATE));
+	    iface.getVersionByStability(Stability.PRIVATE));
 	descMap.put(RadJMX.UNCOMMITTED_VER,
-	    api.getVersionByStability(Stability.UNCOMMITTED));
+	    iface.getVersionByStability(Stability.UNCOMMITTED));
 	descMap.put(RadJMX.COMMITTED_VER,
-	    api.getVersionByStability(Stability.COMMITTED));
+	    iface.getVersionByStability(Stability.COMMITTED));
 	return new ImmutableDescriptor(descMap);
     }
 
     public OpenMBeanInfoSupport toMBeanInfo(String name, Instance inst) {
 
-	API api = inst.getAPI();
-	Descriptor desc = versionDescriptor(api);
+	Interface iface = inst.getInterface();
+	Descriptor desc = versionDescriptor(iface);
 
 	/*
 	 * Attributes
 	 */
-	Collection<Property> props = api.getAllProps().values();
+	Collection<Property> props = iface.getAllProps().values();
 	OpenMBeanAttributeInfo atts[] =
 	    new OpenMBeanAttributeInfo[props.size()];
 	int i = 0;
@@ -168,7 +168,7 @@
 	/*
 	 * Methods
 	 */
-	Collection<Method> meths = api.getAllMethods().values();
+	Collection<Method> meths = iface.getAllMethods().values();
 	OpenMBeanOperationInfo methods[] =
 	    new OpenMBeanOperationInfo[meths.size()];
 	i = 0;
@@ -192,7 +192,7 @@
 	/*
 	 * Events
 	 */
-	Collection<Event> evs = api.getAllEvents().values();
+	Collection<Event> evs = iface.getAllEvents().values();
 	MBeanNotificationInfo events[] = new MBeanNotificationInfo[evs.size()];
 	i = 0;
 	for (Event e : evs) {
@@ -742,7 +742,7 @@
 
 	try {
 	    Map<String, Event> events =
-		getInstance(name).getAPI().getAllEvents();
+		getInstance(name).getInterface().getAllEvents();
 	    return events != null && events.size() > 0;
 	} catch (ContainerException ex) {
 	    if (ex.getError() == RadError.NOTFOUND)
--- a/usr/src/lib/libadr/common/adr_object.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/lib/libadr/common/adr_object.c	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <stdlib.h>
@@ -38,8 +38,8 @@
 void
 adr_free(adr_object_t *o)
 {
+	free((char *)o->ao_aname);
 	free((char *)o->ao_ifname);
-	free((char *)o->ao_name);
 
 	for (int i = 0; i < o->ao_nparents; i++) {
 		adr_object_t *p = o->ao_parents[i];
--- a/usr/src/lib/libadr/common/adr_object.h	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/lib/libadr/common/adr_object.h	Tue May 08 19:19:59 2012 -0400
@@ -90,8 +90,8 @@
 
 /* An object, consisting of attributes and methods */
 typedef struct adr_object {
+	const char *ao_aname;		/* name of api */
 	const char *ao_ifname;		/* name of interface */
-	const char *ao_name;		/* name of api */
 	adr_version_t ao_versions[NSTABILITY];	/* versions */
 	int ao_nattributes;		/* # attributes */
 	int ao_nmethods;		/* # methods */
--- a/usr/src/lib/libadr_mdb/common/adr_object.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/lib/libadr_mdb/common/adr_object.c	Tue May 08 19:19:59 2012 -0400
@@ -151,7 +151,7 @@
 	}
 
 	mdb_printf("Name: %s\n",
-	    read_str((uintptr_t)obj.ao_name, name, sizeof (name)));
+	    read_str((uintptr_t)obj.ao_ifname, name, sizeof (name)));
 	mdb_printf("Versions: %2d.%2d,  %2d.%2d,  %2d.%2d\n",
 	    obj.ao_versions[0].av_major, obj.ao_versions[0].av_minor,
 	    obj.ao_versions[1].av_major, obj.ao_versions[1].av_minor,
--- a/usr/src/lib/libradproto/common/radproto_adr.c	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/lib/libradproto/common/radproto_adr.c	Tue May 08 19:19:59 2012 -0400
@@ -391,13 +391,13 @@
 }
 
 /*
- * Marshal/unmarshall an api/version tuple.
+ * Marshal/unmarshall an interface/version tuple.
  *
- * nparents indicates how many parent APIs should be processed when
+ * nparents indicates how many parent Interfaces should be processed when
  * decoding.  It isn't used when encoding.
  */
 bool_t
-xdr_api_t(XDR *xdrs, adr_object_t **objp, int nparents)
+xdr_iface_t(XDR *xdrs, adr_object_t **objp, int nparents)
 {
 	adr_object_t *obj = *objp;
 	int i;
@@ -418,11 +418,11 @@
 		}
 	}
 
-	/* Depth first; primary API should be last listed */
+	/* Depth first; primary interface should be last listed */
 	for (i = 0; i < obj->ao_nparents; i++)
-		if (!xdr_api_t(xdrs, &obj->ao_parents[i], 0))
+		if (!xdr_iface_t(xdrs, &obj->ao_parents[i], 0))
 			return (FALSE);
-	if (!xdr_string(xdrs, (char **)&obj->ao_name, -1))
+	if (!xdr_string(xdrs, (char **)&obj->ao_ifname, -1))
 		return (FALSE);
 	for (i = 0; i < NSTABILITY; i++)
 		if (!xdr_version_t(xdrs, &obj->ao_versions[i]))
@@ -440,7 +440,7 @@
 }
 
 /*
- * Marshal an api definition.
+ * Marshal an interface definition.
  */
 bool_t
 xdr_object_t(XDR *xdrs, typeset_t *typeset, adr_object_t *obj)
@@ -450,12 +450,12 @@
 	assert(xdrs->x_op != XDR_DECODE);
 
 	/*
-	 * Compatible APIs and their versions
+	 * Compatible interfaces and their versions
 	 */
 	int n = count_parents(obj);
-	if (!xdr_string(xdrs, (char **)&obj->ao_ifname, -1) ||
+	if (!xdr_string(xdrs, (char **)&obj->ao_aname, -1) ||
 	    !xdr_int(xdrs, &n) ||
-	    !xdr_api_t(xdrs, &obj, 0))
+	    !xdr_iface_t(xdrs, &obj, 0))
 		return (FALSE);
 
 	/*
@@ -526,7 +526,7 @@
 }
 
 /*
- * Unmarshal an api definition.
+ * Unmarshal an interface definition.
  */
 bool_t
 xdr_r_object_t(XDR *xdrs, adr_object_t **obj)
@@ -542,9 +542,9 @@
 	 * Versions
 	 */
 	int n;
-	if (!xdr_string(xdrs, (char **)&result->ao_ifname, -1) ||
+	if (!xdr_string(xdrs, (char **)&result->ao_aname, -1) ||
 	    !xdr_int(xdrs, &n) ||
-	    !xdr_api_t(xdrs, &result, n))
+	    !xdr_iface_t(xdrs, &result, n))
 		goto error;
 
 	if (!xdr_r_typeset_t(xdrs, &typeset))
--- a/usr/src/lib/pyrad/client.py	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/lib/pyrad/client.py	Tue May 08 19:19:59 2012 -0400
@@ -711,22 +711,22 @@
 	up = xdrlib.Unpacker(instance._payload)
 	return self._type.read(up, True)
 
-class _RadApiVersion(object):
-    """ A RAD API version. """
+class _RadInterfaceVersion(object):
+    """ A RAD Interface version. """
     def __init__(self, unpacker):
-	""" Create a _RadApiVersion object. """
+	""" Create a _RadInterfaceVersion object. """
         stabilities = 'undefined', 'private', 'uncommitted', 'committed'
         self._stability = stabilities[unpacker.unpack_enum()]
         self._major = unpacker.unpack_int()
         self._minor = unpacker.unpack_int()
 
-class _RadApi(object):
-    """ A RAD API. """
+class _RadInterface(object):
+    """ A RAD Interface. """
     def __init__(self, unpacker):
-	""" Create a _RadApi object. """
+	""" Create a _RadInterface object. """
 	self._versions = []
 	for i in range(3):
-	    self._versions.append(_RadApiVersion(unpacker))
+	    self._versions.append(_RadInterfaceVersion(unpacker))
 	
 class _RadObjectType(object):
     """ A RAD type. """
@@ -734,12 +734,12 @@
 	""" Create a _RadObjectType object. """
 	self._connection = connection
 	self._id = id
-	self._apis = {}
-	self._iface = unpacker.unpack_string()
-	napis = unpacker.unpack_int()
-	for i in range(napis):
+	self._ifaces = {}
+	self._api = unpacker.unpack_string()
+	nifaces = unpacker.unpack_int()
+	for i in range(nifaces):
 	    aname = unpacker.unpack_string()
-	    self._apis[aname] = _RadApi(unpacker)
+	    self._ifaces[aname] = _RadInterface(unpacker)
 	self._typeset = _RadTypeSet(unpacker)
 	self._attributes = dict([[i._name, i] for i in unpacker.unpack_array(
 	    lambda : _RadAttribute(unpacker, self._typeset))])
@@ -765,8 +765,8 @@
 	try:
 		return self._events[instance._event].read(instance)
 	except KeyError:
-		raise InvalidFeatureError(self._iface,
-		    "%s has no event %s" % (self._iface, instance._event))
+		raise InvalidFeatureError(self._api,
+		    "%s has no event %s" % (self._api, instance._event))
 
     def write(self, instance, attr, value):
 	""" Set the specified attribute, attr, to the supplied value
@@ -783,7 +783,7 @@
 
     def __repr__(self):
 	""" A string representation of this instance. """
-	return "< Remote RAD type: %s >" % self._iface
+	return "< Remote RAD type: %s >" % self._api
 
 class _RadObject(object):
     """ A RAD remote object instance. """
@@ -1472,4 +1472,3 @@
 
     	if self._msg: return self._msg
 	return 'Feature not found: ' + self._name
-
--- a/usr/src/test/assertions/compatibility.txt	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/test/assertions/compatibility.txt	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 #
 
 Connecting
@@ -30,7 +30,7 @@
     Connect to private copy of rad, loaded with two test modules - an
     "old" version and a "new" version. The test modules deliver an object
     with a set of properties, methods and events. The old and new 
-    interfaces contain a set of compatible and incompatible changes that 
+    apis contain a set of compatible and incompatible changes that 
     are validated by these tests.
 
   Needs:
--- a/usr/src/test/assertions/version.txt	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/test/assertions/version.txt	Tue May 08 19:19:59 2012 -0400
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 #
 
 Connecting
@@ -28,7 +28,7 @@
   Common strategy:
 
     Connect to private copy of rad, loaded with two test modules - an
-    "old" version and a "new" version. Each module implements (two) apis
+    "old" version and a "new" version. Each module implements (two) interfaces
     with a version number specified for each committment level. The test
     modules deliver an object with a single (string) property defined.
     These tests validate version compatibility checks for each committment
--- a/usr/src/test/java/src/client/CompatTest.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/test/java/src/client/CompatTest.java	Tue May 08 19:19:59 2012 -0400
@@ -371,7 +371,7 @@
     }
 
     @Test
-    @Desc("Change struct readable fields from nullable to non-nullable")
+    @Desc("Change readable struct fields from nullable to non-nullable")
     public void testMethodDerivedRODataNullToReqd() throws ObjectException {
 	/* Old */
 	testif.compat.cold.AcctId aID =
@@ -416,7 +416,7 @@
     }
 
     @Test
-    @Desc("Change struct writable fields from non-nullable to nullable")
+    @Desc("Change writable struct fields from non-nullable to nullable")
     public void testMethodDerivedWODataReqdToNull() throws ObjectException {
 	/* Old */
 	testif.compat.cold.AcctId aID =
--- a/usr/src/test/java/src/client/VersionTest.java	Tue May 08 16:53:42 2012 -0400
+++ b/usr/src/test/java/src/client/VersionTest.java	Tue May 08 19:19:59 2012 -0400
@@ -70,7 +70,7 @@
     }
 
     /*
-     * The api's and corresponding versions used in these tests are -
+     * The interfaces and corresponding versions used in these tests are -
      * Old
      *   MinorRevTest: PRIVATE(1.0), UNCOMMITTED(0.2), COMMITTED(0.5)
      * New (compatible changes - only minor version numbers, if any, differ)
@@ -260,7 +260,7 @@
     }
 
     /*
-     * simple test to verify a property for each api version
+     * simple test to verify a property for each interface version
      */
     private void verify(String expected, String found) {
 	assertNotNull(found);