Lines Matching defs:user_msg
751 static int encode_message(struct qaic_device *qdev, struct manage_msg *user_msg,
762 if (!user_msg->count ||
763 user_msg->len < sizeof(*trans_hdr)) {
779 for (i = 0; i < user_msg->count; ++i) {
780 if (user_len > user_msg->len - sizeof(*trans_hdr)) {
784 trans_hdr = (struct qaic_manage_trans_hdr *)(user_msg->data + user_len);
786 size_add(user_len, trans_hdr->len) > user_msg->len) {
816 if (user_len != user_msg->len)
828 static int decode_passthrough(struct qaic_device *qdev, void *trans, struct manage_msg *user_msg,
835 out_trans = (void *)user_msg->data + user_msg->len;
841 if (user_msg->len + len > QAIC_MANAGE_MAX_MSG_LENGTH)
845 user_msg->len += len;
853 static int decode_activate(struct qaic_device *qdev, void *trans, struct manage_msg *user_msg,
860 out_trans = (void *)user_msg->data + user_msg->len;
863 if (user_msg->len + len > QAIC_MANAGE_MAX_MSG_LENGTH)
866 user_msg->len += len;
929 static int decode_status(struct qaic_device *qdev, void *trans, struct manage_msg *user_msg,
936 out_trans = (void *)user_msg->data + user_msg->len;
939 if (user_msg->len + len > QAIC_MANAGE_MAX_MSG_LENGTH)
949 user_msg->len += len;
959 static int decode_message(struct qaic_device *qdev, struct manage_msg *user_msg,
973 user_msg->len = 0;
974 user_msg->count = le32_to_cpu(msg->hdr.count);
976 for (i = 0; i < user_msg->count; ++i) {
990 ret = decode_passthrough(qdev, trans_hdr, user_msg, &msg_len);
993 ret = decode_activate(qdev, trans_hdr, user_msg, &msg_len, resources, usr);
999 ret = decode_status(qdev, trans_hdr, user_msg, &msg_len, msg);
1174 struct manage_msg *user_msg, struct ioctl_resources *resources,
1197 ret = encode_message(qdev, user_msg, wrappers, resources, usr);
1240 static int qaic_manage(struct qaic_device *qdev, struct qaic_user *usr, struct manage_msg *user_msg)
1251 if (user_msg->len > QAIC_MANAGE_MAX_MSG_LENGTH ||
1252 user_msg->count > QAIC_MANAGE_MAX_MSG_LENGTH / sizeof(struct qaic_manage_trans_hdr))
1256 ret = qaic_manage_msg_xfer(qdev, usr, user_msg, &resources, &rsp);
1276 ret = decode_message(qdev, user_msg, rsp, &resources, usr);
1286 struct qaic_manage_msg *user_msg = data;
1295 if (user_msg->len > QAIC_MANAGE_MAX_MSG_LENGTH)
1321 msg->len = user_msg->len;
1322 msg->count = user_msg->count;
1324 user_data = u64_to_user_ptr(user_msg->data);
1326 if (copy_from_user(msg->data, user_data, user_msg->len)) {
1343 user_msg->len = msg->len;
1344 user_msg->count = msg->count;
1360 struct manage_msg *user_msg;
1363 user_msg = kmalloc(sizeof(*user_msg) + sizeof(*status_result), GFP_KERNEL);
1364 if (!user_msg) {
1368 user_msg->len = sizeof(*status_query);
1369 user_msg->count = 1;
1371 status_query = (struct qaic_manage_trans_status_to_dev *)user_msg->data;
1375 ret = qaic_manage(qdev, usr, user_msg);
1378 status_result = (struct qaic_manage_trans_status_from_dev *)user_msg->data;
1391 kfree(user_msg);