[magma] Update magma protocol to match Fuchsia SDK

This change updates the magma protocol definition to match the latest
Fuchsia SDK release. It also updates dependent implementation files.

Bug: b/272307395
Test: m libgfxstream_backend
Change-Id: I10eedae41a195166b17a3543d220631ba2068af4
diff --git a/protocols/magma/magma.attrib b/protocols/magma/magma.attrib
index 7891b90..288b6f2 100644
--- a/protocols/magma/magma.attrib
+++ b/protocols/magma/magma.attrib
@@ -28,26 +28,28 @@
 	len size_out sizeof(uint64_t)
 	dir buffer_out out
 	len buffer_out sizeof(magma_buffer_t)
-
-magma_connection_export_buffer
-	dir buffer_handle_out out
-	len buffer_handle_out sizeof(magma_handle_t)
+	dir id_out out
+	len id_out sizeof(magma_buffer_id_t)
 
 magma_connection_import_buffer
+	dir size_out out
+	len size_out sizeof(uint64_t)
 	dir buffer_out out
 	len buffer_out sizeof(magma_buffer_t)
+	dir id_out out
+	len id_out sizeof(magma_buffer_id_t)
 
 magma_connection_create_semaphore
 	dir semaphore_out out
 	len semaphore_out sizeof(magma_semaphore_t)
-
-magma_connection_export_semaphore
-	dir semaphore_handle_out out
-	len semaphore_handle_out sizeof(magma_handle_t)
+	dir id_out out
+	len id_out sizeof(magma_semaphore_id_t)
 
 magma_connection_import_semaphore
 	dir semaphore_out out
 	len semaphore_out sizeof(magma_semaphore_t)
+	dir id_out out
+	len id_out sizeof(magma_semaphore_id_t)
 
 magma_connection_read_notification_channel
 	dir buffer out
@@ -69,6 +71,14 @@
 	dir handle_out out
 	len handle_out sizeof(magma_handle_t)
 
+magma_buffer_export
+	dir buffer_handle_out out
+	len buffer_handle_out sizeof(magma_handle_t)
+
+magma_semaphore_export
+	dir semaphore_handle_out out
+	len semaphore_handle_out sizeof(magma_handle_t)
+
 magma_connection_create_performance_counter_buffer_pool
 	dir pool_id_out out
 	len pool_id_out sizeof(magma_perf_count_pool_t)
diff --git a/protocols/magma/magma.in b/protocols/magma/magma.in
index 866eb3e..404b767 100644
--- a/protocols/magma/magma.in
+++ b/protocols/magma/magma.in
@@ -6,15 +6,13 @@
 MAGMA(magma_status_t, magma_connection_get_error, magma_connection_t connection)
 MAGMA(magma_status_t, magma_connection_create_context, magma_connection_t connection, uint32_t* context_id_out)
 MAGMA(void, magma_connection_release_context, magma_connection_t connection, uint32_t context_id)
-MAGMA(magma_status_t, magma_connection_create_buffer, magma_connection_t connection, uint64_t size, uint64_t* size_out, magma_buffer_t* buffer_out)
+MAGMA(magma_status_t, magma_connection_create_buffer, magma_connection_t connection, uint64_t size, uint64_t* size_out, magma_buffer_t* buffer_out, magma_buffer_id_t* id_out)
 MAGMA(void, magma_connection_release_buffer, magma_connection_t connection, magma_buffer_t buffer)
-MAGMA(magma_status_t, magma_connection_export_buffer, magma_connection_t connection, magma_buffer_t buffer, magma_handle_t* buffer_handle_out)
-MAGMA(magma_status_t, magma_connection_import_buffer, magma_connection_t connection, magma_handle_t buffer_handle, magma_buffer_t* buffer_out)
-MAGMA(magma_status_t, magma_connection_create_semaphore, magma_connection_t connection, magma_semaphore_t* semaphore_out)
+MAGMA(magma_status_t, magma_connection_import_buffer, magma_connection_t connection, magma_handle_t buffer_handle, uint64_t* size_out, magma_buffer_t* buffer_out, magma_buffer_id_t* id_out)
+MAGMA(magma_status_t, magma_connection_create_semaphore, magma_connection_t connection, magma_semaphore_t* semaphore_out, magma_semaphore_id_t* id_out)
 MAGMA(void, magma_connection_release_semaphore, magma_connection_t connection, magma_semaphore_t semaphore)
-MAGMA(magma_status_t, magma_connection_export_semaphore, magma_connection_t connection, magma_semaphore_t semaphore, magma_handle_t* semaphore_handle_out)
-MAGMA(magma_status_t, magma_connection_import_semaphore, magma_connection_t connection, magma_handle_t semaphore_handle, magma_semaphore_t* semaphore_out)
-MAGMA(magma_status_t, magma_connection_buffer_range_op, magma_connection_t connection, magma_buffer_t buffer, uint32_t options, uint64_t start_offset, uint64_t length)
+MAGMA(magma_status_t, magma_connection_import_semaphore, magma_connection_t connection, magma_handle_t semaphore_handle, magma_semaphore_t* semaphore_out, magma_semaphore_id_t* id_out)
+MAGMA(magma_status_t, magma_connection_perform_buffer_op, magma_connection_t connection, magma_buffer_t buffer, uint32_t options, uint64_t start_offset, uint64_t length)
 MAGMA(magma_status_t, magma_connection_map_buffer, magma_connection_t connection, uint64_t hw_va, magma_buffer_t buffer, uint64_t offset, uint64_t length, uint64_t map_flags)
 MAGMA(void, magma_connection_unmap_buffer, magma_connection_t connection, uint64_t hw_va, magma_buffer_t buffer)
 # MAGMA(magma_status_t, magma_connection_execute_command, magma_connection_t connection, uint32_t context_id, magma_command_descriptor_t* descriptor)
