제가 보는 디바이스 드라이버의 Makefile은 아래와 같습니다. 

 

================ Makefile =============================

#
# kernel 2.6 driver Makefile
#
obj-m := dev_gpio.o

KDIR := /staff/kernel/s3c2440/linux-2.6.21
PWD  := $(shell pwd)

APP  = app_gpio

default:
 $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
 arm-linux-gcc -o $(APP) $(APP).c

clean : 
 rm -rf *.ko
 rm -rf *.mod.*
 rm -rf .*.cmd
 rm -rf *.o
========================================================

 

디바이스 드라이버 소스를 보면 include 하는 부분이 있습니다.

 

================ 디바이스 드라이버 소스 include 부분 ===========

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/init.h>
#include <linux/fs.h>

#include <asm/ioctl.h>
========================================================

 

위의 include부분에서 ioctl.h는 어느 위치의 ioctl.h를 가져오는 것인가요?

제 생각엔 제가 arm 2440용을 만든다면 아래 그림처럼 linux폴더 밑에 include폴더의 asm-arm을 참조할 것이라고 생각은 하지만

#include <asm/ioctl.h>는 asm-arm이라고 지정을 하지 않고 단지 asm이라고만 지정했습니다.

#include <asm/ioctl.h>는 어떤 위치의 ioctl.h를 참조하는 것인가요?

logo.jpg