/* * Verify validity of device descriptor */ EXPORT ER check_devdesc( ID dd, UINT mode, OpnCB **p_opncb ) { OpnCB *opncb; if ( dd < 1 || dd > MaxOpnDev ) { return E_ID; } opncb = OPNCB(dd); if ( opncb->resid <= 0 ) { return E_ID; } if ( opncb->resid != tk_get_rid(TSK_SELF) ) { return E_OACV; } if ( mode != 0 ) { if ( (opncb->omode & mode) == 0 ) { return E_OACV; } } *p_opncb = opncb; return E_OK; }
/* * Verify validity of device descriptor */ EXPORT ER knl_check_devdesc( ID dd, UINT mode, OpnCB **p_opncb ) { OpnCB *opncb; if ( dd < 1 || dd > CFN_MAX_OPNDEV ) { return E_ID; } opncb = OPNCB(dd); if ( opncb->resid == 0 ) { return E_ID; } if ( mode != 0 ) { if ( (opncb->omode & mode) == 0 ) { return E_OACV; } } *p_opncb = opncb; return E_OK; }