Lines Matching defs:vbva
27 static u32 vbva_buffer_available(const struct vbva_buffer *vbva)
29 s32 diff = vbva->data_offset - vbva->free_offset;
31 return diff > 0 ? diff : vbva->data_len + diff;
37 struct vbva_buffer *vbva = vbva_ctx->vbva;
38 u32 bytes_till_boundary = vbva->data_len - offset;
39 u8 *dst = &vbva->data[offset];
48 memcpy(&vbva->data[0], (u8 *)p + bytes_till_boundary, diff);
70 struct vbva_buffer *vbva;
73 vbva = vbva_ctx->vbva;
76 if (!vbva || vbva_ctx->buffer_overflow ||
80 available = vbva_buffer_available(vbva);
87 available = vbva_buffer_available(vbva);
91 if (WARN_ON(available <= vbva->partial_write_tresh)) {
95 chunk = available - vbva->partial_write_tresh;
99 vbva->free_offset);
101 vbva->free_offset = (vbva->free_offset + chunk) %
102 vbva->data_len;
143 struct vbva_buffer *vbva, s32 screen)
147 memset(vbva, 0, sizeof(*vbva));
148 vbva->partial_write_tresh = 256;
149 vbva->data_len = vbva_ctx->buffer_length - sizeof(struct vbva_buffer);
150 vbva_ctx->vbva = vbva;
164 vbva_ctx->vbva = NULL;
175 if (!vbva_ctx->vbva ||
176 !(vbva_ctx->vbva->host_flags.host_events & VBVA_F_MODE_ENABLED))
181 next = (vbva_ctx->vbva->record_free_index + 1) % VBVA_MAX_RECORDS;
184 if (next == vbva_ctx->vbva->record_first_index)
188 if (next == vbva_ctx->vbva->record_first_index)
191 record = &vbva_ctx->vbva->records[vbva_ctx->vbva->record_free_index];
193 vbva_ctx->vbva->record_free_index = next;
204 WARN_ON(!vbva_ctx->vbva || !record ||