외부 장치로의 입출력을 위한 공통된 디바이스 인터페이스를 정의한다.
더 자세히 ...
외부 장치로의 입출력을 위한 공통된 디바이스 인터페이스를 정의한다.
- 작성자
- 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) |
| #define MINOR |
( |
|
id) | |
((id) & 0xFF) |
| 열거형 멤버 |
|---|
| DEVICE_VIDEO80x25 |
|
| DEVICE_COM1 |
|
| DEVICE_COM2 |
|
| DEVICE_COM3 |
|
| DEVICE_COM4 |
|
| DEVICE_FDC |
|
| int device_close |
( |
int |
handle) | |
|
| int device_ctrl |
( |
int |
handle, |
|
|
int |
cmd, |
|
|
|
... |
|
) |
| |
장치를 제어한다.
- 매개변수
-
| [in] | handle | 장치 핸들 |
| [in] | cmd | 제어를 위한 명령 |
| [in] | ... | 명령에 따라 장치에서 제공하는 인자들의 가변 리스트 |
- 반환값
- int 제어 결과 성공하면 0 실패하면 에러코드
장치 관리자를 초기화한다.
- 반환값
- int 성공하면 0, 실패하면 에러코드
| int device_open |
( |
int |
id) | |
|
| 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) | |
|
| int device_write |
( |
int |
handle, |
|
|
const char * |
buffer, |
|
|
int |
size |
|
) |
| |
장치에서 지정된 크기의 데이터를 쓴다.
- 매개변수
-
| [in] | handle | 장치 핸들 |
| [in] | buffer | 장치에 쓸 데이터가 저장된 버퍼 |
| [in] | size | 장치에 쓸 데이터의 크기 |
- 반환값
- int 성공하면 쓴 바이트 크기, 실패하면 에러코드를 반환
- 참고
- device_open()
-
device_read()