net/scheduler.h header reference
[Abstract network stack module]
The source code of this header can be browsed online.
Description [link]
this header contains all relevant declarations about Network stack scheduler.
Members [link]
Types [link]
- struct net_scheduler_s
- typedef [...] * net_timeout_queue_item_t
Functions [link]
- struct buffer_s * net_layer_packet_alloc(struct net_layer_s *layer, size_t begin, size_t size)
- error_t net_scheduler_cleanup(struct net_scheduler_s *sched)
- error_t net_scheduler_init(struct net_scheduler_s *sched, struct buffer_pool_s *packet_pool, const char *timer_dev)
- struct buffer_s * net_scheduler_packet_alloc(struct net_scheduler_s *sched)
- size_t net_scheduler_packet_mtu(struct net_scheduler_s *sched)
- struct net_task_s * net_scheduler_task_alloc(struct net_scheduler_s *sched)
- dev_timer_value_t net_scheduler_time_get(struct net_scheduler_s *sched)
- void net_scheduler_from_layer_cancel(struct net_scheduler_s *sched, struct net_layer_s *layer)
- void net_scheduler_task_cancel(struct net_scheduler_s *sched, struct net_task_s *task)
- void net_scheduler_task_push(struct net_scheduler_s *sched, struct net_task_s *task)
Members detail [link]
#define GCT_CONTAINER_ALGO_net_timeout_queue [link]
This macro is declared in net/scheduler.h source file, line 46.
#define GCT_CONTAINER_LOCK_net_timeout_queue [link]
This macro is declared in net/scheduler.h source file, line 47.
#define NET_SCHEDULER_H [link]
This macro is declared in net/scheduler.h source file, line 21.
struct buffer_s * net_layer_packet_alloc(struct net_layer_s *layer, size_t begin, size_t size) [link]
This function is declared in net/scheduler.h source file, line 132.
this function allocates a packet for layer.
Parameter list:
- layer: Layer to allocate packet for
- begin: reserved header size for layers headers (should be at least layer->context.prefix_size)
- size: minimal data size to allocate packet for (should be no more than layer->context.mtu)
error_t net_scheduler_cleanup(struct net_scheduler_s *sched) [link]
This function is declared in net/scheduler.h source file, line 101.
this function releases all data associated to a scheduler.
error_t net_scheduler_init(struct net_scheduler_s *sched, struct buffer_pool_s *packet_pool, const char *timer_dev) [link]
This function is declared in net/scheduler.h source file, line 96.
this function initializes a network scheduler context.
Parameter list:
- sched: Scheduler context to initialize
- packet_pool: Buffer pool to allocate packets in
- timer_dev: Timer device path. It will be the reference timer for the scheduler.
struct buffer_s * net_scheduler_packet_alloc(struct net_scheduler_s *sched) [link]
This function is declared in net/scheduler.h source file, line 114.
this function allocates a packet from scheduler's packet pool.
size_t net_scheduler_packet_mtu(struct net_scheduler_s *sched) [link]
This function is declared in net/scheduler.h source file, line 176.
this function retrieves the maximum packet payload size that can be transported in buffers allocated from scheduler's packet pool.
struct net_scheduler_s [link]
This struct is declared in ble/net/generic.h source file, line 34.
this struct is a network scheduler context. No field should be accessed directly.
Field | Description |
---|---|
lock_t lock; | |
struct context_s context; | |
struct sched_context_s sched_context; | |
net_task_queue_root_t pending_tasks; | |
net_timeout_queue_root_t delayed_tasks; | |
net_layer_sched_list_root_t layers; | |
net_layer_sched_list_root_t destroyed_layers; | |
struct device_timer_s timer; | |
struct dev_timer_rq_s timer_rq; | |
struct slab_s task_pool; | |
struct buffer_pool_s * packet_pool; | |
bool_t scheduled; | |
bool_t exited; | |
struct sched_context_s * exiter; | |
uint32_t timer_usage; | |
void * stack; |
struct net_task_s * net_scheduler_task_alloc(struct net_scheduler_s *sched) [link]
This function is declared in net/scheduler.h source file, line 107.
this function allocates a task in the scheduler's task internal slab. Task must only be used by layers associated to this scheduler.
dev_timer_value_t net_scheduler_time_get(struct net_scheduler_s *sched) [link]
This function is declared in net/scheduler.h source file, line 147.
this function retrieves current time from scheduler's reference timer.
typedef void * net_timeout_queue_entry_t [link]
This typedef is declared in net/scheduler.h source file, line 50.
typedef struct net_task_s * net_timeout_queue_item_t [link]
This typedef is declared in net/scheduler.h source file, line 50.
typedef void * net_timeout_queue_root_t [link]
This typedef is declared in net/scheduler.h source file, line 50.
void net_scheduler_from_layer_cancel(struct net_scheduler_s *sched, struct net_layer_s *layer) [link]
This function is declared in net/scheduler.h source file, line 168.
this function cancels all tasks involving a given layer.
This function is for internal use only.
void net_scheduler_task_cancel(struct net_scheduler_s *sched, struct net_task_s *task) [link]
This function is declared in net/scheduler.h source file, line 161.
this function cancels a scheduled task.
This function is for internal use only.
void net_scheduler_task_push(struct net_scheduler_s *sched, struct net_task_s *task) [link]
This function is declared in net/scheduler.h source file, line 154.
this function pushes a task to scheduling.
This function is for internal use only.