본문 바로가기

Linux/Device Driver

디바이스 드라이버 초기화와 종료 함수 처리

#include <linux/fs.h>
int open(struct inode *inode, struct file *filp);
inode : 열린 디바이스 파일에 대한 정보가 있는 구조체 주소
filp : 디바이스 드라이버의 처리 관련 정보가 있는 구조체 주소
-----------------------------------------------------------------
#include <linux/fs.h>
int release(struct inode *inode, struct file *filp);
inode : 열린 디바이스 파일에 대한 정보가 있는 구조체 주소
filp : 디바이스 드라이버 처리와 관련된 정보가 있는 구조체 주소
-----------------------------------------------------------------
#include <linux/ioport.h>
int check_region(unsigned long from, unsigned long extent);
등록된 I/O영역중에서 from 과 extent 가 일치하는 등록 항목이 있는 가를 확인한다.
from : 확인하고자 하는 I/O 영역의 시작 주소
extent : 확인하고자 하는 I/O 영역의 크기
-----------------------------------------------------------------
#include <linux/ioport.h>
void request_region(unsigned long from, unsigned long extent, const char *name);
from으로 시작되는 I/O 영역을 name이라는 이름으로 extent 크기만큼 등록한다.
이 영역은 /proc/ioport 파일에서 확인가능하다.
from : 등록하려는 I/O 영역의 시작 주소
extent : from에서 등록하려는 I/O 영역의 크기
name : 등록하려는 I/O 영역에 대한 이름 문자열의 선두
-----------------------------------------------------------------
#include <linux/ioport.h>
void release_region(unsigned long from, unsigned long extent);
등록된 I/O 영역 중에서 from과 extent가 일치하는 항목을 제거한다.
from : 제거하려는 I/O 영역의 시작 주소
extent : 제거하려는 I/O 영역의 크기
-----------------------------------------------------------------
#include <linux/ioport.h>
int check_mem_region(unsigned long from, unsigned long extent);
등록된 I/O 메모리 영역 중에서 from과 extent가 일치하는 항목이 있는지 확인한다.
from : 확인하고자 하는 I/O 메모리 영역의 시작 주소
extent : 확인하고자 하는 I/O 메모리 영역의 크기
-----------------------------------------------------------------
#include <linux/ioport.h>
void request_mem_region(unsigned long from, unsigned long extent, const char *name);
from으로 시작되는 I/O 영역을 name이라는 이름으로 extent 크기만큼 등록한다. 이 영역
은 /proc/iomem 파일에서 확인 가능하다.
-----------------------------------------------------------------
#include <linux/ioport.h>
void release_mem_region(unsigned long from, unsigned long extent);
등록된 I/O 메모리 영역 중에서 from 과 extent 가 일치하는 항목을 제거한다.
from : 제거하려는 I/O 메모리 영역의 시작주소
extent : 제거하려는 I/O 메모리 영역의 크기