#include #include #include #include #include #include #include #include "ahci/ahci_driver.h" #include "denali_server.h" uint64_t main(uint64_t init_port_cap) { check(ParseInitPort(init_port_cap)); glcr::UniquePtr yellowstone = EndpointClient::AdoptEndpoint(gInitEndpointCap); YellowstoneStub stub(gInitEndpointCap); ASSIGN_OR_RETURN(MappedMemoryRegion ahci_region, stub.GetAhciConfig()); ASSIGN_OR_RETURN(auto driver, AhciDriver::Init(ahci_region)); ASSIGN_OR_RETURN(glcr::UniquePtr server, DenaliServer::Create(*driver)); ASSIGN_OR_RETURN(glcr::UniquePtr client, server->CreateClient()); check(stub.Register("denali", *client)); RET_ERR(server->RunServer()); // FIXME: Add thread join. return 0; }