Loading include/linux/kfifo.h +42 −0 Original line number Diff line number Diff line Loading @@ -517,6 +517,26 @@ __kfifo_uint_must_check_helper( \ __ret; \ }) /** * kfifo_in_spinlocked_noirqsave - put data into fifo using a spinlock for * locking, don't disable interrupts * @fifo: address of the fifo to be used * @buf: the data to be added * @n: number of elements to be added * @lock: pointer to the spinlock to use for locking * * This is a variant of kfifo_in_spinlocked() but uses spin_lock/unlock() * for locking and doesn't disable interrupts. */ #define kfifo_in_spinlocked_noirqsave(fifo, buf, n, lock) \ ({ \ unsigned int __ret; \ spin_lock(lock); \ __ret = kfifo_in(fifo, buf, n); \ spin_unlock(lock); \ __ret; \ }) /* alias for kfifo_in_spinlocked, will be removed in a future release */ #define kfifo_in_locked(fifo, buf, n, lock) \ kfifo_in_spinlocked(fifo, buf, n, lock) Loading Loading @@ -569,6 +589,28 @@ __kfifo_uint_must_check_helper( \ }) \ ) /** * kfifo_out_spinlocked_noirqsave - get data from the fifo using a spinlock * for locking, don't disable interrupts * @fifo: address of the fifo to be used * @buf: pointer to the storage buffer * @n: max. number of elements to get * @lock: pointer to the spinlock to use for locking * * This is a variant of kfifo_out_spinlocked() which uses spin_lock/unlock() * for locking and doesn't disable interrupts. */ #define kfifo_out_spinlocked_noirqsave(fifo, buf, n, lock) \ __kfifo_uint_must_check_helper( \ ({ \ unsigned int __ret; \ spin_lock(lock); \ __ret = kfifo_out(fifo, buf, n); \ spin_unlock(lock); \ __ret; \ }) \ ) /* alias for kfifo_out_spinlocked, will be removed in a future release */ #define kfifo_out_locked(fifo, buf, n, lock) \ kfifo_out_spinlocked(fifo, buf, n, lock) Loading Loading
include/linux/kfifo.h +42 −0 Original line number Diff line number Diff line Loading @@ -517,6 +517,26 @@ __kfifo_uint_must_check_helper( \ __ret; \ }) /** * kfifo_in_spinlocked_noirqsave - put data into fifo using a spinlock for * locking, don't disable interrupts * @fifo: address of the fifo to be used * @buf: the data to be added * @n: number of elements to be added * @lock: pointer to the spinlock to use for locking * * This is a variant of kfifo_in_spinlocked() but uses spin_lock/unlock() * for locking and doesn't disable interrupts. */ #define kfifo_in_spinlocked_noirqsave(fifo, buf, n, lock) \ ({ \ unsigned int __ret; \ spin_lock(lock); \ __ret = kfifo_in(fifo, buf, n); \ spin_unlock(lock); \ __ret; \ }) /* alias for kfifo_in_spinlocked, will be removed in a future release */ #define kfifo_in_locked(fifo, buf, n, lock) \ kfifo_in_spinlocked(fifo, buf, n, lock) Loading Loading @@ -569,6 +589,28 @@ __kfifo_uint_must_check_helper( \ }) \ ) /** * kfifo_out_spinlocked_noirqsave - get data from the fifo using a spinlock * for locking, don't disable interrupts * @fifo: address of the fifo to be used * @buf: pointer to the storage buffer * @n: max. number of elements to get * @lock: pointer to the spinlock to use for locking * * This is a variant of kfifo_out_spinlocked() which uses spin_lock/unlock() * for locking and doesn't disable interrupts. */ #define kfifo_out_spinlocked_noirqsave(fifo, buf, n, lock) \ __kfifo_uint_must_check_helper( \ ({ \ unsigned int __ret; \ spin_lock(lock); \ __ret = kfifo_out(fifo, buf, n); \ spin_unlock(lock); \ __ret; \ }) \ ) /* alias for kfifo_out_spinlocked, will be removed in a future release */ #define kfifo_out_locked(fifo, buf, n, lock) \ kfifo_out_spinlocked(fifo, buf, n, lock) Loading