module.h 에는 임베디드 프로그램을 만드는데 유용한 매크로들이 포함되어 있다. 여기에 그 내용을 싣는다.(커널 버전은 2.4.19) /* * Dynamic loading of modules into the kernel. * * Rewritten by Richard Henderson <rth@tamu.edu> Dec 1996 */ #ifndef _LINUX_MODULE_H#define _LINUX_MODULE_H #include <linux/config.h>#include <linux/spinlock.h>#include <linux/list.h> #ifdef __GENKSYMS__# define _set_ver(sym) sym# undef MODVERSIONS# define MODVERSIONS#else /* ! __GENKSYMS__ */# if !defined(MODVERSIONS) && defined(EXPORT_SYMTAB)# […]
errno.h 파일에는 여러가지 에러코드에 대한 정의가 수록되어 있다. 여기에 그 내용을 싣는다. /usr/include/asm-generic/errno.h #ifndef _ASM_GENERIC_ERRNO_H#define _ASM_GENERIC_ERRNO_H #include <asm-generic/errno-base.h> #define EDEADLK 35 /* Resource deadlock would occur */#define ENAMETOOLONG 36 /* File name too long */#define ENOLCK 37 /* No record locks available */#define […]
다음과 같은 명령을 이용하여 디바이스 드라이버를 커널에 삽입한다. $ insmod driver.o 여기서 driver.o는 테스트로 작성된 디바이스 드라이버 파일명이다. 위와 같이 콘솔에서 insmod driver.o 를 실행 시키면 다음과 같은 시스템 콜이 수행되어 드라이버를 커널에 삽입한다. 1. sys_create_module()을 사용하여 디바이스 드라이버를 적재하기 위한 메모리를 할당한다. 2. sys_get_kernel_syms()를 이용하여 driver.o 안에 있는 심볼을 커널에 등록한다. 3. 마지막으로 sys_init_module() 을 사용하여 […]
struct file_operations { struct module *owner; // llseek 메소드는 파일에서 현재의 read/write의 위치를 옮기며, 새로운 위치가 (양수)값으로 리턴된다. 에러는 음수값으로 반환된다. loff_ (*llseek) (struct file *, loff_t, int); // read 메소드는 디바이스에서 데이터를 가져오기 위해서 사용한다. 여기에 NULL 값을 사용하면 read 시스템 콜은 -EINVAL(“잘못된 매개 변수”)값을 돌려 주며 실패한다. 음수값이 아닌 […]
크로스 : 컴퓨터 – 컴퓨터 다이렉트 : 컴퓨터 – 허브 크로스 케이블 주황색 띠 ———- 녹색 띠주황색 ———- 녹색녹색 띠 ———- 주황색 띠파란색 ———- 파란색파란색 띠 ———- 파란색 띠녹색 ———- 주황색갈색 띠 ———- 갈색 띠갈색 ———- 갈색 다이렉트 케이블 […]
Recent Comments