/* * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved. * SPDX-License-Identifier: BSD-3-Clause */ #ifndef TS_DISCOVERY_GET_SERVICE_INFO_H #define TS_DISCOVERY_GET_SERVICE_INFO_H #include /** * Parameter definitions for the GET_SERVICE_INFO operation. * * Returns information about how to communicate with the service * interface. */ /* Mandatory fixed sized output parameters */ struct __attribute__ ((__packed__)) ts_discovery_get_service_info_out { /* The RPC interface id that should be used to * communicate with this service provder instance. */ uint16_t interface_id; /* The instance number assigned to this service provider. * Used for identifying a particular instance of a service * provider within a system that may host multiple instances. * This instance may be used as a binding by clients and may be * reflected at the kernel/userspace interface via a device node * with a particular instance e.g. /dev/tpm0. */ uint16_t instance; /* A bitmap of supported access protocol encodings for parameter * serialization. A service provider may support 1..* encodings. */ uint32_t supported_encodings; /* The maximum supported payloadsize for an RPC call request or * response. This limit will be imposed by the underlying RPC * layer used by a client to call service operations. If the * maximum payload size is different between call requests and * responses, the smaller value should be used. */ uint32_t max_payload; }; /* Variable length output parameter tags */ enum { /* Identifies the service naming authority e.g 'trustedfirmware.org' */ TS_DISOVERY_GET_SERVICE_INFO_OUT_TAG_NAME_AUTHORITY = 1, /* The service name string assigned by the naming authority e.g. 'crypto' */ TS_DISOVERY_GET_SERVICE_INFO_OUT_TAG_SERVICE_NAME = 2 }; #endif /* TS_DISCOVERY_GET_SERVICE_INFO_H */