/* * Copyright (c) 2018, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef SPRT_COMMON_H #define SPRT_COMMON_H #define SPRT_MAX_MSG_ARGS 6 /* * Message types supported. */ #define SPRT_MSG_TYPE_SERVICE_HANDLE_OPEN 1 #define SPRT_MSG_TYPE_SERVICE_HANDLE_CLOSE 2 /* TODO: Add other types of SPRT messages. */ #define SPRT_MSG_TYPE_SERVICE_TUN_REQUEST 10 /* * Struct that defines the layout of the fields corresponding to a request in * shared memory. */ struct __attribute__((__packed__)) sprt_queue_entry_message { uint32_t type; /* Type of message (result of an SPCI call). */ uint16_t client_id; /* SPCI client ID */ uint16_t service_handle;/* SPCI service handle */ uint32_t session_id; /* Optional SPCI session ID */ uint32_t token; /* SPCI request token */ uint64_t args[SPRT_MAX_MSG_ARGS]; }; #define SPRT_QUEUE_ENTRY_MSG_SIZE (sizeof(struct sprt_queue_entry_message)) #define SPRT_QUEUE_NUM_BLOCKING 0 #define SPRT_QUEUE_NUM_NON_BLOCKING 1 #endif /* SPRT_COMMON_H */