/* system termination: reset / system power off reset 0 power off -1 reboot 0xaa55 halt boot and power off */ EXPORT void sysExit(W reset) { DisCacheMMU(); /* after this point, delay such as waitUsec() spends more time than the number indicates // */ /* LED off */ cpuLED(0x00); /* all interrupts disabled */ out_w(IT0_IDS0, ~0); /* CPU: all interrupts disabled */ out_w(IT0_IDS1, ~0); out_w(IT0_IDS2, ~0); out_w(IT3_IPI0_CLR, 0x0000003f); out_w(IT3_IDS0, ~0); /* DSP: all interrupts disabled */ out_w(IT3_IDS1, ~0); out_w(IT3_IDS2, ~0); out_w(IT0_IPI3_CLR, 0x0000003f); out_w(IT0_FID, 0x00000001); /* FIQ disabled */ out_w(IT0_LIIR, 0x0000000f); /* internal interrupt disabled */ /* power on controller initialization */ pmicInit(); /* USB power off */ usbPower(FALSE); if (reset >= 0) powerOff(); /* reset start */ resetStart(); }
// Internal state handling ---------------------------------------------------- uint8_t EndDevice::tick() { // Avoid reading packet in states that does not // check what the packet contains. switch(State) { case EndDeviceStart: case EndDeviceResetStart: case EndDeviceJoiningSend: case EndDeviceIdle: case EndDeviceSleeping: case EndDeviceWaking: case EndDeviceRequestSend: //case Error: //? break; default: xbee.readPacket(); } switch(State) { case EndDeviceStart: return start(); case EndDeviceFormingNetwork: return formingNetwork(); case EndDeviceJoiningSend: return joiningSend(); case EndDeviceJoiningWait: return joiningWait(); case EndDeviceJoiningWaitResponse: return joiningWaitResponse(); case EndDeviceIdle: return idle(); case EndDeviceSleepWait: return sleepWait(); case EndDeviceSleeping: return sleeping(); case EndDeviceError: return error(); case EndDeviceRequestSend: return requestSend(); case EndDeviceRequestStatus: return requestStatus(); case EndDeviceRequestWait: return requestWait(); case EndDeviceResetStart: return resetStart(); case EndDeviceResetWait: return resetWait(); case EndDeviceWaking: return waking(); default: { DEBUG_MSG("Bad state!"); } return TICK_UNKNOWN_ERROR; } }
void CSMWorld::IdTree::setNestedTable(const QModelIndex& index, const CSMWorld::NestedTableWrapperBase& nestedTable) { if (!hasChildren(index)) throw std::logic_error("Tried to set nested table, but index has no children"); bool removeRowsMode = false; if (nestedTable.size() != this->nestedTable(index)->size()) { emit resetStart(this->index(index.row(), 0).data().toString()); removeRowsMode = true; } mNestedCollection->setNestedTable(index.row(), index.column(), nestedTable); emit dataChanged (CSMWorld::IdTree::index (index.row(), 0), CSMWorld::IdTree::index (index.row(), idCollection()->getColumns()-1)); if (removeRowsMode) { emit resetEnd(this->index(index.row(), 0).data().toString()); } }