Heap-based implementation of an edf queue. More...
#include "rres_config.h"
#include "kal_timer.h"
#include "qos_types.h"
#include "qos_func.h"
#include "kal_eheap.h"
#include "qos_debug.h"
#include "qos_memory.h"
#include "rres_server.h"
Go to the source code of this file.
Defines | |
#define | kal_eheap_key_lt kal_time_lt |
#define | RRES_MAX_NUM_SERVERS_BITS 12 |
#define | RRES_MAX_NUM_SERVERS (1 << RRES_MAX_NUM_SERVERS_BITS) |
#define | rq_placeholder_init(p_it) kal_eheap_iterator_init(p_it) |
Inititalize a ready queue placeholder as invalid (item not enqueued). | |
#define | for_each_ready_server(srv, p_it) |
iterate over ready server list | |
Functions | |
kal_define_eheap (kal_time_t, server_p) | |
typedef | kal_eheap_iterator_t (kal_time_t, server_p) rq_placeholder_t |
Ready queue placeholder, useful for being embedded within an enqueued item for subsequenct extraction. | |
kal_eheap_t (kal_time_t, server_p) eheap | |
Heap of ready servers, min-ordered by abs deadline. | |
static server_t * | get_highest_priority_server (void) |
return a pointer to the highest priority server (the first of EDF queue) | |
static int | ready_queue_empty (void) |
return true if the ready queue is empty (no ready server in the system) | |
static int | srv_alone (server_t *srv) |
return true if the server is the only ready server in the system | |
static int | in_ready_queue (server_t *srv) |
return true if the server is in ready queue | |
static void | ready_queue_remove (server_t *srv) |
Remove the server from ready queue. | |
static qos_rv | rres_edf_init (void) |
static void | rres_edf_cleanup (void) |
static qos_rv | ready_queue_add (server_t *srv) |
Add the server to ready queue, ordered by deadline (EDF). |
Heap-based implementation of an edf queue.
Definition in file rres_ready_queue_eheap.h.