@@ -24,19 +22,18 @@
 MAGMA(magma_status_t, magma_connection_flush, magma_connection_t connection)
 MAGMA(magma_handle_t, magma_connection_get_notification_channel_handle, magma_connection_t connection)
 MAGMA(magma_status_t, magma_connection_read_notification_channel, magma_connection_t connection, void* buffer, uint64_t buffer_size, uint64_t* buffer_size_out, magma_bool_t* more_data_out)
-MAGMA(uint64_t, magma_buffer_get_id, magma_buffer_t buffer)
-MAGMA(uint64_t, magma_buffer_get_size, magma_buffer_t buffer)
 MAGMA(magma_status_t, magma_buffer_clean_cache, magma_buffer_t buffer, uint64_t offset, uint64_t size, magma_cache_operation_t operation)
 MAGMA(magma_status_t, magma_buffer_set_cache_policy, magma_buffer_t buffer, magma_cache_policy_t policy)
 MAGMA(magma_status_t, magma_buffer_get_cache_policy, magma_buffer_t buffer, magma_cache_policy_t* cache_policy_out)
 # MAGMA(magma_status_t, magma_buffer_set_name, magma_buffer_t buffer, const char* name)
 MAGMA(magma_status_t, magma_buffer_set_name, magma_buffer_t buffer, void* name, uint64_t name_size)
-# MAGMA(magma_status_t, magma_buffer_get_info, magma_connection_t connection, magma_buffer_t buffer, magma_buffer_info_t* info_out)
+# MAGMA(magma_status_t, magma_buffer_get_info, magma_buffer_t buffer, magma_buffer_info_t* info_out)
 MAGMA(magma_status_t, magma_buffer_get_info, uint64_t* parameters, uint64_t parameter_count)
 MAGMA(magma_status_t, magma_buffer_get_handle, magma_buffer_t buffer, magma_handle_t* handle_out)
-MAGMA(uint64_t, magma_semaphore_get_id, magma_semaphore_t semaphore)
+MAGMA(magma_status_t, magma_buffer_export, magma_buffer_t buffer, magma_handle_t* buffer_handle_out)
 MAGMA(void, magma_semaphore_signal, magma_semaphore_t semaphore)
 MAGMA(void, magma_semaphore_reset, magma_semaphore_t semaphore)
+MAGMA(magma_status_t, magma_semaphore_export, magma_semaphore_t semaphore, magma_handle_t* semaphore_handle_out)
 MAGMA(magma_status_t, magma_poll, magma_poll_item_t* items, uint32_t count, uint64_t timeout_ns)
 MAGMA(magma_status_t, magma_initialize_tracing, magma_handle_t channel)
 MAGMA(magma_status_t, magma_initialize_logging, magma_handle_t channel)
@@ -50,7 +47,7 @@
 MAGMA(magma_status_t, magma_connection_dump_performance_counters, magma_connection_t connection, magma_perf_count_pool_t pool_id, uint32_t trigger_id)
 MAGMA(magma_status_t, magma_connection_clear_performance_counters, magma_connection_t connection, uint64_t* counters, uint64_t counters_count)
 MAGMA(magma_status_t, magma_connection_read_performance_counter_completion, magma_connection_t connection, magma_perf_count_pool_t pool_id, uint32_t* trigger_id_out, uint64_t* buffer_id_out, uint32_t* buffer_offset_out, uint64_t* time_out, uint32_t* result_flags_out)
-# MAGMA(magma_status_t, magma_virt_connection_create_image, magma_connection_t connection, magma_image_create_info_t* create_info, magma_buffer_t* image_out)
+# MAGMA(magma_status_t, magma_virt_connection_create_image, magma_connection_t connection, magma_image_create_info_t* create_info, uint64_t* size_out, magma_buffer_t* image_out, magma_buffer_id_t* buffer_id_out)
 MAGMA(magma_status_t, magma_virt_connection_create_image, uint64_t* parameters, uint64_t parameter_count)
 # MAGMA(magma_status_t, magma_virt_connection_get_image_info, magma_connection_t connection, magma_buffer_t image, magma_image_info_t* image_info_out)
 MAGMA(magma_status_t, magma_virt_connection_get_image_info, uint64_t* parameters, uint64_t parameter_count)
diff --git a/protocols/magma/magma.types b/protocols/magma/magma.types
index 4ea127c..3267aaf 100644
--- a/protocols/magma/magma.types
+++ b/protocols/magma/magma.types
@@ -33,6 +33,10 @@
 magma_handle_t 32 0x%x false
 magma_handle_t* 64 %p true
 magma_poll_item_t* 64 %p true
+magma_buffer_id_t 64 %lu false
+magma_buffer_id_t* 64 %p true
+magma_semaphore_id_t 64 %lu false
+magma_semaphore_id_t* 64 %p true
 
 # complex types are manually serialized:
 # magma_exec_resource_t