Coroutine 에 관해..

junyata의 이미지

프로그램 분석중 Coroutine의 약자인 Corout 구조체를 접하게 되었는데

예를 들어
#include <co.h>
#undef codata /* undefine macro def'd in co.h */

inline covalue *codata(Corout *co)
{ /* access co -> data as a "union covalue*" */
return (covalue*) co -> data;
}

global int icallco(Corout *co, int i)
{ codata(co) -> i = i;
coresume(co);
return codata(_currentco) -> i;
}

혹쉬 co.h라는 헤더파일을 리눅스에서 기본적으로 제공해주는지..궁금합니다.
인터넷에 찾아보니까 cofunc이라는 게 있던데
여기서 제공해주는 함수들을 쓸려면 헤더 파일이 따로 필요한가요?
프로그램 실행하는중에 Corout 구조체를 정의한 부분이 없어서
이렇게 글을 올립니다.