]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/plat-omap/mailbox.h
ARM:OMAP: Integrated blk request queues for mbox fwk
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / mailbox.h
index c3f8f2c56b4f15c17412014be824ee6f27724221..9b6027135dead90885c7d1a6c70639fc5bf4d669 100644 (file)
 #ifndef __ARCH_ARM_PLAT_MAILBOX_H
 #define __ARCH_ARM_PLAT_MAILBOX_H
 
-/*
- * Mailbox queue handling API
- */
-
-#define MBQ_DEPTH      16
-struct omap_mbq {
-       rwlock_t lock;
-       mbox_msg_t msg[MBQ_DEPTH];
-       mbox_msg_t *rp, *wp;
-       int cnt;
-};
-
-static inline int mbq_init(struct omap_mbq **addr)
-{
-       struct omap_mbq *m = kmalloc(sizeof(struct omap_mbq), GFP_KERNEL);
-       if (!m)
-               return -ENOMEM;
-
-       rwlock_init(&m->lock);
-
-       write_lock_irq(&m->lock);
-       m->rp = m->wp = &m->msg[0];
-       m->cnt = 0;
-       write_unlock_irq(&m->lock);
-
-       *addr = m;
-
-       return 0;
-}
-
-static inline int mbq_empty(struct omap_mbq *mbq)
-{
-       int ret;
-
-       read_lock_irq(&mbq->lock);
-       ret = (mbq->cnt == 0);
-       read_unlock_irq(&mbq->lock);
-
-       return ret;
-}
-
-static inline int mbq_full(struct omap_mbq *mbq)
-{
-       int ret;
-
-       read_lock_irq(&mbq->lock);
-       ret = (mbq->cnt == MBQ_DEPTH);
-       read_unlock_irq(&mbq->lock);
-
-       return ret;
-}
-
-static inline int mbq_add(struct omap_mbq *mbq, mbox_msg_t msg)
-{
-       int ret = 0;
-
-       write_lock_irq(&mbq->lock);
-
-       *mbq->wp = msg;
-       if (++mbq->wp == &mbq->msg[MBQ_DEPTH])
-               mbq->wp = &mbq->msg[0];
-
-       if (++mbq->cnt == MBQ_DEPTH)    /* full */
-               ret = -1;
-
-       write_unlock_irq(&mbq->lock);
-
-       return ret;
-}
-
-static inline mbox_msg_t mbq_get(struct omap_mbq *mbq)
-{
-       mbox_msg_t msg;
-
-       write_lock_irq(&mbq->lock);
-
-       msg = *mbq->rp;
-
-       if (++mbq->rp == &mbq->msg[MBQ_DEPTH])
-               mbq->rp = &mbq->msg[0];
-       mbq->cnt--;
-
-       write_unlock_irq(&mbq->lock);
-
-       return msg;
-}
-
-static inline void mbq_exit(struct omap_mbq **addr)
-{
-       if (*addr)
-               kfree(*addr);
-}
+#define MBOX_NAME_LEN 255
 
 /*
  * Mailbox sequence bit API