ncloader  0.1
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 그룹들 페이지들

외부 장치로의 입출력을 위한 공통된 디바이스 인터페이스를 정의한다. 더 자세히 ...

+ Device에 대한 협력 다이어그램:

데이타 구조

struct  device_op
 

매크로

#define MAJOR(id)   ((id) >> 8)
 Device 의 종류 더 자세히 ...
 
#define MINOR(id)   ((id) & 0xFF)
 Sub device 종류 더 자세히 ...
 

열거형 타입

enum  DEVICE {
  DEVICE_VIDEO80x25 = 0x0100, DEVICE_COM1 = 0x0200, DEVICE_COM2 = 0x0201, DEVICE_COM3 = 0x0202,
  DEVICE_COM4 = 0x0203, DEVICE_FDC = 0x0300
}
 
enum  IOCTL { IOCTL_CMD_GET_INFO = 0x0 }
 

함수

int device_init (void)
 장치 관리자를 초기화한다. 더 자세히 ...
 
int device_open (int id)
 장치를 연다 더 자세히 ...
 
int device_read (int handle, char *buffer, int size)
 장치에서 지정된 크기의 데이터를 읽어들인다. 더 자세히 ...
 
int device_write (int handle, const char *buffer, int size)
 장치에서 지정된 크기의 데이터를 쓴다. 더 자세히 ...
 
int device_seek (int handle, int offset, int whence)
 지정된 위치로 읽거나 쓸 위치를 이동시킨다. 더 자세히 ...
 
int device_ctrl (int handle, int cmd,...)
 장치를 제어한다. 더 자세히 ...
 
int device_close (int handle)
 장치를 닫는다. 더 자세히 ...
 
int device_register (int id, struct device_op *ops)
 장치를 등록한다. 더 자세히 ...
 
int device_unregister (int id)
 등록된 장치를 제거한다. 더 자세히 ...
 

상세한 설명

외부 장치로의 입출력을 위한 공통된 디바이스 인터페이스를 정의한다.

작성자
Sung-jae Park nices.nosp@m.j@ni.nosp@m.cesj..nosp@m.com
날짜
2011-7-20

외부 장치에 대한 접근을 위한 인터페이스를 정의한다. 대부분의 I/O 가 여기서 정의되는 인터페이스를 따르게 된다. 각 장치들은 아래 인터페이스에 맞게 구현하여, device_open 을 수행할 때 해당 operation 들이 binding 된다.

operation binding 은 device_register 함수를 사용한다. 각 Architecture 에서 지원하는 Device 들은, 상위 레이어에서 접근할 수 있도 록 등록해 주어야 한다.

id 는 Device 와 Architecture 전반에 걸쳐 유일해야만 device layer 가 투명하 게 Device 를 찾아서 접근할 수 있게 된다.

매크로 문서화

#define MAJOR (   id)    ((id) >> 8)

Device 의 종류

#define MINOR (   id)    ((id) & 0xFF)

Sub device 종류

열거형 타입 문서화

enum DEVICE
열거형 멤버
DEVICE_VIDEO80x25 
DEVICE_COM1 
DEVICE_COM2 
DEVICE_COM3 
DEVICE_COM4 
DEVICE_FDC 
enum IOCTL
열거형 멤버
IOCTL_CMD_GET_INFO 

함수 문서화

int device_close ( int  handle)

장치를 닫는다.

매개변수
[in]handle장치 핸들
반환값
int 성공하면 0, 실패하면 에러코드
참고
device_open()

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

int device_ctrl ( int  handle,
int  cmd,
  ... 
)

장치를 제어한다.

매개변수
[in]handle장치 핸들
[in]cmd제어를 위한 명령
[in]...명령에 따라 장치에서 제공하는 인자들의 가변 리스트
반환값
int 제어 결과 성공하면 0 실패하면 에러코드
int device_init ( void  )

장치 관리자를 초기화한다.

반환값
int 성공하면 0, 실패하면 에러코드
int device_open ( int  id)

장치를 연다

매개변수
[in]id장치 종류
반환값
int 성공하면 장치 핸들을 실패하면 에러코드를 반환한다.
참고
device_close()

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

int device_read ( int  handle,
char *  buffer,
int  size 
)

장치에서 지정된 크기의 데이터를 읽어들인다.

매개변수
[in]handle장치 핸들
[out]buffer읽어들인 데이터를 저장할 버퍼
[in]size읽어들일 데이터의 크기
반환값
int 성공하면 읽은 바이트 크기 실패하면 에러코드를 반환
참고
device_open()
device_write()

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

int device_register ( int  id,
struct device_op ops 
)

장치를 등록한다.

매개변수
[in]id고유한 장치 식별자
[in]ops장치에 접근하기 위한 함수 포인터 집합
반환값
int 성공하면 0, 실패하면 에러코드
참고
device_unregister()

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

int device_seek ( int  handle,
int  offset,
int  whence 
)

지정된 위치로 읽거나 쓸 위치를 이동시킨다.

매개변수
[in]handle장치 핸들
[in]offset이동할 오프셋 크기
[in]whence이동할 오프셋의 기준 위치
반환값
int seek 한 결과 위치
int device_unregister ( int  id)

등록된 장치를 제거한다.

매개변수
[in]id고유한 장치 식별자
반환값
int 성공하면 0, 실패하면 에러코드
참고
device_register()

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

int device_write ( int  handle,
const char *  buffer,
int  size 
)

장치에서 지정된 크기의 데이터를 쓴다.

매개변수
[in]handle장치 핸들
[in]buffer장치에 쓸 데이터가 저장된 버퍼
[in]size장치에 쓸 데이터의 크기
반환값
int 성공하면 쓴 바이트 크기, 실패하면 에러코드를 반환
참고
device_open()
device_read()

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.: