리눅스 헤더파일, 인터럽트처리, FASTCALL
안녕하세요.
인터럽트가 발생했을때 해당정보를 가져오는 프로그램을 만들려고 하는데요…
별로 아는 것이 없어서, 일단 보고 이해라도 해보려고
인터넷에서 인터럽트 처리 관련 소스
커널 2.4버젼을 구했습니다.
근데 계속 막히네요…
일단 #include
이거만 인클루드해도…
#include
int main()
{
printf(“asdf”);
return 0;
}
이렇게만 작성해도 컴파일오류가 산더미처럼 나옵니다.
도대체 뭐가 문제길래 interrupt.h만 인클루드하고 컴파일해도 에러가 나는걸까요…
에러를 찾아봤습니다.
*************************************************
interrupt.h 에서는
syntax 에러와 parse error가 나오는데요.
asmlinkage void do_softirq(void);
여기서 syntax에러가 납니다. void 앞이 잘못되었다면서..
asmlinkage때문에 그런거같은데…왜그런지 모르겠네요.
그리고 parse error…
extern void FASTCALL);
이부분에서 나는데요.
이거말고도 FASTCALL 함수 3개 더있는데 다 parse에러 납니다.
( 토큰 전이 잘못되었다는데
FASTCALL <-이게 도대체 무슨 문제가있는건지.._;;;
*************************************************
interrupt.h에서 인클루드 된,
hard_irq.h 에서도 에러가 나는데요…
여기서도 FASTCALL은 에러나구요…parse error
그리고 prof_buffer, prof_shift, prof_len, ENOSYS가 선언되지 않았다고 뜹니다.
그래서 찾아보니 hard_irq.h에서 인클루드하는
profile.h가 있는데
profile.h가서 보면 또 extern 으로 prof_buffer 다 설정되어있는데
왜 읽어오질 못하는건지…………
답답합니다. 왜 컴파일이 안될까요?
*************************************************
아 그리고 sched.h 랑 workqueue.h 도 인클루드해서 컴파일하는데
죄다 FASTCALL에서 parse error가 납니다.
아 그냥 제가 아예 길을 잘못 타고 있는건가요???
인터럽트가 들어왔을때 그 인터럽트에 대한 간략한 정보를 가져와서 txt로 저장하면되는건데
굳이 이렇게 하지않아도 되는건가요???
제발 해결법좀 주세요!!!
http://www.google.co.kr/url?s
http://www.google.co.kr/url?sa=t&source=web&cd=1&ved=0CCoQFjAA&url=http%3A%2F%2Fkldp.org%2Fnode%2F68186&rct=j&q=gcc%20fastcall&ei=WinvTNjqIo6ycdL7gaAK&usg=AFQjCNF6eJgnCb1n0GHDBf0XgUhHawYpOA&cad=rjt
댓글 달기