<title>SPARC Architectural Model: Device and Utility API
</title>
<body bgcolor=
"#FFFFFF" LANG=
"en-US">
mmi_register_interface_cb
</h2>
<ul>mmi_register_interface_cb - Register interface callback
</ul>
<font color=
"#0000FF">#include
"mmi.h"</font>
<p>typedef void * (*
<i>fn_interface_cb
</i>) (
const char *
<i>interface_name
</i>);
<p>bool_t mmi_register_interface_cb (module_t *
<i>module
</i>, fn_interface_cb
<i>fn
</i>);
Register
<i>fn
</i> callback for
<i>module
</i>.
This function is called via
<b>mmi_get_interface()
</b> from a client module.
The callback function examines
<i>interface_name
</i>, returning a corresponding interface pointer if it matches.
<ul>Returns
0 for failure.
</ul>
<ul><i>module
</i> is invalid.
</ul>
// return pointer to interface
Schizo::get_interface(const char *name)
if (!strcmp(name, SCHIZO_INTERFACE))
if (!strcmp(name, PCI_BUS_INTERFACE))
if (!strcmp(name, PCI_DEV_INTERFACE))
static void *schizo_get_interface(void *cb_data, const char *name)
Schizo *schizo = (Schizo *) cb_data;
return schizo-
>get_interface(name);
Schizo::register_interface_callback(module_t *instance)
mmi_register_cb_data(instance, this);
mmi_register_interface_cb(instance, schizo_get_interface);
<a href=
"mmi_get_interface.html">mmi_get_interface
</a>