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.
1.6.3