CudaBufferDescriptor

This is a ROS message definition.

Source

# Copyright 2026 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

uint64 size                    # Allocation size in bytes
string element_type_name       # Type name for validation (e.g., "h" for uint8_t)
int32 device_id                # CUDA device ID of the source GPU

# IPC metadata for VMM-based zero-copy sharing
bool use_ipc                   # True if IPC handles are valid
int32 vmm_pid                  # Publisher process ID
uint32 vmm_block_id            # Block ID in the publisher's pool
uint64 vmm_block_size          # Block size (for import mapping)
string vmm_socket_path         # Unix socket path to receive block FD
uint64 ipc_uid                 # Unique ID per publish for staleness detection

# CUDA IPC event for inter-process GPU synchronization
uint8[64] ipc_event_handle     # cudaIpcEventHandle_t (64 bytes)

# CPU fallback data (empty when IPC is used)
uint8[] serialized_data