struct bridge_dev_context
**phbridge_context);
-/*
- * ======== dev_exit ========
- * Purpose:
- * Decrement reference count, and free resources when reference count is
- * 0.
- * Parameters:
- * Returns:
- * Requires:
- * DEV is initialized.
- * Ensures:
- * When reference count == 0, DEV's private resources are freed.
- */
-extern void dev_exit(void);
-
-/*
- * ======== dev_init ========
- * Purpose:
- * Initialize DEV's private state, keeping a reference count on each call.
- * Parameters:
- * Returns:
- * TRUE if initialized; FALSE if error occurred.
- * Requires:
- * Ensures:
- * TRUE: A requirement for the other public DEV functions.
- */
-extern bool dev_init(void);
-
/*
* ======== dev_insert_proc_object ========
* Purpose:
char sz_string[MAXREGPATHLENGTH];
};
-/* ----------------------------------- Globals */
-static u32 refs; /* Module reference count */
-
/* ----------------------------------- Function Prototypes */
static int fxn_not_implemented(int arg, ...);
static int init_cod_mgr(struct dev_object *dev_obj);
return status;
}
-/*
- * ======== dev_exit ========
- * Purpose:
- * Decrement reference count, and free resources when reference count is
- * 0.
- */
-void dev_exit(void)
-{
- refs--;
-}
-
-/*
- * ======== dev_init ========
- * Purpose:
- * Initialize DEV's private state, keeping a reference count on each call.
- */
-bool dev_init(void)
-{
- bool ret = true;
-
- if (ret)
- refs++;
-
- return ret;
-}
-
/*
* ======== dev_notify_clients ========
* Purpose:
{
api_c_refs--;
- if (api_c_refs == 0) {
- /* Release all modules initialized in api_init(). */
- dev_exit();
+ if (api_c_refs == 0)
mgr_exit();
- }
}
/*
bool api_init(void)
{
bool ret = true;
- bool fdev;
- bool fmgr;
-
- if (api_c_refs == 0) {
- /* initialize driver and other modules */
- fmgr = mgr_init();
- fdev = dev_init();
- ret = fdev && fmgr;
- if (!ret) {
- if (fmgr)
- mgr_exit();
+ if (api_c_refs == 0)
+ ret = mgr_init();
- if (fdev)
- dev_exit();
- }
- }
if (ret)
api_c_refs++;