pdcomm_gem_host_request_alarm_list
함수
호스트에서 S5F5 List Alarms Request(W=1)를 보냅니다.
PdcommStatus pdcomm_gem_host_request_alarm_list(PdcommTcpEndpoint *endpoint, const uint32_t *ids, size_t count, PdcommTcpToken *out_token)빈 요청(NULL과 0)은 모든 알람을 요청합니다. 명시한 ALID는 지정한 순서대로, 중복까지 포함해 U4 항목으로 보냅니다. ALID는 송신 전에 복사되며, ID를 담는 모든 네이티브 GEM 요청이 함께 쓰는 호스트의 max_pending_ids 한도에 포함됩니다. 명시적 요청에 대한 S5F6 성공 응답은 요청한 ID를 요청한 순서 그대로 정확히 나열해야 합니다. 그렇지 않으면 결과는 코드가 #PDCOMM_GEM_ERROR_CORRELATION인 #PDCOMM_GEM_INVALID_RESPONSE가 됩니다. 일치하는 응답은 결과 유형이 #PDCOMM_GEM_ALARM_LIST_RECEIVED인 RESPONSE 결과를 만들며, 그 알람은 전송된 ID를 제공합니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | GEM 호스트가 구성된 엔드포인트입니다. |
ids | count개의 ALID 배열입니다. count가 0이면 NULL일 수 있습니다. |
count | ID 개수입니다. 0이면 모든 알람을 요청합니다. |
out_token | 트랜잭션 토큰을 받습니다. 실패하면 항상 0입니다. |
반환값
요청을 큐에 넣었으면 #PDCOMM_OK를 반환합니다(큐 접수만 뜻함). endpoint 또는 out_token이 NULL이거나, count가 0이 아닌데 ids가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. ID가 max_pending_ids를 넘게 되거나 메시지가 호스트 항목 한도를 넘게 되면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 엔드포인트에 GEM 호스트가 없거나, 통신이 COMMUNICATING 상태가 아니거나, HSMS 세션이 선택(selected) 상태가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. 준비된 TCP 이벤트(staged event)가 있거나, 대기 슬롯 32개가 모두 사용 중이거나, TCP 큐가 가득 찼거나 정지 중이면 #PDCOMM_BACKPRESSURE를 반환합니다. #PDCOMM_ALLOCATION_FAILED를 반환할 수도 있습니다. 엔드포인트가 오염(poisoned) 상태이거나 패닉(panic)을 격리했으면 #PDCOMM_POISONED를 반환합니다. 그 밖에 pdcomm_tcp_request()와 같은 다른 TCP 제출 상태 코드를 반환할 수 있습니다.