[Feature][ZXW-65]merged P49 base code
Change-Id: I3e09c0c3d47483bc645f02310380ecb7fc6f4041
diff --git a/ap/os/linux/linux-3.4.x/ipc/cross_msg.h b/ap/os/linux/linux-3.4.x/ipc/cross_msg.h
new file mode 100755
index 0000000..eedcd6f
--- /dev/null
+++ b/ap/os/linux/linux-3.4.x/ipc/cross_msg.h
@@ -0,0 +1,62 @@
+/*
+ * linux/ipc/cross_msg.h
+ * Copyright (C) 2023 Sanechips Technology Co., Ltd.
+ */
+#ifndef _CROSS_MSG_H
+#define _CROSS_MSG_H
+
+#ifdef CONFIG_SYSVIPC_CROSSMSG
+#include <linux/soc/zte/rpm/rpmsg.h>
+
+#define CROSS_MSG_ACT CAP_ID
+#define CROSS_MSG_CHN 13
+#define CROSS_MSG_CHN_CAP 14
+#define CROSS_MSG_SIZE ((size_t)0x1000)
+#define CROSS_MSG_NUM (4)
+#define CROSS_CHN_SIZE ((size_t)CROSS_MSG_SIZE * CROSS_MSG_NUM)
+#define CROSS_PRINT "[MESSAGE QUEUE] "
+#define CROSS_DEBUG 0
+
+#define CROSS_MSG_HEAD 0xABBA
+#define CROSS_MSG_MASK 0xFFFF0000
+#define CROSS_REMOTE_MASK 0x80000000
+
+enum msg_function {
+ MSGGET_F = 0xAA,
+ MSGCTL_F = 0xBB,
+ MSGSND_F = 0xCC,
+ MSGRCV_F = 0xDD
+};
+
+struct msgget_para {
+ key_t key;
+ int msgflg;
+};
+
+struct msgctl_para {
+ struct msgget_para getp;
+ int cmd;
+};
+
+struct msgsnd_para {
+ struct msgget_para getp;
+ int msgflg;
+ size_t msgsz;
+};
+
+typedef struct msg_para {
+ unsigned short head;
+ unsigned short ops;
+ union {
+ struct msgctl_para ctlp;
+ struct msgsnd_para sndp;
+ struct {
+ int ret;
+ int merrno;
+ };
+ };
+} T_sc_msg_header;
+
+#endif
+#endif // _CROSS_MSG_H
+