| /* | 
 |  * 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 | 
 |  |