Lines Matching refs:hb
157 static inline int hdlcdrv_hbuf_full(struct hdlcdrv_hdlcbuffer *hb) in hdlcdrv_hbuf_full() argument
162 spin_lock_irqsave(&hb->lock, flags); in hdlcdrv_hbuf_full()
163 ret = !((HDLCDRV_HDLCBUFFER - 1 + hb->rd - hb->wr) % HDLCDRV_HDLCBUFFER); in hdlcdrv_hbuf_full()
164 spin_unlock_irqrestore(&hb->lock, flags); in hdlcdrv_hbuf_full()
170 static inline int hdlcdrv_hbuf_empty(struct hdlcdrv_hdlcbuffer *hb) in hdlcdrv_hbuf_empty() argument
175 spin_lock_irqsave(&hb->lock, flags); in hdlcdrv_hbuf_empty()
176 ret = (hb->rd == hb->wr); in hdlcdrv_hbuf_empty()
177 spin_unlock_irqrestore(&hb->lock, flags); in hdlcdrv_hbuf_empty()
183 static inline unsigned short hdlcdrv_hbuf_get(struct hdlcdrv_hdlcbuffer *hb) in hdlcdrv_hbuf_get() argument
189 spin_lock_irqsave(&hb->lock, flags); in hdlcdrv_hbuf_get()
190 if (hb->rd == hb->wr) in hdlcdrv_hbuf_get()
193 newr = (hb->rd+1) % HDLCDRV_HDLCBUFFER; in hdlcdrv_hbuf_get()
194 val = hb->buf[hb->rd]; in hdlcdrv_hbuf_get()
195 hb->rd = newr; in hdlcdrv_hbuf_get()
197 spin_unlock_irqrestore(&hb->lock, flags); in hdlcdrv_hbuf_get()
203 static inline void hdlcdrv_hbuf_put(struct hdlcdrv_hdlcbuffer *hb, in hdlcdrv_hbuf_put() argument
209 spin_lock_irqsave(&hb->lock, flags); in hdlcdrv_hbuf_put()
210 newp = (hb->wr+1) % HDLCDRV_HDLCBUFFER; in hdlcdrv_hbuf_put()
211 if (newp != hb->rd) { in hdlcdrv_hbuf_put()
212 hb->buf[hb->wr] = val & 0xffff; in hdlcdrv_hbuf_put()
213 hb->wr = newp; in hdlcdrv_hbuf_put()
215 spin_unlock_irqrestore(&hb->lock, flags); in hdlcdrv_hbuf_put()