ubinos
Classes | Typedefs | Functions
signal.h File Reference

ubik signal API More...

#include <ubinos_config.h>
#include <ubinos/type.h>
#include "task.h"

Go to the source code of this file.

Classes

struct  __signal_tip_t
 

Typedefs

typedef struct __signal_tip_t _signal_tip_t
 
typedef _signal_tip_tsignal_pt
 

Functions

int signal_create (signal_pt *signal_p)
 
int signal_create_ext (signal_pt *signal_p, unsigned int option)
 
int signal_delete (signal_pt *signal_p)
 
int signal_wait (signal_pt signal)
 
int signal_wait_timed (signal_pt signal, unsigned int tick)
 
int signal_wait_timedms (signal_pt signal, unsigned int timems)
 
int signal_send (signal_pt signal, int sigtype)
 
int signal_broadcast (signal_pt signal, int sigtype)
 
int signal_setsender (signal_pt signal, task_pt task)
 

Detailed Description

ubik signal API

ubik signal API를 정의합니다.

Typedef Documentation

◆ _signal_tip_t

typedef struct __signal_tip_t _signal_tip_t

API용 시그널 형 정의

◆ signal_pt

API용 시그널 포인터 형 정의

Function Documentation

◆ signal_broadcast()

int signal_broadcast ( signal_pt  signal,
int  sigtype 
)

기다리고 있는 태스크들 모두에게 시그널을 보내는 함수

Parameters
signal대상 시그널 포인터
sigtype시그널 종류 (0 이상)
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
Examples
signaltest01.c.

◆ signal_create()

int signal_create ( signal_pt signal_p)

시그널를 생성하는 함수

Parameters
signal_p생성한 시그널의 주소를 저장할 포인터의 주소
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
Examples
signaltest01.c, signaltest02.c, signaltest03.c, signaltest04.c, tasktest07.c, and tasktest08.c.

◆ signal_create_ext()

int signal_create_ext ( signal_pt signal_p,
unsigned int  option 
)

시그널를 생성하는 함수 (확장형)

Parameters
signal_p생성한 시그널의 주소를 저장할 포인터의 주소
option옵션 (SIGNAL_OPT__...)
0: 기본 설정
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음

◆ signal_delete()

int signal_delete ( signal_pt signal_p)

시그널를 제거하는 함수

Parameters
signal_p제거할 시그널의 주소가 저장된 포인터의 주소
제거에 성공하면 *signal_p는 NULL이 됨
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
Examples
signaltest01.c, signaltest02.c, signaltest03.c, signaltest04.c, tasktest07.c, and tasktest08.c.

◆ signal_send()

int signal_send ( signal_pt  signal,
int  sigtype 
)

기다리고 있는 태스크들 중 하나에게 시그널을 보내는 함수

Parameters
signal대상 시그널 포인터
sigtype시그널 종류 (0 이상)
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
Examples
signaltest01.c, signaltest02.c, signaltest03.c, tasktest07.c, and tasktest08.c.

◆ signal_setsender()

int signal_setsender ( signal_pt  signal,
task_pt  task 
)

시그널을 보내는(시그널을 기다리는 최상위 우선순위 태스크의우선순위를 상속받을) 태스크를 설정하는 함수

Parameters
signal대상 시그널 포인터
task대상 태스크 포인터
NULL: 설정 해제
Returns
0: 성공

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
Examples
signaltest03.c.

◆ signal_wait()

int signal_wait ( signal_pt  signal)

시그널을 기다리는 함수

Parameters
signal대상 시그널 포인터
Returns
받은 시그널 종류

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
UBIK_ERR__DEADLOCK : 데드락 발생 가능성이 있음
UBIK_ERR__TERMINATED : 기다리던 객체가 제거되었음
Examples
signaltest01.c, signaltest02.c, and signaltest03.c.

◆ signal_wait_timed()

int signal_wait_timed ( signal_pt  signal,
unsigned int  tick 
)

제한 시간동안 시그널을 기다리는 함수

Parameters
signal대상 시그널 포인터
tick제한 시간 (시스템 틱 수)
Returns
받은 시그널 종류

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
UBIK_ERR__TIMEOUT : 제한 시간 초과
UBIK_ERR__DEADLOCK : 데드락 발생 가능성이 있음
UBIK_ERR__TERMINATED : 기다리던 객체가 제거되었음
Examples
signaltest01.c, and tasktest08.c.

◆ signal_wait_timedms()

int signal_wait_timedms ( signal_pt  signal,
unsigned int  timems 
)

제한 시간동안 시그널을 기다리는 함수 (천분의 일초 단위)

Parameters
signal대상 시그널 포인터
timems제한 시간 (천분의 일초)
Returns
받은 시그널 종류

-1: 오류
-n: n-1 번째 매개변수가 잘못되었음
UBIK_ERR__TIMEOUT : 제한 시간 초과
UBIK_ERR__DEADLOCK : 데드락 발생 가능성이 있음
UBIK_ERR__TERMINATED : 기다리던 객체가 제거되었음