blob: 27d5027497fd6b02d5a7f2b3b8443466e22ff576 [file] [log] [blame]
/*
* 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 */