39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
/*
|
|
* 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 */
|