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 주소 공간에 액세스하기 위해 세그먼트 정렬된 유효 주소를 반환합니다.