GadgetSeed  0.9.6
syscall.h
[詳解]
1 /** @file
2  @brief システムコール
3 
4  @date 2011.02.26
5  @author Takashi SHUDO
6 */
7 
8 #ifndef SYSCALL_H
9 #define SYSCALL_H
10 
11 #include "task.h"
12 #include "tcb.h"
13 #include "event.h"
14 #include "mutex.h"
15 #include "device.h"
16 
17 extern int task_add(task_func func, char *name, int priority, struct st_tcb *tcb, unsigned int *stack, int stack_size, char *arg);
18 extern int task_exec(task_func func, char *name, int priority, struct st_tcb *tcb, unsigned int *stack, int stack_size, char *arg);
19 extern void task_exit(void);
20 extern void task_pause(void);
21 extern void task_sleep(unsigned int stime);
22 extern void task_kill(int id);
23 extern void task_wakeup(int id);
24 
25 extern void eventqueue_register(struct st_event *evtque, const char *name, void *args, unsigned int size, int count);
26 extern int event_wait(struct st_event *evtque, void *argp, unsigned int timeout);
27 extern int event_check(struct st_event *evtque);
28 extern void event_clear(struct st_event *evtque);
29 extern void event_wakeup(struct st_event *evtque, void *arg);
30 extern void eventqueue_unregister(struct st_event *evtque);
31 
32 extern void mutex_register(struct st_mutex *mutex, const char *name);
33 extern int mutex_lock(struct st_mutex *mutex, unsigned int timeout);
34 extern int mutex_unlock(struct st_mutex *mutex);
35 extern void mutex_unregister(struct st_mutex *mutex);
36 
37 extern void set_console_in_device(struct st_device *dev);
38 extern void set_console_out_device(struct st_device *dev);
39 extern void set_error_out_device(struct st_device *dev);
40 
41 extern void print_task_list(void);
42 extern void print_task_queue(void);
43 extern void print_call_trace(void);
44 
45 extern int task_get_tasks_info(struct st_task_info *ti, int count);
46 
47 #endif // SYSCALL_H
タスク情報
Definition: task.h:36
タスクコンテキストブロック
void task_sleep(unsigned int stime)
タスクを指定時間タイマ待ち状態にする
Definition: syscall_api.c:290
void set_console_out_device(struct st_device *dev)
実行タスクの標準出力デバイスを設定する
Definition: syscall_api.c:596
void task_kill(int id)
指定したタスクを終了する
Definition: syscall_api.c:304
void mutex_register(struct st_mutex *mutex, const char *name)
MUTEXを登録する
Definition: syscall_api.c:497
void eventqueue_register(struct st_event *evtque, const char *name, void *args, unsigned int size, int count)
イベントキューを登録する
Definition: syscall_api.c:339
void event_wakeup(struct st_event *evtque, void *arg)
イベントキューにイベントを登録する
Definition: syscall_api.c:453
int task_add(task_func func, char *name, int priority, struct st_tcb *tcb, unsigned int *stack, int stack_size, char *arg)
タスクを追加する
Definition: syscall_api.c:188
int mutex_lock(struct st_mutex *mutex, unsigned int timeout)
MUTEXをロックする
Definition: syscall_api.c:517
void task_pause(void)
タスクを停止する
Definition: syscall_api.c:276
int mutex_unlock(struct st_mutex *mutex)
MUTEXをアンロックする
Definition: syscall_api.c:543
int(* task_func)(char *arg)
タスク関数
Definition: tcb.h:25
void task_exit(void)
タスクを終了する
Definition: syscall_api.c:264
int event_check(struct st_event *evtque)
イベントキューにイベントが登録されているか調べる
Definition: syscall_api.c:402
void task_wakeup(int id)
指定したタスクを実行状態にする
Definition: syscall_api.c:318
MUTEX
Definition: mutex.h:13
void set_error_out_device(struct st_device *dev)
実行タスクのエラー出力デバイスを設定する
Definition: syscall_api.c:610
イベント
Definition: event.h:15
MUTEX制御
タスク制御
void event_clear(struct st_event *evtque)
イベントキューに登録されているイベントを削除する
Definition: syscall_api.c:430
イベント待ちタスクキューの操作
void eventqueue_unregister(struct st_event *evtque)
イベントキューを登録解除する
Definition: syscall_api.c:479
デバイスドライバAPI
デバイスドライバ構造体
Definition: device.h:25
void set_console_in_device(struct st_device *dev)
実行タスクの標準入力デバイスを設定する
Definition: syscall_api.c:582
int task_exec(task_func func, char *name, int priority, struct st_tcb *tcb, unsigned int *stack, int stack_size, char *arg)
タスクを追加し起動する
Definition: syscall_api.c:231
タスクコンテキスト
Definition: tcb.h:32
void mutex_unregister(struct st_mutex *mutex)
MUTEXを登録解除する
Definition: syscall_api.c:564
int event_wait(struct st_event *evtque, void *argp, unsigned int timeout)
タスクをイベント待ち状態にする
Definition: syscall_api.c:364