| /kernel/linux/linux-5.10/drivers/staging/media/atomisp/pci/hive_isp_css_common/host/ |
| D | debug_private.h | 30 return (debug_data_ptr->head == debug_data_ptr->tail); in is_debug_buffer_empty() 56 if (remote_tail > debug_data_ptr->tail) { in debug_synch_queue() 57 size_t delta = remote_tail - debug_data_ptr->tail; in debug_synch_queue() 60 debug_data_ptr->tail * sizeof(uint32_t), in debug_synch_queue() 61 (void *)&debug_data_ptr->buf[debug_data_ptr->tail], delta * sizeof(uint32_t)); in debug_synch_queue() 62 } else if (remote_tail < debug_data_ptr->tail) { in debug_synch_queue() 63 size_t delta = DEBUG_BUF_SIZE - debug_data_ptr->tail; in debug_synch_queue() 66 debug_data_ptr->tail * sizeof(uint32_t), in debug_synch_queue() 67 (void *)&debug_data_ptr->buf[debug_data_ptr->tail], delta * sizeof(uint32_t)); in debug_synch_queue() 72 debug_data_ptr->tail = remote_tail; in debug_synch_queue() [all …]
|
| /kernel/linux/linux-4.19/drivers/rpmsg/ |
| D | qcom_glink_smem.c | 39 __le32 *tail; member 55 u32 tail; in glink_smem_rx_avail() local 71 tail = le32_to_cpu(*pipe->tail); in glink_smem_rx_avail() 73 if (head < tail) in glink_smem_rx_avail() 74 return pipe->native.length - tail + head; in glink_smem_rx_avail() 76 return head - tail; in glink_smem_rx_avail() 84 u32 tail; in glink_smem_rx_peak() local 86 tail = le32_to_cpu(*pipe->tail); in glink_smem_rx_peak() 87 tail += offset; in glink_smem_rx_peak() 88 if (tail >= pipe->native.length) in glink_smem_rx_peak() [all …]
|
| D | qcom_glink_rpm.c | 50 void __iomem *tail; member 60 unsigned int tail; in glink_rpm_rx_avail() local 63 tail = readl(pipe->tail); in glink_rpm_rx_avail() 65 if (head < tail) in glink_rpm_rx_avail() 66 return pipe->native.length - tail + head; in glink_rpm_rx_avail() 68 return head - tail; in glink_rpm_rx_avail() 75 unsigned int tail; in glink_rpm_rx_peak() local 78 tail = readl(pipe->tail); in glink_rpm_rx_peak() 79 tail += offset; in glink_rpm_rx_peak() 80 if (tail >= pipe->native.length) in glink_rpm_rx_peak() [all …]
|
| /kernel/linux/linux-5.10/drivers/rpmsg/ |
| D | qcom_glink_smem.c | 39 __le32 *tail; member 55 u32 tail; in glink_smem_rx_avail() local 71 tail = le32_to_cpu(*pipe->tail); in glink_smem_rx_avail() 73 if (head < tail) in glink_smem_rx_avail() 74 return pipe->native.length - tail + head; in glink_smem_rx_avail() 76 return head - tail; in glink_smem_rx_avail() 84 u32 tail; in glink_smem_rx_peak() local 86 tail = le32_to_cpu(*pipe->tail); in glink_smem_rx_peak() 87 tail += offset; in glink_smem_rx_peak() 88 if (tail >= pipe->native.length) in glink_smem_rx_peak() [all …]
|
| D | qcom_glink_rpm.c | 50 void __iomem *tail; member 60 unsigned int tail; in glink_rpm_rx_avail() local 63 tail = readl(pipe->tail); in glink_rpm_rx_avail() 65 if (head < tail) in glink_rpm_rx_avail() 66 return pipe->native.length - tail + head; in glink_rpm_rx_avail() 68 return head - tail; in glink_rpm_rx_avail() 75 unsigned int tail; in glink_rpm_rx_peak() local 78 tail = readl(pipe->tail); in glink_rpm_rx_peak() 79 tail += offset; in glink_rpm_rx_peak() 80 if (tail >= pipe->native.length) in glink_rpm_rx_peak() [all …]
|
| /kernel/linux/linux-4.19/lib/ |
| D | list_sort.c | 22 struct list_head head, *tail = &head; in merge() local 27 tail->next = a; in merge() 30 tail->next = b; in merge() 33 tail = tail->next; in merge() 35 tail->next = a?:b; in merge() 52 struct list_head *tail = head; in merge_and_restore_back_links() local 58 tail->next = a; in merge_and_restore_back_links() 59 a->prev = tail; in merge_and_restore_back_links() 62 tail->next = b; in merge_and_restore_back_links() 63 b->prev = tail; in merge_and_restore_back_links() [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/kernel/ |
| D | perf_callchain.c | 20 * next frame tail. 23 user_backtrace(struct frame_tail __user *tail, in user_backtrace() argument 31 if (!access_ok(tail, sizeof(buftail))) in user_backtrace() 35 err = __copy_from_user_inatomic(&buftail, tail, sizeof(buftail)); in user_backtrace() 49 if (tail >= buftail.fp) in user_backtrace() 71 compat_user_backtrace(struct compat_frame_tail __user *tail, in compat_user_backtrace() argument 78 if (!access_ok(tail, sizeof(buftail))) in compat_user_backtrace() 82 err = __copy_from_user_inatomic(&buftail, tail, sizeof(buftail)); in compat_user_backtrace() 94 if (tail + 1 >= (struct compat_frame_tail __user *) in compat_user_backtrace() 114 struct frame_tail __user *tail; in perf_callchain_user() local [all …]
|
| /kernel/linux/linux-4.19/arch/arm64/kernel/ |
| D | perf_callchain.c | 30 * next frame tail. 33 user_backtrace(struct frame_tail __user *tail, in user_backtrace() argument 40 if (!access_ok(VERIFY_READ, tail, sizeof(buftail))) in user_backtrace() 44 err = __copy_from_user_inatomic(&buftail, tail, sizeof(buftail)); in user_backtrace() 56 if (tail >= buftail.fp) in user_backtrace() 78 compat_user_backtrace(struct compat_frame_tail __user *tail, in compat_user_backtrace() argument 85 if (!access_ok(VERIFY_READ, tail, sizeof(buftail))) in compat_user_backtrace() 89 err = __copy_from_user_inatomic(&buftail, tail, sizeof(buftail)); in compat_user_backtrace() 101 if (tail + 1 >= (struct compat_frame_tail __user *) in compat_user_backtrace() 121 struct frame_tail __user *tail; in perf_callchain_user() local [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/i915/gt/ |
| D | intel_ring.h | 27 void intel_ring_reset(struct intel_ring *ring, u32 tail); 90 assert_ring_tail_valid(const struct intel_ring *ring, unsigned int tail) in assert_ring_tail_valid() argument 94 GEM_BUG_ON(!intel_ring_offset_valid(ring, tail)); in assert_ring_tail_valid() 101 * "If the Ring Buffer Head Pointer and the Tail Pointer are on the in assert_ring_tail_valid() 102 * same cacheline, the Head Pointer must not be greater than the Tail in assert_ring_tail_valid() 111 GEM_BUG_ON(cacheline(tail) == cacheline(head) && tail < head); in assert_ring_tail_valid() 116 intel_ring_set_tail(struct intel_ring *ring, unsigned int tail) in intel_ring_set_tail() argument 118 /* Whilst writes to the tail are strictly order, there is no in intel_ring_set_tail() 119 * serialisation between readers and the writers. The tail may be in intel_ring_set_tail() 124 assert_ring_tail_valid(ring, tail); in intel_ring_set_tail() [all …]
|
| /kernel/linux/linux-4.19/drivers/net/ethernet/intel/fm10k/ |
| D | fm10k_mbx.c | 17 fifo->tail = 0; in fm10k_fifo_init() 28 return fifo->tail - fifo->head; in fm10k_fifo_used() 39 return fifo->size + fifo->head - fifo->tail; in fm10k_fifo_unused() 50 return fifo->head == fifo->tail; in fm10k_fifo_empty() 66 * fm10k_fifo_tail_offset - returns indices of tail with given offset 68 * @offset: offset to add to tail 70 * This function returns the indices into the FIFO based on tail + offset 74 return (fifo->tail + offset) & (fifo->size - 1); in fm10k_fifo_tail_offset() 120 fifo->head = fifo->tail; in fm10k_fifo_drop_all() 124 * fm10k_mbx_index_len - Convert a head/tail index into a length value [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/intel/fm10k/ |
| D | fm10k_mbx.c | 17 fifo->tail = 0; in fm10k_fifo_init() 28 return fifo->tail - fifo->head; in fm10k_fifo_used() 39 return fifo->size + fifo->head - fifo->tail; in fm10k_fifo_unused() 50 return fifo->head == fifo->tail; in fm10k_fifo_empty() 66 * fm10k_fifo_tail_offset - returns indices of tail with given offset 68 * @offset: offset to add to tail 70 * This function returns the indices into the FIFO based on tail + offset 74 return (fifo->tail + offset) & (fifo->size - 1); in fm10k_fifo_tail_offset() 120 fifo->head = fifo->tail; in fm10k_fifo_drop_all() 124 * fm10k_mbx_index_len - Convert a head/tail index into a length value [all …]
|
| /kernel/linux/linux-4.19/include/linux/ |
| D | circ_buf.h | 12 int tail; member 16 #define CIRC_CNT(head,tail,size) (((head) - (tail)) & ((size)-1)) argument 19 as a completely full buffer has head == tail, which is the same as 21 #define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size)) argument 24 accessing head and tail more than once, so they can change 26 #define CIRC_CNT_TO_END(head,tail,size) \ argument 27 ({int end = (size) - (tail); \ 32 #define CIRC_SPACE_TO_END(head,tail,size) \ argument 34 int n = (end + (tail)) & ((size)-1); \
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | circ_buf.h | 12 int tail; member 16 #define CIRC_CNT(head,tail,size) (((head) - (tail)) & ((size)-1)) argument 19 as a completely full buffer has head == tail, which is the same as 21 #define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size)) argument 24 accessing head and tail more than once, so they can change 26 #define CIRC_CNT_TO_END(head,tail,size) \ argument 27 ({int end = (size) - (tail); \ 32 #define CIRC_SPACE_TO_END(head,tail,size) \ argument 34 int n = (end + (tail)) & ((size)-1); \
|
| /kernel/linux/linux-4.19/kernel/locking/ |
| D | qspinlock.c | 52 * In particular; where the traditional MCS lock consists of a tail pointer 54 * unlock the next pending (next->locked), we compress both these: {tail, 60 * we can encode the tail by combining the 2-bit nesting level with the cpu 61 * number. With one byte for the lock value and 3 bytes for the tail, only a 107 * We must be able to distinguish between no-tail and the tail at 0:0, 113 u32 tail; in encode_tail() local 118 tail = (cpu + 1) << _Q_TAIL_CPU_OFFSET; in encode_tail() 119 tail |= idx << _Q_TAIL_IDX_OFFSET; /* assume < 4 */ in encode_tail() 121 return tail; in encode_tail() 124 static inline __pure struct mcs_spinlock *decode_tail(u32 tail) in decode_tail() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/infiniband/sw/rdmavt/ |
| D | cq.c | 76 u32 tail; in rvt_cq_enter() local 84 tail = RDMA_READ_UAPI_ATOMIC(u_wc->tail); in rvt_cq_enter() 89 tail = k_wc->tail; in rvt_cq_enter() 103 if (unlikely(next == tail || cq->cq_full)) { in rvt_cq_enter() 225 * Allocate the completion queue entries and head/tail pointers. in rvt_create_cq() 361 RDMA_READ_UAPI_ATOMIC(cq->queue->tail)) in rvt_req_notify_cq() 364 if (cq->kqueue->head != cq->kqueue->tail) in rvt_req_notify_cq() 383 u32 head, tail, n; in rvt_resize_cq() local 422 * Make sure head and tail are sane since they in rvt_resize_cq() 428 tail = RDMA_READ_UAPI_ATOMIC(old_u_wc->tail); in rvt_resize_cq() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireguard/ |
| D | queueing.c | 54 queue->head = queue->tail = STUB(queue); in wg_prev_queue_init() 80 struct sk_buff *tail = queue->tail, *next = smp_load_acquire(&NEXT(tail)); in wg_prev_queue_dequeue() local 82 if (tail == STUB(queue)) { in wg_prev_queue_dequeue() 85 queue->tail = next; in wg_prev_queue_dequeue() 86 tail = next; in wg_prev_queue_dequeue() 90 queue->tail = next; in wg_prev_queue_dequeue() 92 return tail; in wg_prev_queue_dequeue() 94 if (tail != READ_ONCE(queue->head)) in wg_prev_queue_dequeue() 97 next = smp_load_acquire(&NEXT(tail)); in wg_prev_queue_dequeue() 99 queue->tail = next; in wg_prev_queue_dequeue() [all …]
|
| /kernel/linux/linux-5.10/kernel/locking/ |
| D | qspinlock.c | 44 * In particular; where the traditional MCS lock consists of a tail pointer 46 * unlock the next pending (next->locked), we compress both these: {tail, 52 * we can encode the tail by combining the 2-bit nesting level with the cpu 53 * number. With one byte for the lock value and 3 bytes for the tail, only a 111 * We must be able to distinguish between no-tail and the tail at 0:0, 117 u32 tail; in encode_tail() local 119 tail = (cpu + 1) << _Q_TAIL_CPU_OFFSET; in encode_tail() 120 tail |= idx << _Q_TAIL_IDX_OFFSET; /* assume < 4 */ in encode_tail() 122 return tail; in encode_tail() 125 static inline __pure struct mcs_spinlock *decode_tail(u32 tail) in decode_tail() argument [all …]
|
| /kernel/linux/linux-4.19/net/sunrpc/ |
| D | xdr.c | 136 struct kvec *tail = xdr->tail; in xdr_inline_pages() local 146 tail->iov_base = buf + offset; in xdr_inline_pages() 147 tail->iov_len = buflen - offset; in xdr_inline_pages() 313 * moved into the inlined pages and/or the tail. 318 struct kvec *head, *tail; in xdr_shrink_bufhead() local 322 tail = buf->tail; in xdr_shrink_bufhead() 329 /* Shift the tail first */ in xdr_shrink_bufhead() 330 if (tail->iov_len != 0) { in xdr_shrink_bufhead() 331 if (tail->iov_len > len) { in xdr_shrink_bufhead() 332 copy = tail->iov_len - len; in xdr_shrink_bufhead() [all …]
|
| /kernel/linux/linux-5.10/lib/ |
| D | list_sort.c | 19 struct list_head *head, **tail = &head; in merge() local 24 *tail = a; in merge() 25 tail = &a->next; in merge() 28 *tail = b; in merge() 32 *tail = b; in merge() 33 tail = &b->next; in merge() 36 *tail = a; in merge() 55 struct list_head *tail = head; in merge_final() local 61 tail->next = a; in merge_final() 62 a->prev = tail; in merge_final() [all …]
|
| /kernel/linux/linux-4.19/drivers/infiniband/sw/rdmavt/ |
| D | cq.c | 86 if (unlikely(next == wc->tail)) { in rvt_cq_enter() 209 * Allocate the completion queue entries and head/tail pointers. in rvt_create_cq() 350 cq->queue->head != cq->queue->tail) in rvt_req_notify_cq() 369 u32 head, tail, n; in rvt_resize_cq() local 402 * Make sure head and tail are sane since they in rvt_resize_cq() 409 tail = old_wc->tail; in rvt_resize_cq() 410 if (tail > (u32)cq->ibcq.cqe) in rvt_resize_cq() 411 tail = (u32)cq->ibcq.cqe; in rvt_resize_cq() 412 if (head < tail) in rvt_resize_cq() 413 n = cq->ibcq.cqe + 1 + head - tail; in rvt_resize_cq() [all …]
|
| /kernel/linux/linux-5.10/Documentation/trace/ |
| D | ring-buffer-design.rst | 21 tail 191 It is possible that the page swapped is the commit page and the tail page, 196 reader page commit page tail page 227 tail page 253 +---------+ <--- tail pointer 278 +---------+ <--- tail pointer 291 +---------+ <--- tail pointer 302 +---------+ <--(last full commit and tail pointer) 311 The tail page points to the page with the last write (before 314 The tail page is always equal to or after the commit page. It may [all …]
|
| /kernel/linux/linux-4.19/Documentation/trace/ |
| D | ring-buffer-design.txt | 17 tail - where new writes happen in the ring buffer. 172 It is possible that the page swapped is the commit page and the tail page, 176 reader page commit page tail page 205 tail page - the page where the next write will take place. 229 +---------+ <--- tail pointer 254 +---------+ <--- tail pointer 267 +---------+ <--- tail pointer 278 +---------+ <--(last full commit and tail pointer) 287 The tail page points to the page with the last write (before 290 The tail page is always equal to or after the commit page. It may [all …]
|
| /kernel/linux/linux-4.19/arch/arm/kernel/ |
| D | perf_callchain.c | 31 * next frame tail. 34 user_backtrace(struct frame_tail __user *tail, in user_backtrace() argument 40 if (!access_ok(VERIFY_READ, tail, sizeof(buftail))) in user_backtrace() 44 err = __copy_from_user_inatomic(&buftail, tail, sizeof(buftail)); in user_backtrace() 56 if (tail + 1 >= buftail.fp) in user_backtrace() 65 struct frame_tail __user *tail; in perf_callchain_user() local 77 tail = (struct frame_tail __user *)regs->ARM_fp - 1; in perf_callchain_user() 80 tail && !((unsigned long)tail & 0x3)) in perf_callchain_user() 81 tail = user_backtrace(tail, entry); in perf_callchain_user()
|
| /kernel/linux/linux-5.10/arch/arm/kernel/ |
| D | perf_callchain.c | 31 * next frame tail. 34 user_backtrace(struct frame_tail __user *tail, in user_backtrace() argument 40 if (!access_ok(tail, sizeof(buftail))) in user_backtrace() 44 err = __copy_from_user_inatomic(&buftail, tail, sizeof(buftail)); in user_backtrace() 56 if (tail + 1 >= buftail.fp) in user_backtrace() 65 struct frame_tail __user *tail; in perf_callchain_user() local 77 tail = (struct frame_tail __user *)regs->ARM_fp - 1; in perf_callchain_user() 80 tail && !((unsigned long)tail & 0x3)) in perf_callchain_user() 81 tail = user_backtrace(tail, entry); in perf_callchain_user()
|
| /kernel/linux/linux-5.10/net/sunrpc/ |
| D | xdr.c | 184 struct kvec *tail = xdr->tail; in xdr_inline_pages() local 194 tail->iov_base = buf + offset; in xdr_inline_pages() 195 tail->iov_len = buflen - offset; in xdr_inline_pages() 197 tail->iov_len -= sizeof(__be32); in xdr_inline_pages() 272 struct kvec *tail = buf->tail; in _shift_data_left_tail() local 274 if (len > tail->iov_len) in _shift_data_left_tail() 275 len = tail->iov_len; in _shift_data_left_tail() 279 (char *)tail->iov_base, in _shift_data_left_tail() 281 tail->iov_len -= len; in _shift_data_left_tail() 283 if (tail->iov_len > 0) in _shift_data_left_tail() [all …]
|