summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cesar/interface/inc/context.h12
-rw-r--r--cesar/interface/interface.h4
-rw-r--r--cesar/interface/src/interface.c17
-rw-r--r--cesar/maximus/python/lib/cesar/sta_cesar.py18
4 files changed, 8 insertions, 43 deletions
diff --git a/cesar/interface/inc/context.h b/cesar/interface/inc/context.h
index 9c2c863be1..9361ef188b 100644
--- a/cesar/interface/inc/context.h
+++ b/cesar/interface/inc/context.h
@@ -16,7 +16,7 @@
#include <cyg/kernel/kapi.h>
#include <cyg/hal/hal_arch.h>
#include "hle/hle.h"
-#include "lib/circular_buffer.h"
+#include "lib/mbox.h"
#include "mac/common/config.h"
#include "interface/interface.h"
@@ -30,7 +30,7 @@
#define INTERFACE_THREAD_STACK CYGNUM_HAL_STACK_SIZE_TYPICAL
-#define INTERFACE_THREAD_PRIORITY 9
+#define INTERFACE_THREAD_PRIORITY 9
struct interface_t
{
@@ -63,12 +63,8 @@ struct interface_t
interface_beacon_add_cb_t beacon_add_cb;
/** beacon user data. */
void *beacon_user_data;
-
- /** Buffer management. */
- u8 *buffer_list[INTERFACE_BUFFER_LIST_NUM_SLOTS];
- circular_buffer_t buffers;
-
- cyg_mutex_t buffer_mutex;
+ /** Buffer mailbox. */
+ mbox_t buffers_mbox;
/** Thread. */
cyg_thread thread;
diff --git a/cesar/interface/interface.h b/cesar/interface/interface.h
index 675e46e598..2e1a642257 100644
--- a/cesar/interface/interface.h
+++ b/cesar/interface/interface.h
@@ -23,10 +23,6 @@
#include "interface/interface_module.h"
#include "interface/forward.h"
-/** Allocate 2 buffers for sniffer sub-module
- * and 1 buffer for fcall sub-module. */
-#define INTERFACE_BUFFER_LIST_NUM_SLOTS 3
-
/**
* Function to call when the interface receives a new MME.
* \param ctx the interface context
diff --git a/cesar/interface/src/interface.c b/cesar/interface/src/interface.c
index 7cdb0b49fc..b7815f4548 100644
--- a/cesar/interface/src/interface.c
+++ b/cesar/interface/src/interface.c
@@ -101,11 +101,7 @@ interface_init (hle_t *hle, cl_t *cl, sar_t *sar, mac_config_t
&interface_global);
#endif /* CONFIG_INTERFACE_FCALL */
- circular_buffer_init (&interface_global.buffers,
- interface_global.buffer_list,
- INTERFACE_BUFFER_LIST_NUM_SLOTS);
-
- cyg_mutex_init (&interface_global.buffer_mutex);
+ mbox_init (&interface_global.buffers_mbox);
// Integrate the HLE.
hle_init_interface_cb (hle,
@@ -416,17 +412,12 @@ interface_buffer_add (interface_t *ctx, u8 *buffer)
void
interface_buffer_work_add (interface_t *ctx, u8 *buffer)
{
- bool added;
dbg_assert (ctx);
dbg_assert (buffer);
dbg_assert (ctx->buffer_add_cb);
- /* Lock the mutex. */
- cyg_mutex_lock (&ctx->buffer_mutex);
- added = circular_buffer_add (&ctx->buffers, buffer);
- dbg_assert (added);
- cyg_mutex_unlock (&ctx->buffer_mutex);
+ mbox_put (&ctx->buffers_mbox, (mbox_node_t *) buffer);
}
/**
@@ -440,9 +431,7 @@ interface_buffer_work_get (interface_t *ctx)
u8 *buffer;
dbg_assert (ctx);
- cyg_mutex_lock (&ctx->buffer_mutex);
- buffer = circular_buffer_get (&ctx->buffers);
- cyg_mutex_unlock (&ctx->buffer_mutex);
+ buffer = (u8*) mbox_get (&ctx->buffers_mbox);
return buffer;
}
diff --git a/cesar/maximus/python/lib/cesar/sta_cesar.py b/cesar/maximus/python/lib/cesar/sta_cesar.py
index 44251c6fd8..b6fae30390 100644
--- a/cesar/maximus/python/lib/cesar/sta_cesar.py
+++ b/cesar/maximus/python/lib/cesar/sta_cesar.py
@@ -3,22 +3,6 @@
#print __name__
from maximus.station import *
-from string import *
-
-# Find constant defining the additional number of MME buffers to allocate into the station
-base = '../../../../'
-header = 'interface/interface.h'
-define = 'INTERFACE_BUFFER_LIST_NUM_SLOTS'
-f = open(__file__[:__file__.find(".py") - len(__name__)] + base + header, 'r') # or ".pyc"
-s = f.read()
-f.close()
-begin = s.find(define) + len(define)
-while s[begin] == " " or s[begin] == "\t":
- begin += 1
-end = begin
-while s[end] in digits: # digits is the string '0123456789'
- end += 1
-INTERFACE_BUFFER_LIST_NUM_SLOTS = int(s[begin:end])
def STACesar(maximus,\
executable = None,\
@@ -41,6 +25,6 @@ def STACesar(maximus,\
name = name,\
data_buffer_nb=data_buffer_nb,\
mme_buffer_nb=mme_buffer_nb,\
- interface_buffer_nb=INTERFACE_BUFFER_LIST_NUM_SLOTS,\
+ interface_buffer_nb=3,\
config_mode = config_mode,\
config = config)