queue.h

ソースコードを見る。

データ構造

struct  queue

型定義

typedef struct queue QUEUE

関数

Inline void queue_initialize (QUEUE *p_queue)
Inline void queue_insert_prev (QUEUE *p_queue, QUEUE *p_entry)
Inline void queue_delete (QUEUE *p_entry)
Inline QUEUEqueue_delete_next (QUEUE *p_queue)
Inline bool_t queue_empty (QUEUE *p_queue)


型定義

typedef struct queue QUEUE


関数

Inline void queue_delete ( QUEUE p_entry  ) 

queue.h100 行で定義されています。

参照先 queue::p_next, と queue::p_prev.

参照元 change_priority(), iset_flg(), make_non_runnable(), set_flg(), wait_dequeue_wobj(), と wobj_change_priority().

00101 {
00102     p_entry->p_prev->p_next = p_entry->p_next;
00103     p_entry->p_next->p_prev = p_entry->p_prev;
00104 }

Inline QUEUE* queue_delete_next ( QUEUE p_queue  ) 

queue.h115 行で定義されています。

参照先 assert, queue::p_next, と queue::p_prev.

参照元 force_send_data(), init_wait_queue(), isig_sem(), receive_data(), receive_pridata(), rel_mpf(), rotate_ready_queue(), send_data(), send_pridata(), sig_sem(), と snd_mbx().

00116 {
00117     QUEUE   *p_entry;
00118 
00119     assert(p_queue->p_next != p_queue);
00120     p_entry = p_queue->p_next;
00121     p_queue->p_next = p_entry->p_next;
00122     p_entry->p_next->p_prev = p_queue;
00123     return(p_entry);
00124 }

Inline bool_t queue_empty ( QUEUE p_queue  ) 

queue.h132 行で定義されています。

参照先 assert, queue::p_next, と queue::p_prev.

参照元 change_priority(), force_send_data(), init_wait_queue(), isig_sem(), make_non_runnable(), pol_flg(), receive_data(), receive_pridata(), rel_mpf(), rotate_ready_queue(), send_data(), send_pridata(), sig_sem(), snd_mbx(), twai_flg(), wai_flg(), と wait_tskid().

00133 {
00134     if (p_queue->p_next == p_queue) {
00135         assert(p_queue->p_prev == p_queue);
00136         return(true);
00137     }
00138     return(false);
00139 }

Inline void queue_initialize ( QUEUE p_queue  ) 

queue.h74 行で定義されています。

参照先 queue::p_next, と queue::p_prev.

参照元 initialize_dataqueue(), initialize_eventflag(), initialize_mailbox(), initialize_mempfix(), initialize_pridataq(), initialize_semaphore(), と initialize_task().

00075 {
00076     p_queue->p_prev = p_queue->p_next = p_queue;
00077 }

Inline void queue_insert_prev ( QUEUE p_queue,
QUEUE p_entry 
)

queue.h86 行で定義されています。

参照先 queue::p_next, と queue::p_prev.

参照元 change_priority(), make_runnable(), queue_insert_tpri(), rcv_dtq(), rcv_pdq(), rotate_ready_queue(), trcv_dtq(), trcv_pdq(), と wobj_queue_insert().

00087 {
00088     p_entry->p_prev = p_queue->p_prev;
00089     p_entry->p_next = p_queue;
00090     p_queue->p_prev->p_next = p_entry;
00091     p_queue->p_prev = p_entry;
00092 }


Copyright © 2008 by Kijineko Inc.

ホームページ制作