/Linux-v5.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 …]
|
/Linux-v5.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 …]
|
/Linux-v5.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 …]
|
/Linux-v5.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 …]
|
/Linux-v5.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 …]
|
/Linux-v5.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); \
|
D | pipe_fs_i.h | 40 * @tail: The point of buffer consumption 61 unsigned int tail; member 128 * @tail: The pipe ring tail pointer 130 static inline bool pipe_empty(unsigned int head, unsigned int tail) in pipe_empty() argument 132 return head == tail; in pipe_empty() 138 * @tail: The pipe ring tail pointer 140 static inline unsigned int pipe_occupancy(unsigned int head, unsigned int tail) in pipe_occupancy() argument 142 return head - tail; in pipe_occupancy() 148 * @tail: The pipe ring tail pointer 151 static inline bool pipe_full(unsigned int head, unsigned int tail, in pipe_full() argument [all …]
|
/Linux-v5.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 …]
|
/Linux-v5.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 …]
|
/Linux-v5.10/lib/ |
D | list_sort.c | 22 struct list_head *head, **tail = &head; in merge() local 27 *tail = a; in merge() 28 tail = &a->next; in merge() 31 *tail = b; in merge() 35 *tail = b; in merge() 36 tail = &b->next; in merge() 39 *tail = a; in merge() 58 struct list_head *tail = head; in merge_final() local 64 tail->next = a; in merge_final() 65 a->prev = tail; in merge_final() [all …]
|
/Linux-v5.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 …]
|
/Linux-v5.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()
|
/Linux-v5.10/arch/x86/kernel/ |
D | static_call.c | 10 JMP = 2, /* tramp / site tail-call */ 11 RET = 3, /* tramp / site cond-tail-call */ 47 static void __static_call_validate(void *insn, bool tail) in __static_call_validate() argument 51 if (tail) { in __static_call_validate() 67 static inline enum insn_type __sc_insn(bool null, bool tail) in __sc_insn() argument 72 * tail null insn in __sc_insn() 79 return 2*tail + null; in __sc_insn() 82 void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) in arch_static_call_transform() argument 92 __static_call_validate(site, tail); in arch_static_call_transform() 93 __static_call_transform(site, __sc_insn(!func, tail), func); in arch_static_call_transform()
|
/Linux-v5.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 …]
|
/Linux-v5.10/drivers/media/test-drivers/vidtv/ |
D | vidtv_channel.c | 165 struct vidtv_psi_table_eit_event *tail = NULL; in vidtv_channel_eit_event_cat_into_new() local 182 tail = vidtv_psi_eit_event_init(tail, event_id); in vidtv_channel_eit_event_cat_into_new() 183 if (!tail) { in vidtv_channel_eit_event_cat_into_new() 189 vidtv_psi_desc_assign(&tail->descriptor, desc); in vidtv_channel_eit_event_cat_into_new() 192 head = tail; in vidtv_channel_eit_event_cat_into_new() 211 struct vidtv_psi_table_sdt_service *tail = NULL; in vidtv_channel_sdt_serv_cat_into_new() local 229 tail = vidtv_psi_sdt_service_init(tail, in vidtv_channel_sdt_serv_cat_into_new() 233 if (!tail) in vidtv_channel_sdt_serv_cat_into_new() 239 vidtv_psi_desc_assign(&tail->descriptor, desc); in vidtv_channel_sdt_serv_cat_into_new() 242 head = tail; in vidtv_channel_sdt_serv_cat_into_new() [all …]
|
/Linux-v5.10/Documentation/core-api/ |
D | circular-buffers.rst | 44 (2) A 'tail' index - the point at which the consumer finds the next item in 47 Typically when the tail pointer is equal to the head pointer, the buffer is 48 empty; and the buffer is full when the head pointer is one less than the tail 51 The head index is incremented when items are added, and the tail index when 52 items are removed. The tail index should never jump the head index, and both 116 moving the tail index. 122 will return a lower bound as the consumer controls the tail index, but the 160 unsigned long tail = READ_ONCE(buffer->tail); 162 if (CIRC_SPACE(head, tail, buffer->size) >= 1) { 201 unsigned long tail = buffer->tail; [all …]
|
/Linux-v5.10/Documentation/networking/device_drivers/ethernet/toshiba/ |
D | spider_net.rst | 43 and "tail" pointers, managed by the OS, and a hardware current 52 The tail pointer tails or trails the hardware pointer. When the 53 hardware is ahead, the tail pointer will be pointing at a "full" 55 and advance the tail pointer. Thus, when there is flowing RX traffic, 56 all of the descrs in front of the tail pointer should be "full", and 58 flowing, then the tail pointer can catch up to the hardware pointer. 59 The OS will then note that the current tail is "empty", and halt 62 The head pointer (somewhat mis-named) follows after the tail pointer. 70 RX traffic is flowing, then the head pointer can catch up to the tail 74 Thus, in an idle system, the GDACTDPA, tail and head pointers will [all …]
|
/Linux-v5.10/net/sched/ |
D | sch_choke.c | 68 unsigned int tail; member 78 return (q->tail - q->head) & q->tab_mask; in choke_len() 98 if (q->head == q->tail) in choke_zap_head_holes() 103 /* Move tail pointer backwards to reuse holes */ 107 q->tail = (q->tail - 1) & q->tab_mask; in choke_zap_tail_holes() 108 if (q->head == q->tail) in choke_zap_tail_holes() 110 } while (q->tab[q->tail] == NULL); in choke_zap_tail_holes() 124 if (idx == q->tail) in choke_drop_by_idx() 178 * Will return NULL if queue is empty (q->head == q->tail) 206 if (q->head == q->tail) in choke_match_random() [all …]
|
/Linux-v5.10/include/drm/ |
D | spsc_queue.h | 43 atomic_long_t tail; member 51 atomic_long_set(&queue->tail, (long)&queue->head); in spsc_queue_init() 67 struct spsc_node **tail; in spsc_queue_push() local 73 tail = (struct spsc_node **)atomic_long_xchg(&queue->tail, (long)&node->next); in spsc_queue_push() 74 WRITE_ONCE(*tail, node); in spsc_queue_push() 85 return tail == &queue->head; in spsc_queue_push() 107 if (atomic_long_cmpxchg(&queue->tail, in spsc_queue_pop() 109 /* Updating tail failed wait for new next to appear */ in spsc_queue_pop()
|
/Linux-v5.10/fs/reiserfs/ |
D | tail_conversion.c | 13 * access to tail : when one is going to read tail it must make sure, that is 19 * tail. -ENOSPC if no disk space for conversion 196 * reads tail through page cache, insert direct item. When direct item 198 * what we expect from it (number of cut bytes). But when tail remains 214 char *tail; in indirect2direct() local 216 loff_t pos, pos1; /* position of first byte of the tail */ in indirect2direct() 240 * we are protected by i_mutex. The tail can not disapper, not in indirect2direct() 242 * we are in truncate or packing tail in file_release in indirect2direct() 245 tail = (char *)kmap(page); /* this can schedule */ in indirect2direct() 260 reiserfs_panic(sb, "vs-5530", "tail position " in indirect2direct() [all …]
|
/Linux-v5.10/arch/arm/oprofile/ |
D | common.c | 86 static struct frame_tail* user_backtrace(struct frame_tail *tail) in user_backtrace() argument 91 if (!access_ok(tail, sizeof(buftail))) in user_backtrace() 93 if (__copy_from_user_inatomic(buftail, tail, sizeof(buftail))) in user_backtrace() 100 if (tail + 1 >= buftail[0].fp) in user_backtrace() 108 struct frame_tail *tail = ((struct frame_tail *) regs->ARM_fp) - 1; in arm_backtrace() local 117 while (depth-- && tail && !((unsigned long) tail & 3)) in arm_backtrace() 118 tail = user_backtrace(tail); in arm_backtrace()
|
/Linux-v5.10/fs/affs/ |
D | inode.c | 22 struct affs_tail *tail; in affs_iget() local 50 tail = AFFS_TAIL(sb, bh); in affs_iget() 51 prot = be32_to_cpu(tail->protect); in affs_iget() 76 id = be16_to_cpu(tail->uid); in affs_iget() 84 id = be16_to_cpu(tail->gid); in affs_iget() 92 switch (be32_to_cpu(tail->stype)) { in affs_iget() 98 if (be32_to_cpu(tail->stype) == ST_USERDIR || in affs_iget() 127 size = be32_to_cpu(tail->size); in affs_iget() 136 if (tail->link_chain) in affs_iget() 153 = (be32_to_cpu(tail->change.days) * 86400LL + in affs_iget() [all …]
|
/Linux-v5.10/tools/perf/util/ |
D | block-range.c | 205 struct block_range *tail = malloc(sizeof(struct block_range)); in block_range__create() local 206 if (!tail) in block_range__create() 209 *tail = (struct block_range){ in block_range__create() 225 rb_link_right_of_node(&tail->node, &entry->node); in block_range__create() 226 rb_insert_color(&tail->node, &block_ranges.root); in block_range__create() 247 * If @end is in beyond @entry but not inside @next, add tail. in block_range__create() 249 if (end < next->start) { /* add tail: [...e->end][...end] */ in block_range__create() 250 struct block_range *tail; in block_range__create() local 252 tail = malloc(sizeof(struct block_range)); in block_range__create() 253 if (!tail) in block_range__create() [all …]
|
/Linux-v5.10/include/net/ |
D | esp.h | 14 static inline void esp_output_fill_trailer(u8 *tail, int tfclen, int plen, __u8 proto) in esp_output_fill_trailer() argument 18 memset(tail, 0, tfclen); in esp_output_fill_trailer() 19 tail += tfclen; in esp_output_fill_trailer() 24 tail[i] = i + 1; in esp_output_fill_trailer() 26 tail[plen - 2] = plen - 2; in esp_output_fill_trailer() 27 tail[plen - 1] = proto; in esp_output_fill_trailer()
|