toolchain: xpcg: fix buffer length output not being set
This commit is contained in:
@@ -542,6 +542,11 @@ static int emit_interface_msg_function_send_impl(
|
||||
emit(ctx, ": KERN_HANDLE_INVALID;\n");
|
||||
break;
|
||||
case TYPE_BUFFER:
|
||||
emit(ctx,
|
||||
"*out_%s_len = msg_data.msg_response.%s_len;\n",
|
||||
param->p_name,
|
||||
param->p_name);
|
||||
break;
|
||||
case TYPE_STRING:
|
||||
break;
|
||||
default:
|
||||
@@ -627,13 +632,17 @@ static int emit_interface_msg_function_send(
|
||||
break;
|
||||
case TYPE_STRING:
|
||||
emit(ctx,
|
||||
"char *out_%s,\nsize_t out_%s_max",
|
||||
"char *out_%s,\nsize_t out_%s_max,\nsize_t "
|
||||
"*out_%s_len",
|
||||
param->p_name,
|
||||
param->p_name,
|
||||
param->p_name);
|
||||
break;
|
||||
case TYPE_BUFFER:
|
||||
emit(ctx,
|
||||
"void *out_%s,\nsize_t out_%s_max",
|
||||
"void *out_%s,\nsize_t out_%s_max,\nsize_t "
|
||||
"*out_%s_len",
|
||||
param->p_name,
|
||||
param->p_name,
|
||||
param->p_name);
|
||||
break;
|
||||
@@ -679,7 +688,7 @@ static int emit_interface_dispatcher_impl_msg(
|
||||
msg->msg_name);
|
||||
emit(ctx,
|
||||
"status = xpc_msg_read(msg, 0, &" MSG_STRUCT_NAME
|
||||
", sizeof " MSG_STRUCT_NAME ");\n");
|
||||
", sizeof " MSG_STRUCT_NAME ", NULL);\n");
|
||||
|
||||
fx_queue_entry *entry = fx_queue_first(&msg->msg_params);
|
||||
while (entry) {
|
||||
@@ -836,6 +845,13 @@ static int emit_interface_dispatcher_impl_msg(
|
||||
handle_index);
|
||||
handle_index++;
|
||||
break;
|
||||
case TYPE_BUFFER:
|
||||
emit(ctx,
|
||||
MSG_STRUCT_NAME
|
||||
".msg_response.%s_len = xpc_buffer_length(&%s);\n",
|
||||
param->p_name,
|
||||
param->p_name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user