tqueue.c File Reference

Implementation of the cyclic queue. More...

#include "tqueue.h"
#include "malloc.h"
#include "io.h"

Functions

void thread_queue_init (thread_queue_t *queue)
 Initialize thread queue - empty queue is simply NULL.
int thread_queue_empty (thread_queue_t *queue)
 Check the emptyness of the queue.
void thread_queue_add (thread_queue_t *queue, thread_t *item, enum queue_types qt)
 Add the item into thread_queue.
int thread_queue_fetch (thread_queue_t *queue, thread_t *item, enum queue_types qt)
 fetch the first item from thread queue - remove from the queue
int thread_queue_remove_item (thread_queue_t *queue, thread_t *item, enum queue_types qt)
 remove item from the thread queue
int thread_queue_remove_item_by_id (thread_queue_t *queue, int thread_id, enum queue_types qt)
 remove item from the thread queue, by id
void thread_queue_rotate (thread_queue_t *queue, enum queue_types qt)
 Rotate the thread_queue one item to the right (on empty queue no effect).
void thread_queue_enqueue (thread_queue_t *queue, thread_t *item, enum queue_types qt)
 enqueue thread to the queue, sort threads by wakeup time.
void thread_queue_debug_print (thread_queue_t *queue, enum queue_types qt)
int thread_queue_exists (thread_queue_t *queue, thread_t item, enum queue_types qt)
 Checks, if the item is member of this queue.


Detailed Description

Implementation of the cyclic queue.

This file is based on Kalisto, Development Kernel copyrighted (c) to Distributed Systems Research Group MFF UK, Czech republic.


Function Documentation

void thread_queue_add ( thread_queue_t queue,
thread_t *  item,
enum queue_types  qt 
)

Add the item into thread_queue.

Parameters:
queue - thread queue pointer
qt type of queue to be removed from
item - pointer to insert

void thread_queue_debug_print ( thread_queue_t queue,
enum queue_types  qt 
)

Created for debuging (internal) purposes only, prit memebers of the queue

Parameters:
queue - Pointer to the head of queue to be printed,
qt type of queue to be removed from.

int thread_queue_empty ( thread_queue_t queue  ) 

Check the emptyness of the queue.

Returns:
EEMPTY on empty list, ENOTEMPTY else

void thread_queue_enqueue ( thread_queue_t queue,
thread_t *  item,
enum queue_types  qt 
)

enqueue thread to the queue, sort threads by wakeup time.

Parameters:
queue - Pointer to the head of queue
item - thread to e enqueued
qt type of queue to be removed from
Returns:
EEMPTY on empty queue, EOK if removed, ENOTEXISTS if the item isn't in the queue

int thread_queue_exists ( thread_queue_t queue,
thread_t  item,
enum queue_types  qt 
)

Checks, if the item is member of this queue.

Parameters:
queue - Pointer to the head of queue to be printed,
item item to be checked
qt type of queue to be removed from.

int thread_queue_fetch ( thread_queue_t queue,
thread_t *  item,
enum queue_types  qt 
)

fetch the first item from thread queue - remove from the queue

Parameters:
queue thread queue pointer
item pointer - fetched item
qt type of queue to be fetched from
Returns:
EEMPTY on empty queue, EOK else

void thread_queue_init ( thread_queue_t queue  ) 

Initialize thread queue - empty queue is simply NULL.

Parameters:
queue thread queue pointer

int thread_queue_remove_item ( thread_queue_t queue,
thread_t *  item,
enum queue_types  qt 
)

remove item from the thread queue

Parameters:
queue - thread queue pointer
item pointer - item to remove
qt type of queue to be removed from
Returns:
EEMPTY on empty queue, EOK if removed, ENOTEXISTS if the item isn't in the queue

int thread_queue_remove_item_by_id ( thread_queue_t queue,
int  thread_id,
enum queue_types  qt 
)

remove item from the thread queue, by id

Parameters:
queue - thread queue pointer
thread_id - id of the thread to be remove
qt type of queue to be removed from
Returns:
EEMPTY on empty queue, EOK if removed, ENOTEXISTS if the item isn't in the queue

void thread_queue_rotate ( thread_queue_t queue,
enum queue_types  qt 
)

Rotate the thread_queue one item to the right (on empty queue no effect).

Parameters:
queue - Pointer to the head of queue
qt type of queue to be removed from


Generated on Wed Nov 15 17:25:44 2006 for Kalisto by  doxygen 1.4.7