[magma][fidl] Make semaphore vector non-nullable
There's no reason to have a null vector vs. an empty one. Also switch to
using zx.koid to match ReleaseObjectFIDL.
Test: astro:go/magma-tps#L0
Change-Id: I14e28823379047372013eac14608128dea75ead5
diff --git a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc
index 69a04ab..eae54b6 100644
--- a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc
+++ b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc
@@ -458,10 +458,9 @@
}
void ExecuteImmediateCommandsFIDL(uint32_t context_id, ::std::vector<uint8_t> command_data_vec,
- ::fidl::VectorPtr<uint64_t> semaphores) override
+ ::std::vector<uint64_t> semaphore_vec) override
{
DLOG("ZirconPlatformConnection: ExecuteImmediateCommandsFIDL");
- std::vector<uint64_t> semaphore_vec(semaphores.take());
magma::Status status = delegate_->ExecuteImmediateCommands(
context_id, command_data_vec.size(), command_data_vec.data(), semaphore_vec.size(),
semaphore_vec.data());
diff --git a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc
index 0e55acf..64f5a8a 100644
--- a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc
+++ b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc
@@ -165,14 +165,14 @@
// interface without copying.
std::vector<uint8_t> command_vec;
command_vec.reserve(command_bytes);
- fidl::VectorPtr<uint64_t> semaphore_vec;
- semaphore_vec->reserve(num_semaphores);
+ std::vector<uint64_t> semaphore_vec;
+ semaphore_vec.reserve(num_semaphores);
for (int i = 0; i < buffers_to_send; ++i) {
const auto& buffer = buffers[buffers_sent + i];
const auto buffer_data = static_cast<uint8_t*>(buffer.data);
std::copy(buffer_data, buffer_data + buffer.size, std::back_inserter(command_vec));
std::copy(buffer.semaphores, buffer.semaphores + buffer.semaphore_count,
- std::back_inserter(*semaphore_vec));
+ std::back_inserter(semaphore_vec));
}
magma_status_t result = MagmaChannelStatus(magma_fidl_->ExecuteImmediateCommandsFIDL(
context_id, std::move(command_vec), std::move(semaphore_vec)));
diff --git a/sdk/fidl/fuchsia.gpu.magma/magma.fidl b/sdk/fidl/fuchsia.gpu.magma/magma.fidl
index 6e4b5e5..88f0c87 100644
--- a/sdk/fidl/fuchsia.gpu.magma/magma.fidl
+++ b/sdk/fidl/fuchsia.gpu.magma/magma.fidl
@@ -52,7 +52,7 @@
// Submits a series of commands for execution on the GPU without using a command buffer.
ExecuteImmediateCommandsFIDL(uint32 context_id,
vector<uint8>:kReceiveBufferSize command_data,
- vector<uint64>? semaphores);
+ vector<zx.koid> semaphores);
// Retrieve the current magma error status.
GetErrorFIDL() -> (int32 magma_status);