Extend RPC parameters

The RPC model is extended to include parameters for identifying
an RPC interface instance at an endpoint and another for
identifying the parameter encoding.  The interface ID parameter
allows multiple service interfaces to be co-located.  The encoding
parameter allows clients to use different parameter serialization
schemes and to specify the format in each RPC request.

Signed-off-by: julhal01 <julian.hall@arm.com>
Change-Id: I201b3417dc0e9f655113b9931db3494e41f1d74b
diff --git a/protocols/rpc/common/packed-c/encoding.h b/protocols/rpc/common/packed-c/encoding.h
new file mode 100644
index 0000000..cd7093c
--- /dev/null
+++ b/protocols/rpc/common/packed-c/encoding.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef PROTOCOLS_RPC_COMMON_ENCODING_H
+#define PROTOCOLS_RPC_COMMON_ENCODING_H
+
+/*
+ * Encodings used for parameter serialization.
+ */
+enum
+{
+    /*
+     * Packed-c encoding.  A lightweight serialization scheme with
+     * C language definition files.
+     */
+    TS_RPC_ENCODING_PACKED_C        =  0,
+
+    /*
+     * Protocol Buffers serialization scheme with language independent
+     * definition files.  Supports client code generation using definition
+     * files.
+     */
+    TS_RPC_ENCODING_PROTOBUF        =  1,
+
+    /*
+     * The limit of known encodings.  As new encodings are added,
+     * the limit value should be allowed to increase.  An RPC interface
+     * that was built before a new encoding was added should safely
+     * reject an unsupported encoding.
+     */
+    TS_RPC_ENCODING_LIMIT
+};
+
+#endif /* PROTOCOLS_RPC_COMMON_ENCODING_H */