1 #include <errno.h> 2 #include <string.h> 3 #include "qmi_rmtfs.h" 4 5 struct qmi_elem_info rmtfs_qmi_result_ei[] = { 6 { 7 .data_type = QMI_UNSIGNED_2_BYTE, 8 .elem_len = 1, 9 .elem_size = sizeof(uint16_t), 10 .offset = offsetof(struct rmtfs_qmi_result, result), 11 }, 12 { 13 .data_type = QMI_UNSIGNED_2_BYTE, 14 .elem_len = 1, 15 .elem_size = sizeof(uint16_t), 16 .offset = offsetof(struct rmtfs_qmi_result, error), 17 }, 18 {} 19 }; 20 21 struct qmi_elem_info rmtfs_iovec_entry_ei[] = { 22 { 23 .data_type = QMI_UNSIGNED_4_BYTE, 24 .elem_len = 1, 25 .elem_size = sizeof(uint32_t), 26 .offset = offsetof(struct rmtfs_iovec_entry, sector_addr), 27 }, 28 { 29 .data_type = QMI_UNSIGNED_4_BYTE, 30 .elem_len = 1, 31 .elem_size = sizeof(uint32_t), 32 .offset = offsetof(struct rmtfs_iovec_entry, phys_offset), 33 }, 34 { 35 .data_type = QMI_UNSIGNED_4_BYTE, 36 .elem_len = 1, 37 .elem_size = sizeof(uint32_t), 38 .offset = offsetof(struct rmtfs_iovec_entry, num_sector), 39 }, 40 {} 41 }; 42 43 struct qmi_elem_info rmtfs_open_req_ei[] = { 44 { 45 .data_type = QMI_STRING, 46 .elem_len = 256, 47 .elem_size = sizeof(char), 48 .array_type = VAR_LEN_ARRAY, 49 .tlv_type = 1, 50 .offset = offsetof(struct rmtfs_open_req, path) 51 }, 52 {} 53 }; 54 55 struct qmi_elem_info rmtfs_open_resp_ei[] = { 56 { 57 .data_type = QMI_STRUCT, 58 .elem_len = 1, 59 .elem_size = sizeof(struct rmtfs_qmi_result), 60 .tlv_type = 2, 61 .offset = offsetof(struct rmtfs_open_resp, result), 62 .ei_array = rmtfs_qmi_result_ei, 63 }, 64 { 65 .data_type = QMI_OPT_FLAG, 66 .elem_len = 1, 67 .elem_size = sizeof(bool), 68 .tlv_type = 16, 69 .offset = offsetof(struct rmtfs_open_resp, caller_id_valid), 70 }, 71 { 72 .data_type = QMI_UNSIGNED_4_BYTE, 73 .elem_len = 1, 74 .elem_size = sizeof(uint32_t), 75 .tlv_type = 16, 76 .offset = offsetof(struct rmtfs_open_resp, caller_id), 77 }, 78 {} 79 }; 80 81 struct qmi_elem_info rmtfs_close_req_ei[] = { 82 { 83 .data_type = QMI_UNSIGNED_4_BYTE, 84 .elem_len = 1, 85 .elem_size = sizeof(uint32_t), 86 .tlv_type = 1, 87 .offset = offsetof(struct rmtfs_close_req, caller_id), 88 }, 89 {} 90 }; 91 92 struct qmi_elem_info rmtfs_close_resp_ei[] = { 93 { 94 .data_type = QMI_STRUCT, 95 .elem_len = 1, 96 .elem_size = sizeof(struct rmtfs_qmi_result), 97 .tlv_type = 2, 98 .offset = offsetof(struct rmtfs_close_resp, result), 99 .ei_array = rmtfs_qmi_result_ei, 100 }, 101 {} 102 }; 103 104 struct qmi_elem_info rmtfs_iovec_req_ei[] = { 105 { 106 .data_type = QMI_UNSIGNED_4_BYTE, 107 .elem_len = 1, 108 .elem_size = sizeof(uint32_t), 109 .tlv_type = 1, 110 .offset = offsetof(struct rmtfs_iovec_req, caller_id), 111 }, 112 { 113 .data_type = QMI_UNSIGNED_1_BYTE, 114 .elem_len = 1, 115 .elem_size = sizeof(uint8_t), 116 .tlv_type = 2, 117 .offset = offsetof(struct rmtfs_iovec_req, direction), 118 }, 119 { 120 .data_type = QMI_DATA_LEN, 121 .elem_len = 1, 122 .elem_size = sizeof(uint8_t), 123 .tlv_type = 3, 124 .offset = offsetof(struct rmtfs_iovec_req, iovec_len), 125 }, 126 { 127 .data_type = QMI_STRUCT, 128 .elem_len = 255, 129 .elem_size = sizeof(struct rmtfs_iovec_entry), 130 .array_type = VAR_LEN_ARRAY, 131 .tlv_type = 3, 132 .offset = offsetof(struct rmtfs_iovec_req, iovec), 133 .ei_array = rmtfs_iovec_entry_ei, 134 }, 135 { 136 .data_type = QMI_UNSIGNED_1_BYTE, 137 .elem_len = 1, 138 .elem_size = sizeof(uint8_t), 139 .tlv_type = 4, 140 .offset = offsetof(struct rmtfs_iovec_req, is_force_sync), 141 }, 142 {} 143 }; 144 145 struct qmi_elem_info rmtfs_iovec_resp_ei[] = { 146 { 147 .data_type = QMI_STRUCT, 148 .elem_len = 1, 149 .elem_size = sizeof(struct rmtfs_qmi_result), 150 .tlv_type = 2, 151 .offset = offsetof(struct rmtfs_iovec_resp, result), 152 .ei_array = rmtfs_qmi_result_ei, 153 }, 154 {} 155 }; 156 157 struct qmi_elem_info rmtfs_alloc_buf_req_ei[] = { 158 { 159 .data_type = QMI_UNSIGNED_4_BYTE, 160 .elem_len = 1, 161 .elem_size = sizeof(uint32_t), 162 .tlv_type = 1, 163 .offset = offsetof(struct rmtfs_alloc_buf_req, caller_id), 164 }, 165 { 166 .data_type = QMI_UNSIGNED_4_BYTE, 167 .elem_len = 1, 168 .elem_size = sizeof(uint32_t), 169 .tlv_type = 2, 170 .offset = offsetof(struct rmtfs_alloc_buf_req, buff_size), 171 }, 172 {} 173 }; 174 175 struct qmi_elem_info rmtfs_alloc_buf_resp_ei[] = { 176 { 177 .data_type = QMI_STRUCT, 178 .elem_len = 1, 179 .elem_size = sizeof(struct rmtfs_qmi_result), 180 .tlv_type = 2, 181 .offset = offsetof(struct rmtfs_alloc_buf_resp, result), 182 .ei_array = rmtfs_qmi_result_ei, 183 }, 184 { 185 .data_type = QMI_OPT_FLAG, 186 .elem_len = 1, 187 .elem_size = sizeof(bool), 188 .tlv_type = 16, 189 .offset = offsetof(struct rmtfs_alloc_buf_resp, buff_address_valid), 190 }, 191 { 192 .data_type = QMI_UNSIGNED_8_BYTE, 193 .elem_len = 1, 194 .elem_size = sizeof(uint64_t), 195 .tlv_type = 16, 196 .offset = offsetof(struct rmtfs_alloc_buf_resp, buff_address), 197 }, 198 {} 199 }; 200 201 struct qmi_elem_info rmtfs_dev_error_req_ei[] = { 202 { 203 .data_type = QMI_UNSIGNED_4_BYTE, 204 .elem_len = 1, 205 .elem_size = sizeof(uint32_t), 206 .tlv_type = 1, 207 .offset = offsetof(struct rmtfs_dev_error_req, caller_id), 208 }, 209 {} 210 }; 211 212 struct qmi_elem_info rmtfs_dev_error_resp_ei[] = { 213 { 214 .data_type = QMI_STRUCT, 215 .elem_len = 1, 216 .elem_size = sizeof(struct rmtfs_qmi_result), 217 .tlv_type = 2, 218 .offset = offsetof(struct rmtfs_dev_error_resp, result), 219 .ei_array = rmtfs_qmi_result_ei, 220 }, 221 { 222 .data_type = QMI_OPT_FLAG, 223 .elem_len = 1, 224 .elem_size = sizeof(bool), 225 .tlv_type = 16, 226 .offset = offsetof(struct rmtfs_dev_error_resp, status_valid), 227 }, 228 { 229 .data_type = QMI_UNSIGNED_1_BYTE, 230 .elem_len = 1, 231 .elem_size = sizeof(uint8_t), 232 .tlv_type = 16, 233 .offset = offsetof(struct rmtfs_dev_error_resp, status), 234 }, 235 {} 236 }; 237 238 struct qmi_elem_info rmtfs_force_sync_ei[] = { 239 { 240 .data_type = QMI_DATA_LEN, 241 .elem_len = 1, 242 .elem_size = sizeof(uint8_t), 243 .tlv_type = 1, 244 .offset = offsetof(struct rmtfs_force_sync, caller_id_len), 245 }, 246 { 247 .data_type = QMI_UNSIGNED_1_BYTE, 248 .elem_len = 10, 249 .elem_size = sizeof(uint32_t), 250 .array_type = VAR_LEN_ARRAY, 251 .tlv_type = 1, 252 .offset = offsetof(struct rmtfs_force_sync, caller_id), 253 }, 254 {} 255 }; 256 257