blob: eedcd6fd1e264615c01a0e21fc315210813f15e7 [file] [log] [blame]
/*
* 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