typedef struct
{
-#if RINGBUF_POISONING
+#if L4SHMC_RINGBUF_POISONING
char mag1;
#endif
unsigned size;
-#if RINGBUF_POISONING
+#if L4SHMC_RINGBUF_POISONING
char mag2;
#endif
} size_cookie_t;
#define SIZE_COOKIE_MAGIC1 (char)0xDE
#define SIZE_COOKIE_MAGIC2 (char)0xAD
#define EXTRACT_SIZE(size_cookie) (((size_cookie_t*)(size_cookie))->size)
-#if RINGBUF_POISONING
+#if L4SHMC_RINGBUF_POISONING
#define SIZE_COOKIE_INITIALIZER(size) (size_cookie_t){ SIZE_COOKIE_MAGIC1, (size), SIZE_COOKIE_MAGIC2 }
#else
#define SIZE_COOKIE_INITIALIZER(size) (size_cookie_t){(size)}
#endif
-#if RINGBUF_POISONING
+#if L4SHMC_RINGBUF_POISONING
#define ASSERT_COOKIE(c) \
ASSERT_EQUAL(((size_cookie_t*)(c))->mag1, SIZE_COOKIE_MAGIC1); \
ASSERT_EQUAL(((size_cookie_t*)(c))->mag2, SIZE_COOKIE_MAGIC2);
#define BUF_HEAD_MAGIC2 (char)0xCD
#define BUF_HEAD_MAGIC3 (char)0xEF
-#if RINGBUF_POISONING
+#if L4SHMC_RINGBUF_POISONING
#define ASSERT_MAGIC(buf) \
- ASSERT_EQUAL(HEAD(buf)->magic1, BUF_HEAD_MAGIC1); \
- ASSERT_EQUAL(HEAD(buf)->magic2, BUF_HEAD_MAGIC2); \
- ASSERT_EQUAL(HEAD(buf)->magic3, BUF_HEAD_MAGIC3);
+ ASSERT_EQUAL(L4SHMC_RINGBUF_HEAD(buf)->magic1, BUF_HEAD_MAGIC1); \
+ ASSERT_EQUAL(L4SHMC_RINGBUF_HEAD(buf)->magic2, BUF_HEAD_MAGIC2); \
+ ASSERT_EQUAL(L4SHMC_RINGBUF_HEAD(buf)->magic3, BUF_HEAD_MAGIC3);
#else
#define ASSERT_MAGIC(buf) do {} while(0)
#endif
buf->_area->_name, buf->_size);
printf(" owner %lx, name %s, signal %s\n", buf->_owner,
buf->_chunkname, buf->_signame);
- log_ringbuf_head(HEAD(buf));
+ log_ringbuf_head(L4SHMC_RINGBUF_HEAD(buf));
}
static void l4shmc_rb_generic_init(l4shmc_area_t *area,
head->next_write = 0;
head->bytes_filled = 0;
head->sender_waits = 0;
-#if RINGBUF_POISONING
+#if L4SHMC_RINGBUF_POISONING
head->magic1 = BUF_HEAD_MAGIC1;
head->magic2 = BUF_HEAD_MAGIC2;
head->magic3 = BUF_HEAD_MAGIC3;
else
to = L4_IPC_BOTH_TIMEOUT_0;
- //while (!HEAD(buf)->bytes_filled)
+ //while (!L4SHMC_RINGBUF_HEAD(buf)->bytes_filled)
return l4shmc_wait_signal_to(&buf->_signal_empty, to);
}
{
ASSERT_NOT_NULL(buf);
- l4shmc_rb_lock(HEAD(buf));
+ l4shmc_rb_lock(L4SHMC_RINGBUF_HEAD(buf));
- if (HEAD(buf)->sender_waits) {
- HEAD(buf)->sender_waits = 0;
+ if (L4SHMC_RINGBUF_HEAD(buf)->sender_waits) {
+ L4SHMC_RINGBUF_HEAD(buf)->sender_waits = 0;
#if 0
printf("RCV: TRIGGER %lx (%lx)\n", buf->_signal_empty._sigcap,
l4_debugger_global_id(buf->_signal_empty._sigcap));
l4shmc_trigger(&buf->_signal_full);
}
- l4shmc_rb_unlock(HEAD(buf));
+ l4shmc_rb_unlock(L4SHMC_RINGBUF_HEAD(buf));
}
buf->_addr = l4shmc_chunk_ptr(&buf->_chunk);
- l4shmc_rb_init_header(HEAD(buf));
- HEAD(buf)->data_size = size;
+ l4shmc_rb_init_header(L4SHMC_RINGBUF_HEAD(buf));
+ L4SHMC_RINGBUF_HEAD(buf)->data_size = size;
log_ringbuf(buf);
printf("SND: attaching to signal %lx (%lx)\n",
l4_debugger_global_id(l4shmc_signal_cap(&buf->_signal_full)),
l4shmc_signal_cap(&buf->_signal_full));
- printf(" buf @ %p\n", HEAD(buf));
+ printf(" buf @ %p\n", L4SHMC_RINGBUF_HEAD(buf));
err = l4shmc_attach_signal(buf->_area, signame, buf->_owner, &buf->_signal_full);
ASSERT_OK(err);
#if 0
printf("%s: %p %p %d %d\n", __func__, buf, data, size, block_if_necessary);
#endif
- while (((addr = l4shmc_rb_sender_alloc_packet(HEAD(buf), size)) == 0) &&
+ while (((addr = l4shmc_rb_sender_alloc_packet(L4SHMC_RINGBUF_HEAD(buf), size)) == 0) &&
block_if_necessary) {
#if 0
printf("%s: wait(%lx (%lx))\n", __func__, buf->_signal_full._sigcap,
ASSERT_NOT_NULL(data);
ASSERT_MAGIC(buf);
- char *max_addr = DATA(buf) + DATA_SIZE(buf);
+ char *max_addr = L4SHMC_RINGBUF_DATA(buf) + L4SHMC_RINGBUF_DATA_SIZE(buf);
if (max_addr < addr) {
printf("ERROR: max %p, addr %p\n", (void*)max_addr, addr);
- printf(" DATA %p, DATA_SIZE %lx\n", DATA(buf), (unsigned long)DATA_SIZE(buf));
+ printf(" DATA %p, DATA_SIZE %lx\n",
+ L4SHMC_RINGBUF_DATA(buf),
+ (unsigned long)L4SHMC_RINGBUF_DATA_SIZE(buf));
log_ringbuf(buf);
}
ASSERT_GREATER_EQ(max_addr, addr);
{
l4_addr_t diff = (l4_addr_t)max_addr - (l4_addr_t)addr;
memcpy(addr, data, diff);
- memcpy(DATA(buf), data + diff, dsize - diff);
+ memcpy(L4SHMC_RINGBUF_DATA(buf), data + diff, dsize - diff);
}
else
{
- memcpy(addr,data, dsize);
+ memcpy(addr, data, dsize);
}
}