io_map 커널 서비스
용도
I/O 매핑에 연결
구문
#include <sys/adspace.h>
void * io_map (io_handle)
io_handle_t io_handle;
설명
그만큼 io_map 커널 서비스는 다음에 정의된 I/O 주소 공간에 대한 주소 지정 가능성을 설정합니다. io_handle_t 구조. 매핑된 지역의 시작을 나타내는 유효 주소를 반환합니다.
Io_map 커널 서비스는 AIX® 6.1 더 이상 사용되지 않는 iomem_att 커널 서비스를 대체하는 호출입니다. 그러나, 그 io_map 커널 서비스는 여러 개를 대체할 수 있습니다. iomem_att 장치, 드라이버 및 여러 지역이 단일 가상 세그먼트에 매핑되었는지 여부에 따라 호출됩니다. 처럼 iomem_att 커널 서비스인 경우 이 서비스는 어떤 종류의 오류도 반환하지 않습니다. 뭔가 잘못되면 시스템이 충돌합니다.
사이에는 큰 차이가 있습니다. io_map 그리고 iomem_att . iomem_att 했다 io_map 버스 주소를 포함하는 구조로, 버스 주소로부터의 바이트 오프셋이 유지되고 반환된 유효 주소로 계산된 정규화된 유효 주소를 반환합니다. 그만큼 io_map 커널 서비스는 항상 다음에 해당하는 I/O 세그먼트의 시작을 나타내는 세그먼트 정렬된 유효 주소를 반환합니다. io_handle_t . 세그먼트 내의 페이지 및 바이트 오프셋 조작은 장치 드라이버의 책임입니다.
그만큼 io_map 커널 서비스에는 허용되는 연결 수와 관련된 중첩 규칙이 적용됩니다. 활성 임시 연결의 총 시스템 수는 4입니다. 그러나 인터럽트 또는 DMA 커널 서비스를 호출하는 드라이버가 하나 이상의 활성 연결을 소유하지 않는 것이 좋습니다. 또한 다른 커널 서비스를 호출할 때 드라이버가 소유한 활성 연결을 사용하지 않는 것이 좋습니다.
매개변수
| 항목 | 설명 |
|---|---|
| io_handle | 이전에 성공적인 전화를 받았을 때 수신됨 io_map_init . 연결할 I/O 공간을 설명합니다. |
실행 환경
그만큼 io_map 커널 서비스는 프로세스나 인터럽트 환경에서 호출될 수 있습니다.
리턴 값
그만큼 io_map 커널 서비스는 I/O 주소 공간에 액세스하기 위해 세그먼트 정렬된 유효 주소를 반환합니다.