⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailbox.h

📁 linux 内核源代码
💻 H
字号:
/* * Mailbox internal functions * * Copyright (C) 2006 Nokia Corporation * Written by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> * * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. */#ifndef __ARCH_ARM_PLAT_MAILBOX_H#define __ARCH_ARM_PLAT_MAILBOX_H/* * Mailbox sequence bit API */#if defined(CONFIG_ARCH_OMAP1)#  define MBOX_USE_SEQ_BIT#elif defined(CONFIG_ARCH_OMAP2)#  define MBOX_USE_SEQ_BIT#endif#ifdef MBOX_USE_SEQ_BIT/* seq_rcv should be initialized with any value other than * 0 and 1 << 31, to allow either value for the first * message.  */static inline void mbox_seq_init(struct omap_mbox *mbox){	/* any value other than 0 and 1 << 31 */	mbox->seq_rcv = 0xffffffff;}static inline void mbox_seq_toggle(struct omap_mbox *mbox, mbox_msg_t * msg){	/* add seq_snd to msg */	*msg = (*msg & 0x7fffffff) | mbox->seq_snd;	/* flip seq_snd */	mbox->seq_snd ^= 1 << 31;}static inline int mbox_seq_test(struct omap_mbox *mbox, mbox_msg_t msg){	mbox_msg_t seq = msg & (1 << 31);	if (seq == mbox->seq_rcv)		return -1;	mbox->seq_rcv = seq;	return 0;}#elsestatic inline void mbox_seq_init(struct omap_mbox *mbox){}static inline void mbox_seq_toggle(struct omap_mbox *mbox, mbox_msg_t * msg){}static inline int mbox_seq_test(struct omap_mbox *mbox, mbox_msg_t msg){	return 0;}#endif/* Mailbox FIFO handle functions */static inline mbox_msg_t mbox_fifo_read(struct omap_mbox *mbox){	return mbox->ops->fifo_read(mbox);}static inline void mbox_fifo_write(struct omap_mbox *mbox, mbox_msg_t msg){	mbox->ops->fifo_write(mbox, msg);}static inline int mbox_fifo_empty(struct omap_mbox *mbox){	return mbox->ops->fifo_empty(mbox);}static inline int mbox_fifo_full(struct omap_mbox *mbox){	return mbox->ops->fifo_full(mbox);}/* Mailbox IRQ handle functions */static inline void enable_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq){	mbox->ops->enable_irq(mbox, irq);}static inline void disable_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq){	mbox->ops->disable_irq(mbox, irq);}static inline void ack_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq){	if (mbox->ops->ack_irq)		mbox->ops->ack_irq(mbox, irq);}static inline int is_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq){	return mbox->ops->is_irq(mbox, irq);}#endif				/* __ARCH_ARM_PLAT_MAILBOX_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -