]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/rm-lld.git/blobdiff - src/rm_transport.c
Added new transport APIs and daemonized the Linux RM Server app
[keystone-rtos/rm-lld.git] / src / rm_transport.c
index 134a1ef06c79ca3666852321d7ac3315af28e5b8..933f4ffb023685d40af6887dfef0c9de53de065d 100644 (file)
@@ -164,45 +164,57 @@ Rm_Transport *rmTransportFindRemoteInstType(Rm_Transport *transports, Rm_InstTyp
     return (transports);\r
 }\r
 \r
-int32_t getPktSrcNames(const Rm_Packet *pkt, char *pktSrc, char *serviceSrc)\r
+/* FUNCTION PURPOSE: Returns RM packet source instance\r
+ ***********************************************************************\r
+ * DESCRIPTION: Can return the RM instance name for one of two things:\r
+ *                  - RM instance from which provided RM packet originated\r
+ *                  - RM instance from which the service request contained\r
+ *                    in the provided RM packet originated\r
+ */\r
+int32_t getPktSrcNames(const Rm_Packet *pkt, char *pktSrc, char *serviceSrc, int32_t bufLen)\r
 {\r
     int32_t retVal = RM_OK;\r
 \r
-    switch (pkt->pktType) {\r
-        case Rm_pktType_RESOURCE_REQUEST:\r
-        {\r
-            Rm_ResourceRequestPkt *resourceReqPkt = (Rm_ResourceRequestPkt *)pkt->data;\r
+    if (bufLen != RM_NAME_MAX_CHARS) {\r
+        retVal = RM_ERROR_SRC_NAME_BUF_INVALID_SIZE;\r
+    }\r
+    else {\r
+        switch (pkt->pktType) {\r
+            case Rm_pktType_RESOURCE_REQUEST:\r
+            {\r
+                Rm_ResourceRequestPkt *resourceReqPkt = (Rm_ResourceRequestPkt *)pkt->data;\r
 \r
-            if (pktSrc){\r
-                strncpy(pktSrc, resourceReqPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
-            }\r
+                if (pktSrc){\r
+                    strncpy(pktSrc, resourceReqPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
+                }\r
+\r
+                if (serviceSrc) {\r
+                    strncpy(serviceSrc, resourceReqPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+                }\r
 \r
-            if (serviceSrc) {\r
-                strncpy(serviceSrc, resourceReqPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+                break;\r
             }\r
+            case Rm_pktType_NAMESERVER_REQUEST:\r
+            {\r
+                Rm_NsRequestPkt *nsRequestPkt = (Rm_NsRequestPkt *)pkt->data;\r
 \r
-            break;\r
-        }\r
-        case Rm_pktType_NAMESERVER_REQUEST:\r
-        {\r
-            Rm_NsRequestPkt *nsRequestPkt = (Rm_NsRequestPkt *)pkt->data;\r
+                if (pktSrc){\r
+                    strncpy(pktSrc, nsRequestPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
+                }\r
 \r
-            if (pktSrc){\r
-                strncpy(pktSrc, nsRequestPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
-            }\r
+                if (serviceSrc) {\r
+                    strncpy(serviceSrc, nsRequestPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+                }\r
 \r
-            if (serviceSrc) {\r
-                strncpy(serviceSrc, nsRequestPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+                break;\r
+            }\r
+            case Rm_pktType_RESOURCE_RESPONSE:\r
+            case Rm_pktType_NAMESERVER_RESPONSE:\r
+            default:\r
+            {\r
+                retVal = RM_ERROR_PKT_AND_SERVICE_SRC_NOT_AVAIL;\r
+                break;\r
             }\r
-\r
-            break;\r
-        }\r
-        case Rm_pktType_RESOURCE_RESPONSE:\r
-        case Rm_pktType_NAMESERVER_RESPONSE:\r
-        default:\r
-        {\r
-            retVal = RM_ERROR_PKT_AND_SERVICE_NAME_NOT_AVAIL;\r
-            break;\r
         }\r
     }\r
 \r
@@ -213,26 +225,6 @@ int32_t getPktSrcNames(const Rm_Packet *pkt, char *pktSrc, char *serviceSrc)
  ********************* Application visible APIs ***********************\r
  **********************************************************************/\r
 \r
-/* FUNCTION PURPOSE: Returns a RM packet's service source instance name\r
- ***********************************************************************\r
- * DESCRIPTION: Returns the RM instance name from which the service\r
- *              encapsulated in the RM packet originated.\r
- */\r
-int32_t Rm_pktGetServiceSrcName(const Rm_Packet *pkt, char *serviceInstName)\r
-{\r
-    return(getPktSrcNames(pkt, NULL, serviceInstName));\r
-}\r
-\r
-/* FUNCTION PURPOSE: Returns a RM packet's source instance name\r
- ***********************************************************************\r
- * DESCRIPTION: Returns the RM instance name from which the RM packet\r
- *              originated.\r
- */\r
-int32_t Rm_pktGetPktSrcName(const Rm_Packet *pkt, char *pktInstName)\r
-{\r
-    return(getPktSrcNames(pkt, pktInstName, NULL));\r
-}\r
-\r
 /* FUNCTION PURPOSE: Registers an app transport with a RM instance\r
  ***********************************************************************\r
  * DESCRIPTION: Returns a transport handle to the application that\r
@@ -367,6 +359,28 @@ int32_t Rm_transportUnregister(Rm_TransportHandle transportHandle)
     return (retVal);\r
 }\r
 \r
+/* FUNCTION PURPOSE: Returns a RM packet's service source instance name\r
+ ***********************************************************************\r
+ * DESCRIPTION: Returns the RM instance name from which the service\r
+ *              encapsulated in the RM packet originated.\r
+ */\r
+int32_t Rm_receiveGetPktServiceSrcName(const Rm_Packet *pkt, char *serviceInstName, \r
+                                         int32_t charBufLen)\r
+{\r
+    return(getPktSrcNames(pkt, NULL, serviceInstName, charBufLen));\r
+}\r
+\r
+/* FUNCTION PURPOSE: Returns a RM packet's source instance name\r
+ ***********************************************************************\r
+ * DESCRIPTION: Returns the RM instance name from which the RM packet\r
+ *              originated.\r
+ */\r
+int32_t Rm_receiveGetPktSrcName(const Rm_Packet *pkt, char *pktInstName, \r
+                                  int32_t charBufLen)\r
+{\r
+    return(getPktSrcNames(pkt, pktInstName, NULL, charBufLen));\r
+}\r
+\r
 /* FUNCTION PURPOSE: Receives RM packets\r
  ***********************************************************************\r
  * DESCRIPTION: The application provides RM packets received on the\r