blob: 549b9a5d489edc90951328a0ba343dfbc71deaf9 [file] [log] [blame]
// 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_