xmemdma 커널 서비스
용도
DMA(직접 메모리 액세스) I/O를 위한 페이지를 준비하거나 DMA I/O가 완료된 후 페이지를 처리합니다.
구문
매개변수
| 항목 | 설명 |
|---|---|
| XP | 교차 메모리 설명자를 지정합니다. |
| xaddr | 전송할 페이지를 지정하는 주소를 식별합니다. |
| flag | DMA I/O를 위한 페이지를 준비할지 또는 DMA I/O가 완료된 후 처리할지 여부를 지정합니다. 가능한 값은 다음과 같습니다.
|
설명
그만큼 xmemdma 커널 서비스는 다음에서 지정한 페이지에서 작동합니다. xaddr 교차 메모리 설명자에 의해 지정된 영역의 매개변수입니다. 교차 메모리 설명자가 커널용인 경우 xaddr 매개변수는 커널 주소를 지정합니다. 그렇지 않으면, xaddr 매개변수는 교차 메모리 설명자에 설명된 영역의 오프셋을 지정합니다.
그만큼 xmemdma 커널 서비스는 프로세서 메모리 캐시가 있지만 캐시를 통해 DMA I/O를 수행하지 않는 시스템에 제공됩니다. 다음에 대한 장치 핸들러 마이크로 채널 DMA 장치는 d_master 서비스와 d_완전 대신 커널 서비스 xmemdma 커널 서비스.
만약 깃발 매개변수는 다음을 나타냅니다. XMEM_HIDE (그건, XMEM_UNHIDE 설정되지 않음) 이는 페이지의 첫 번째 숨기기입니다. xmemdma 커널 서비스는 캐시를 플러시하고 페이지를 유효하지 않게 만들어 DMA I/O를 위한 페이지를 준비합니다. 때 XMEM_UNHIDE 비트가 설정되고 이것이 페이지의 마지막 숨기기 해제가 되면 다음 이벤트가 발생합니다.
- 페이지가 유효해졌습니다.
페이지가 호출기 I/O 상태가 아닌 경우:
- 페이지에서 대기 중인 모든 프로세스가 준비되었습니다.
- 페이지에 읽기 전용 저장소 키가 없으면 페이지의 수정된 비트가 설정됩니다.
페이지는 DMA 작업 중에 유효하지 않으므로 가상 주소로 주소를 지정할 수 없습니다. 이렇게 하면 DMA 작업 중에 프로세스가 페이지의 일부를 캐시로 읽거나 로드하는 것을 방지할 수 있습니다.
지정된 페이지는 메모리에 있어야 하며 고정되어 있어야 합니다.
만약 XMEM_ACC_CHK 비트가 설정된 다음 xmemdma 커널 서비스는 페이지에 대한 액세스 권한도 확인합니다. 페이지 액세스가 읽기 전용인 경우 XMEM_WRITE_ONLY 비트는 깃발 매개변수.
- 그만큼 xmemdma 커널 서비스는 페이지를 숨기거나 공개하지 않으며 캐시 플러시를 수행하지도 않습니다. 서비스의 주요 기능은 실제 주소 변환입니다.
- 이 서비스는 다음 이상의 대용량 메모리 시스템에서는 지원되지 않습니다.4GB 물리적 메모리 주소. 그러한 시스템의 경우,xmemdma64 사용되어야한다.
실행 환경
리턴 값
성공적으로 완료되면, xmemdma 서비스는 다음에 해당하는 실제 주소를 반환합니다. xaddr 그리고 경험치 매개변수.
오류 코드
그만큼 xmemdma 커널 서비스는 다음 값을 반환합니다. XMEM_FAIL 다음 중 하나에 해당하는 경우:
- 설명자가 잘못되었습니다.
- 에서 지정한 페이지 xaddr 또는 경험치 매개변수가 잘못되었습니다.
- 해당 페이지에 대한 접근이 허용되지 않습니다.