uint32 pinGetPhyiscalPin (uint32 pin) { ASSERT_RETERR (pin > NATIVE_PINS, ERR_INV_PIN | pin); return __physical_pins[pin]; }
uint32 resourceRecordUsage (uint32 r) { uint32 current_resource_val; #if 1 ASSERT_RETERR (r >= N_RESOURCES, ERR_BAD_RESOURCE | r); #else if (r >= N_RESOURCES) { ASSERT (r >= N_RESOURCES, ERR_BAD_RESOURCE | r); SYS_ERROR(ERR_BAD_RESOURCE | r); return ERROR; } #endif // _getResourceVal (32); // _setResourceVal (32, RESOURCE_MASKED); // _incResourceVal (32); current_resource_val = _getResourceVal (r); /////////////////////////////////////////////////////////////// // // If resource has been masked take no further action // if (current_resource_val == RESOURCE_MASKED) { return NOERROR; } /////////////////////////////////////////////////////////////// // // If resource is already in use, raise an error // and mark the resource as having a clash. // if (current_resource_val == RESOURCE_USED) { ASSERT (FORCE, ERR_RESOURCE_CLASH | r); _setResourceVal (r, RESOURCE_CLASH); // SYS_ERROR(ERR_RESOURCE_CLASH | r); return ERROR; } /////////////////////////////////////////////////////////////// // // Set the usage value to indicate the resource is used // _setResourceVal (r, RESOURCE_USED); return NOERROR; }