#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)); Thread server_thread = server->RunServer(); check(server_thread.Join()); return 0; }