| // Copyright 2018 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // NOTE: THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MODIFY |
| |
| #ifndef HERMES_QMI_UIM_H_ |
| #define HERMES_QMI_UIM_H_ |
| |
| #include <cstdint> |
| |
| #include <libqrtr.h> |
| |
| enum class QmiUimCommand : uint16_t { |
| kReset = 0x00, |
| kSendApdu = 0x3B, |
| kOpenLogicalChannel = 0x42, |
| }; |
| constexpr int kBufferDataSize = 260; |
| |
| struct uim_qmi_result { |
| uint16_t result; |
| uint16_t error; |
| }; |
| |
| struct uim_card_result_t { |
| uint8_t sw1; |
| uint8_t sw2; |
| }; |
| |
| struct uim_open_logical_channel_req { |
| uint8_t slot; |
| bool aid_valid; |
| uint8_t aid_len; |
| uint8_t aid[kBufferDataSize]; |
| }; |
| |
| struct uim_open_logical_channel_resp { |
| uim_qmi_result result; |
| bool channel_id_valid; |
| uint8_t channel_id; |
| bool card_result_valid; |
| uim_card_result_t card_result; |
| bool select_response_valid; |
| uint8_t select_response_len; |
| uint8_t select_response[kBufferDataSize]; |
| }; |
| |
| struct uim_reset_req {}; |
| |
| struct uim_reset_resp { |
| uim_qmi_result result; |
| }; |
| |
| struct uim_send_apdu_req { |
| uint8_t slot; |
| uint16_t apdu_len; |
| uint8_t apdu[kBufferDataSize]; |
| bool channel_id_valid; |
| uint8_t channel_id; |
| }; |
| |
| struct uim_send_apdu_resp { |
| uim_qmi_result result; |
| bool apdu_response_valid; |
| uint16_t apdu_response_len; |
| uint8_t apdu_response[kBufferDataSize]; |
| }; |
| |
| extern struct qmi_elem_info uim_open_logical_channel_req_ei[]; |
| extern struct qmi_elem_info uim_open_logical_channel_resp_ei[]; |
| extern struct qmi_elem_info uim_reset_req_ei[]; |
| extern struct qmi_elem_info uim_reset_resp_ei[]; |
| extern struct qmi_elem_info uim_send_apdu_req_ei[]; |
| extern struct qmi_elem_info uim_send_apdu_resp_ei[]; |
| |
| #endif // HERMES_QMI_UIM_H_ |