HRESULT nciCBInitialize(void) { HRESULT hResult = NO_ERROR; OFFSET_1394 addressLow; OFFSET_1394 addressHi; // Install callbacks for address ranges handled by the NCI /* Register Space. all NCI implemented Address ranges have this value for the upper 16 bits of the 48-bit address */ addressLow.High = REGISTER_SPACE_ADDR_HI; addressHi.High = REGISTER_SPACE_ADDR_HI; /* Architecture area, various low level registers, some already supported by the hardware */ addressLow.Low = CSR_ARCH_SPACE_START; addressHi.Low = CSR_ARCH_SPACE_END; hResult = lalAddressRangeRegisterCB (nciCBArchSpace, addressLow, addressHi); if (hResult != NO_ERROR) return hResult; // Serial Bus area, including IRM regs addressLow.Low = CSR_SB_SPACE_START; addressHi.Low = CSR_SB_SPACE_END; hResult = lalAddressRangeRegisterCB (nciCBSBSpace, addressLow, addressHi); if (hResult != NO_ERROR) return hResult; // Configuration ROM area, supports quadlet and block reads addressLow.Low = CSR_ROM_SPACE_START; addressHi.Low = CSR_ROM_SPACE_END; hResult = lalAddressRangeRegisterCB (nciCBConfigROM, addressLow, addressHi); if (hResult != NO_ERROR) return hResult; // TOPOLOGY_MAP, supports quadlet and block reads addressLow.Low = CSR_TOPOLOGY_MAP_START; addressHi.Low = CSR_TOPOLOGY_MAP_END; hResult = lalAddressRangeRegisterCB (nciCBTopologyMap, addressLow, addressHi); if (hResult != NO_ERROR) return hResult; // SPEED_MAP, supports quadlet and block reads addressLow.Low = CSR_SPEED_MAP_START; addressHi.Low = CSR_SPEED_MAP_END; hResult = lalAddressRangeRegisterCB (nciCBSpeedMap, addressLow, addressHi); if (hResult != NO_ERROR) return hResult; return hResult; }
HRESULT mixer8firewireInitialize(void) { HRESULT hResult = NO_ERROR; OFFSET_1394 mixer8Address, mixer8AddressHi; mixer8Address.High = MIXER8_BASE_START_HI; mixer8Address.Low = MIXER8_BASE_START; mixer8AddressHi.High = MIXER8_BASE_END_HI; mixer8AddressHi.Low = MIXER8_BASE_END; hResult = lalAddressRangeRegisterCB(&mixer8firewireCoreCallback,mixer8Address,mixer8AddressHi); return hResult; }
HRESULT cliCBInitialize(void) { HRESULT hResult = NO_ERROR; SYS_DEBUG(SYSDEBUG_TRACE_CLICB, "Remote CLI interface active\n\r"); SYS_DEBUG(SYSDEBUG_TRACE_CLICB, "CB Range is: %04hx_%08x to %04hx_%08x\n\r", cliDestOffsetLo.High, cliDestOffsetLo.Low, cliDestOffsetHi.High, cliDestOffsetHi.Low); // Install callbacks for address ranges handled by the CLI hResult = lalAddressRangeRegisterCB (cliCBCallback, cliDestOffsetLo, cliDestOffsetHi); if (hResult != NO_ERROR) return hResult; hResult = cliCBCreateMessageQueues(); if (hResult != NO_ERROR) return hResult; cliCBCliInstallTools(); return hResult; }