void NO_INST v3_init_ringbuf(struct v3_ringbuf * ring, uint_t size) {
ring->buf = V3_Malloc(size);
+
+ if (!(ring->buf)) {
+ PrintError(VM_NONE, VCORE_NONE, "Cannot init a ring buffer\n");
+ return;
+ }
+
ring->size = size;
ring->start = 0;
struct v3_ringbuf * v3_create_ringbuf(uint_t size) {
struct v3_ringbuf * ring = (struct v3_ringbuf *)V3_Malloc(sizeof(struct v3_ringbuf));
+ if (!ring) {
+ PrintError(VM_NONE, VCORE_NONE, "Cannot allocate a ring buffer\n");
+ return NULL;
+ }
+
v3_init_ringbuf(ring, size);
return ring;
if (is_write_loop(ring, write_len)) {
int section_len = get_write_section_size(ring);
- // PrintDebug("Write loop: write_ptr=%p, src=%p, sec_len=%d\n",
+ // PrintDebug(info->vm_info, info, "Write loop: write_ptr=%p, src=%p, sec_len=%d\n",
// (void *)get_write_ptr(ring),(void*)src, section_len);
memcpy(get_write_ptr(ring), src, section_len);
ring->end += write_len - section_len;
} else {
- // PrintDebug("Writing: write_ptr=%p, src=%p, write_len=%d\n",
+ // PrintDebug(info->vm_info, info, "Writing: write_ptr=%p, src=%p, write_len=%d\n",
// (void *)get_write_ptr(ring),(void*)src, write_len);
memcpy(get_write_ptr(ring), src, write_len);
for (ctr = 0; ctr < ring->current_len; ctr++) {
int index = (ctr + ring->start) % ring->size;
- PrintDebug("Entry %d (index=%d): %c\n", ctr, index, ring->buf[index]);
+ PrintDebug(VM_NONE, VCORE_NONE, "Entry %d (index=%d): %c\n", ctr, index, ring->buf[index]);
}
}