Enhanced Char Driver Operations
본 자료는 7페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
해당 자료는 7페이지 까지만 미리보기를 제공합니다.
7페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

Enhanced Char Driver Operations에 대한 보고서 자료입니다.

목차

1.ioctl 구현

2.Blocking and Non-blocking

3.Asynchronous

4.Seeking a Device

본문내용

ioctl
정의
Device driver를 통해 제어 기능을 수행하는 방법
선언 형식(sys/ioctl.h)
문제점
추가되는 인자에 대해서는 타입체크를 하지 않음
Choosing the ioctl Commands
유일한 명령코드 작성 필요
다른 디바이스가 잘못 해석하지 않도록 설계
Magic Number
Documentation/ioctl-number.txt 참고
구성


2.0버전 이전까지 16bit 사용
현재도 사용 중 (linux/kd.h 참고)
ioctl macro(asm/ioctl.h 참고)
ioctl 명령을 설정하는 매크로
_IO(type, nr)
_IOR(type, nr, size)
_IOW(type, nr, size)
_IOWR(type, nr, size)
ioctl 명령을 해석하는 매크로
_IOC_DIR(nr)
_IOC_TYPE(nr)
_IOC_NR(nr)
_IOC_SIZE(nr)
Using the ioctl Argument
추가 인자 사용
사용자 공간의 주소일 경우
페이지 폴트가 발생하지 않도록 사용자 공간에 대한 검사 필요
access_ok() 함수 이용
Blocking and Non-blocking Operations
Blocking
Process가 read 호출 시
데이터가 아직 없을 경우
끝이 나지 않았는데, 데이터가 없을 경우
Process가 write 호출 시
버퍼에 여유가 없을 경우
Non-blocking
O_NONBLOCK이 사용 (filp->f_flags)
즉시 –EAGAIN값을 return
Read 호출 시 읽을 데이터가 없을 때
버퍼에 빈 영역이 없을 때, write를 사용
응용 프로그램이 데이터를 얻기 위해 poll하도록 허용
Blocking I/O
Process가 어떻게 sleep, wake 할까?
Going to Sleep
sleep_on(wait_queue_head_t *queue)
interruptible_sleep_on(wait_queue_head_t *queue)
sleep_on_timeout(
wait_queue_head_t *queue,
long timeout)
interruptible_sleep_on_timeout(

키워드

  • 가격1,500
  • 페이지수20페이지
  • 등록일2003.12.27
  • 저작시기2003.12
  • 파일형식파워포인트(ppt)
  • 자료번호#240660
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니