int num_contracts;
double utilization, max_utilization, budget, period;
- WARNING("simplified ub test (no blocks, prio ordered)\n");
+ // WARNING("simplified ub test (no blocks, prio ordered)\n");
utilization = 0.0;
num_contracts = 0;
*
*/
+#include <math.h> /* ceil */
+
#include "frsh.h" /* frsh_resource_id_t, .. */
#include "frescan.h" /* frescan_init, ... */
#include "frescan_data.h" /* frescan_contract_t, ... */
}
// we measure the budget in number of FRESCAN frames (8 bytes)
- number_of_packets = nbytes / 8 + 1;
+ number_of_packets = (int) ceil((double)nbytes / 8.0);
// we store the budget in number of packets instead of in time. We
// use a field in the timespec structure.
#include "fosa_threads_and_signals.h" // FOSA_SIGNAL_MIN
#include <sys/kernel.h> // kernel_enter_critic_section
-#define FRESCAN_MX_REPL_OPS 100
+#define FRESCAN_MX_PACKETS 200
#define FRESCAN_MX_NETWORKS 2
#define FRESCAN_BROADCAST_ADDR 0xF
#define FRESCAN_MX_IDS 255
#define FRESCAN_NEG_CHANNEL 0
#define FRESCAN_MX_NODES 2
#define FRESCAN_MX_CONTRACTS (FRESCAN_MX_NODES*FRESCAN_MX_IDS)
-#define FRESCAN_FRAME_TX_TIME 0.01 // TODO: must be measured
+#define FRESCAN_MX_REPL_OPS FRESCAN_MX_IDS*10
+#define FRESCAN_FRAME_TX_TIME 0.000200 // measured transmission time of an 8byte frame
#define FRESCAN_MLOCK_T unsigned
#define FRESCAN_CREATE_LOCK(l)
#include "frescan_packets.h"
#include "frescan_debug.h"
+#include "frescan_config.h"
#include <misc/freelist.h>
/**
int pool_pos;
} frescan_packet_t;
-#define FRESCAN_MX_PACKETS 100
-
/**
* frescan_packets_init
*
#include <stdlib.h>
#include <time.h>
-#include <misc/timespec_operations.h>
#include "frescan_queues.h"
#include "frescan_packets.h"
return freelist_init(&the_repl_op_pool_freelist, FRESCAN_MX_REPL_OPS);
}
-static frescan_repl_op_t *frescan_repl_op_alloc()
+frescan_repl_op_t *frescan_repl_op_alloc()
{
int pos;
return &the_repl_op_pool[pos];
}
-static int frescan_repl_op_free(frescan_repl_op_t *repl_op)
+int frescan_repl_op_free(frescan_repl_op_t *repl_op)
{
return freelist_free(&the_repl_op_pool_freelist, repl_op->pool_pos);
}