/openbmc/linux/drivers/staging/media/atomisp/pci/hive_isp_css_common/host/ |
H A 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 …]
|
/openbmc/linux/tools/lib/ |
H A D | list_sort.c | 18 struct list_head *head, **tail = &head; in merge() local 23 *tail = a; in merge() 24 tail = &a->next; in merge() 27 *tail = b; in merge() 31 *tail = b; in merge() 32 tail = &b->next; in merge() 35 *tail = a; in merge() 54 struct list_head *tail = head; in merge_final() local 60 tail->next = a; in merge_final() 61 a->prev = tail; in merge_final() [all …]
|
/openbmc/linux/lib/ |
H A 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 …]
|
/openbmc/linux/arch/arm64/kernel/ |
H A D | perf_callchain.c | 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 116 tail = (struct frame_tail __user *)regs->regs[29]; in perf_callchain_user() [all …]
|
/openbmc/u-boot/lib/ |
H A D | membuff.c | 18 mb->tail = mb->start; in membuff_purge() 39 if (mb->head >= mb->tail) { in membuff_putrawflex() 53 if ((maxlen < 0 || len < maxlen) && mb->tail != mb->start) { in membuff_putrawflex() 62 len = mb->tail - mb->head - 1; in membuff_putrawflex() 109 if (mb->head > mb->tail) { in membuff_getraw() 111 *data = mb->tail; in membuff_getraw() 112 len = mb->head - mb->tail; in membuff_getraw() 120 mb->tail += len; in membuff_getraw() 128 else if (mb->head < mb->tail) { in membuff_getraw() 130 *data = mb->tail; in membuff_getraw() [all …]
|
H A D | list_sort.c | 25 struct list_head head, *tail = &head; in merge() local 30 tail->next = a; in merge() 33 tail->next = b; in merge() 36 tail = tail->next; in merge() 38 tail->next = a?:b; in merge() 55 struct list_head *tail = head; in merge_and_restore_back_links() local 60 tail->next = a; in merge_and_restore_back_links() 61 a->prev = tail; in merge_and_restore_back_links() 64 tail->next = b; in merge_and_restore_back_links() 65 b->prev = tail; in merge_and_restore_back_links() [all …]
|
/openbmc/qemu/monitor/ |
H A D | qmp-cmds-control.c | 142 GenericList *tail; in split_off_generic_list() local 144 for (tail = list; tail; tail = tail->next) { in split_off_generic_list() 145 if (splitp(tail)) { in split_off_generic_list() 146 *split_tailp = tail; in split_off_generic_list() 147 split_tailp = &tail->next; in split_off_generic_list() 149 *keep_tailp = tail; in split_off_generic_list() 150 keep_tailp = &tail->next; in split_off_generic_list() 161 strList *tail; in is_in() local 163 for (tail = list; tail; tail = tail->next) { in is_in() 164 if (!strcmp(tail->value, s)) { in is_in() [all …]
|
/openbmc/linux/Documentation/translations/zh_CN/core-api/ |
H A D | circular-buffers.rst | 55 (2) 'tail'索引 - 消费者在缓冲区中找到下一个元素的位置。 57 通常,当tail指针等于head指针时,表明缓冲区是空的;而当head指针比tail指针少一个时, 60 添加元素时,递增head索引;删除元素时,递增tail索引。tail索引不应该跳过head索引, 111 产者控制着head索引,但消费者可能仍然在另一个CPU上耗尽缓冲区并移动tail索引。 116 者控制着tail索引,但生产者可能仍然在另一个CPU上填充缓冲区并移动head索引。 146 unsigned long tail = READ_ONCE(buffer->tail); 148 if (CIRC_SPACE(head, tail, buffer->size) >= 1) { 181 unsigned long tail = buffer->tail; 183 if (CIRC_CNT(head, tail, buffer->size) >= 1) { 186 struct item *item = buffer[tail]; [all …]
|
/openbmc/qemu/tests/qtest/libqos/ |
H A D | qos_external.c | 42 MachineInfoList *tail; in machines_apply_to_node() local 44 for (tail = mach_info; tail; tail = tail->next) { in machines_apply_to_node() 45 machine_apply_to_node(tail->value->name); in machines_apply_to_node() 46 if (tail->value->alias) { in machines_apply_to_node() 47 machine_apply_to_node(tail->value->alias); in machines_apply_to_node() 62 ObjectTypeInfoList *tail; in types_apply_to_node() local 64 for (tail = type_info; tail; tail = tail->next) { in types_apply_to_node() 65 type_apply_to_node(tail->value->name, tail->value->abstract); in types_apply_to_node()
|
/openbmc/linux/drivers/rpmsg/ |
H A D | qcom_glink_smem.c | 53 __le32 *tail; member 70 u32 tail; in glink_smem_rx_avail() local 86 tail = le32_to_cpu(*pipe->tail); in glink_smem_rx_avail() 88 if (head < tail) in glink_smem_rx_avail() 89 return pipe->native.length - tail + head; in glink_smem_rx_avail() 91 return head - tail; in glink_smem_rx_avail() 99 u32 tail; in glink_smem_rx_peek() local 101 tail = le32_to_cpu(*pipe->tail); in glink_smem_rx_peek() 102 tail += offset; in glink_smem_rx_peek() 103 if (tail >= pipe->native.length) in glink_smem_rx_peek() [all …]
|
H A D | qcom_glink_rpm.c | 51 void __iomem *tail; member 73 unsigned int tail; in glink_rpm_rx_avail() local 76 tail = readl(pipe->tail); in glink_rpm_rx_avail() 78 if (head < tail) in glink_rpm_rx_avail() 79 return pipe->native.length - tail + head; in glink_rpm_rx_avail() 81 return head - tail; in glink_rpm_rx_avail() 88 unsigned int tail; in glink_rpm_rx_peek() local 91 tail = readl(pipe->tail); in glink_rpm_rx_peek() 92 tail += offset; in glink_rpm_rx_peek() 93 if (tail >= pipe->native.length) in glink_rpm_rx_peek() [all …]
|
/openbmc/linux/drivers/net/ethernet/intel/fm10k/ |
H A 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() 74 return (fifo->tail + offset) & (fifo->size - 1); in fm10k_fifo_tail_offset() 120 fifo->head = fifo->tail; in fm10k_fifo_drop_all() 132 static u16 fm10k_mbx_index_len(struct fm10k_mbx_info *mbx, u16 head, u16 tail) in fm10k_mbx_index_len() argument 134 u16 len = tail - head; in fm10k_mbx_index_len() 137 if (len > tail) in fm10k_mbx_index_len() 153 u16 tail = (mbx->tail + offset + 1) & ((mbx->mbmem_len << 1) - 1); in fm10k_mbx_tail_add() local [all …]
|
/openbmc/linux/drivers/infiniband/sw/rdmavt/ |
H A D | cq.c | 34 u32 tail; in rvt_cq_enter() local 42 tail = RDMA_READ_UAPI_ATOMIC(u_wc->tail); in rvt_cq_enter() 47 tail = k_wc->tail; in rvt_cq_enter() 61 if (unlikely(next == tail || cq->cq_full)) { in rvt_cq_enter() 319 RDMA_READ_UAPI_ATOMIC(cq->queue->tail)) in rvt_req_notify_cq() 322 if (cq->kqueue->head != cq->kqueue->tail) in rvt_req_notify_cq() 341 u32 head, tail, n; in rvt_resize_cq() local 386 tail = RDMA_READ_UAPI_ATOMIC(old_u_wc->tail); in rvt_resize_cq() 390 tail = old_k_wc->tail; in rvt_resize_cq() 395 if (tail > (u32)cq->ibcq.cqe) in rvt_resize_cq() [all …]
|
/openbmc/linux/include/linux/ |
H A D | circ_buf.h | 12 int tail; member 16 #define CIRC_CNT(head,tail,size) (((head) - (tail)) & ((size)-1)) argument 21 #define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size)) argument 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); \
|
/openbmc/linux/drivers/net/wireguard/ |
H A D | queueing.c | 56 queue->head = queue->tail = STUB(queue); in wg_prev_queue_init() 82 struct sk_buff *tail = queue->tail, *next = smp_load_acquire(&NEXT(tail)); in wg_prev_queue_dequeue() local 84 if (tail == STUB(queue)) { in wg_prev_queue_dequeue() 87 queue->tail = next; in wg_prev_queue_dequeue() 88 tail = next; in wg_prev_queue_dequeue() 92 queue->tail = next; in wg_prev_queue_dequeue() 94 return tail; in wg_prev_queue_dequeue() 96 if (tail != READ_ONCE(queue->head)) in wg_prev_queue_dequeue() 99 next = smp_load_acquire(&NEXT(tail)); in wg_prev_queue_dequeue() 101 queue->tail = next; in wg_prev_queue_dequeue() [all …]
|
/openbmc/linux/drivers/gpu/drm/i915/gt/ |
H A D | intel_ring.h | 26 void intel_ring_reset(struct intel_ring *ring, u32 tail); 91 assert_ring_tail_valid(const struct intel_ring *ring, unsigned int tail) in assert_ring_tail_valid() argument 95 GEM_BUG_ON(!intel_ring_offset_valid(ring, tail)); in assert_ring_tail_valid() 112 GEM_BUG_ON(cacheline(tail) == cacheline(head) && tail < head); in assert_ring_tail_valid() 117 intel_ring_set_tail(struct intel_ring *ring, unsigned int tail) in intel_ring_set_tail() argument 125 assert_ring_tail_valid(ring, tail); in intel_ring_set_tail() 126 ring->tail = tail; in intel_ring_set_tail() 127 return tail; in intel_ring_set_tail() 131 __intel_ring_space(unsigned int head, unsigned int tail, unsigned int size) in __intel_ring_space() argument 139 return (head - tail - CACHELINE_BYTES) & (size - 1); in __intel_ring_space()
|
/openbmc/qemu/tests/qtest/ |
H A D | qmp-cmd-test.c | 136 SchemaInfoList *tail; in qmp_schema_init() local 153 for (tail = schema->list; tail; tail = tail->next) { in qmp_schema_init() 154 g_hash_table_insert(schema->hash, tail->value->name, tail->value); in qmp_schema_init() 171 SchemaInfoObjectMemberList *tail; in object_type_has_mandatory_members() local 175 for (tail = type->u.object.members; tail; tail = tail->next) { in object_type_has_mandatory_members() 176 if (!tail->value->q_default) { in object_type_has_mandatory_members() 186 SchemaInfoList *tail; in add_query_tests() local 191 for (tail = schema->list; tail; tail = tail->next) { in add_query_tests() 192 si = tail->value; in add_query_tests()
|
/openbmc/linux/arch/arm/kernel/ |
H A D | perf_callchain.c | 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 72 tail = (struct frame_tail __user *)regs->ARM_fp - 1; in perf_callchain_user() 75 tail && !((unsigned long)tail & 0x3)) in perf_callchain_user() 76 tail = user_backtrace(tail, entry); in perf_callchain_user()
|
/openbmc/linux/kernel/locking/ |
H A D | qspinlock.c | 118 u32 tail; in encode_tail() local 120 tail = (cpu + 1) << _Q_TAIL_CPU_OFFSET; in encode_tail() 121 tail |= idx << _Q_TAIL_IDX_OFFSET; /* assume < 4 */ in encode_tail() 123 return tail; in encode_tail() 126 static inline __pure struct mcs_spinlock *decode_tail(u32 tail) in decode_tail() argument 128 int cpu = (tail >> _Q_TAIL_CPU_OFFSET) - 1; in decode_tail() 129 int idx = (tail & _Q_TAIL_IDX_MASK) >> _Q_TAIL_IDX_OFFSET; in decode_tail() 177 static __always_inline u32 xchg_tail(struct qspinlock *lock, u32 tail) in xchg_tail() argument 183 return (u32)xchg_relaxed(&lock->tail, in xchg_tail() 184 tail >> _Q_TAIL_OFFSET) << _Q_TAIL_OFFSET; in xchg_tail() [all …]
|
/openbmc/qemu/tests/unit/ |
H A D | test-opts-visitor.c | 180 intList *tail; in test_opts_range_unvisited() local 194 tail = list; in test_opts_range_unvisited() 195 visit_type_int(v, NULL, &tail->value, &error_abort); in test_opts_range_unvisited() 196 g_assert_cmpint(tail->value, ==, 0); in test_opts_range_unvisited() 197 tail = (intList *)visit_next_list(v, (GenericList *)tail, sizeof(*list)); in test_opts_range_unvisited() 198 g_assert(tail); in test_opts_range_unvisited() 199 visit_type_int(v, NULL, &tail->value, &error_abort); in test_opts_range_unvisited() 200 g_assert_cmpint(tail->value, ==, 1); in test_opts_range_unvisited() 201 tail = (intList *)visit_next_list(v, (GenericList *)tail, sizeof(*list)); in test_opts_range_unvisited() 202 g_assert(tail); in test_opts_range_unvisited() [all …]
|
/openbmc/qemu/hw/net/rocker/ |
H A D | rocker_desc.c | 29 uint32_t tail; member 101 return ring->head == ring->tail; in desc_ring_empty() 137 ring->head = ring->tail = 0; in desc_ring_set_size() 187 return desc_read(ring, ring->tail); in __desc_ring_fetch_desc() 196 return desc_read(ring, ring->tail); in desc_ring_fetch_desc() 202 DescInfo *info = &ring->info[ring->tail]; in __desc_ring_post_desc() 205 desc_write(ring, ring->tail); in __desc_ring_post_desc() 206 ring->tail = (ring->tail + 1) % ring->size; in __desc_ring_post_desc() 240 while (ring->head != ring->tail) { in ring_pump() 254 uint32_t tail = ring->tail; in desc_ring_set_head() local [all …]
|
/openbmc/linux/drivers/media/test-drivers/vidtv/ |
H A 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 …]
|
/openbmc/linux/include/drm/ |
H A 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()
|
/openbmc/linux/Documentation/trace/ |
H A 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 …]
|
/openbmc/linux/net/sunrpc/ |
H A D | xdr.c | 179 const struct kvec *tail = xdr->tail; in xdr_buf_to_bvec() local 204 if (tail->iov_len) { in xdr_buf_to_bvec() 205 bvec_set_virt(bvec, tail->iov_base, tail->iov_len); in xdr_buf_to_bvec() 231 struct kvec *tail = xdr->tail; in xdr_inline_pages() local 241 tail->iov_base = buf + offset; in xdr_inline_pages() 242 tail->iov_len = buflen - offset; in xdr_inline_pages() 501 xdr_buf_iov_zero(buf->tail, pgbase - buf->page_len, len); in xdr_buf_pages_zero() 505 xdr_buf_iov_zero(buf->tail, 0, pgbase + len - buf->page_len); in xdr_buf_pages_zero() 561 struct kvec *tail = buf->tail; in xdr_buf_try_expand() local 562 unsigned int sum = head->iov_len + buf->page_len + tail->iov_len; in xdr_buf_try_expand() [all …]
|