aboutsummaryrefslogtreecommitdiffstats
path: root/include/cluster_ipc.h
diff options
context:
space:
mode:
authorNaoto Yamaguchi <i33399_yamaguchi@aisin-aw.co.jp>2021-08-04 09:35:49 +0000
committerNaoto Yamaguchi <i33399_yamaguchi@aisin-aw.co.jp>2021-08-04 09:39:44 +0000
commitb27fb69aa966866920e86b10f7d10326a0042e33 (patch)
treef90fec01a1f9dcbc0aedd7ecad199148e8dd335c /include/cluster_ipc.h
parent8203dc658421473aed7e2236aabb1992a9011dfe (diff)
parent61bf7d8b56d97e1600980f44ffd97df07febfb80 (diff)
Import cluster-ipc source code from experimental repositorylamprey_12.0.1lamprey/12.0.1koi_11.0.4koi/11.0.412.0.111.0.4
Maruyama-san et al. are developing instrument cluster ipc library in in experimental repository. This patch is upstreaming that source code. Previous commit message is not match AGL commit message requirement. But, that commit message need to record who is contributed. Merge remote-tracking branch 'github/main' Signed-off-by: Naoto Yamaguchi <i33399_yamaguchi@aisin-aw.co.jp>
Diffstat (limited to 'include/cluster_ipc.h')
-rw-r--r--include/cluster_ipc.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/cluster_ipc.h b/include/cluster_ipc.h
new file mode 100644
index 0000000..64b731c
--- /dev/null
+++ b/include/cluster_ipc.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2021, Nippon Seiki Co., Ltd.
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef IPC_H
+#define IPC_H
+
+#include <ipc_protocol.h>
+
+// Environment Variable for unix-domain-socket file path
+#define IPC_ENV_DOMAIN_SOCKET_PATH "IPC_DOMAIN_PATH"
+
+// return value for API
+typedef enum {
+ IPC_RET_OK = 0,
+ IPC_ERR_PARAM,
+ IPC_ERR_SEQUENCE,
+ IPC_ERR_NO_RESOURCE,
+ IPC_ERR_OTHER
+} IPC_RET_E;
+
+// format of callback function
+typedef void (*IPC_CHANGE_NOTIFY_CB)(void* pData, signed int size, int kind);
+
+// for Server Function
+IPC_RET_E ipcServerStart(IPC_USAGE_TYPE_E usageType);
+IPC_RET_E ipcSendMessage(IPC_USAGE_TYPE_E usageType, const void* pData, signed int size);
+IPC_RET_E ipcServerStop(IPC_USAGE_TYPE_E usageType);
+
+// for Client Function
+IPC_RET_E ipcClientStart(IPC_USAGE_TYPE_E usageType);
+IPC_RET_E ipcReadDataPool(IPC_USAGE_TYPE_E usageType, void* pData, signed int* pSize);
+IPC_RET_E ipcRegisterCallback(IPC_USAGE_TYPE_E usageType, IPC_CHANGE_NOTIFY_CB changeNotifyCb);
+IPC_RET_E ipcClientStop(IPC_USAGE_TYPE_E usageType);
+
+#endif // IPC_H