Hi Leon, On 04/01/2015 09:18 AM, Leon Alrae wrote: > Signed-off-by: Leon Alrae <leon.al...@imgtec.com> > --- > Hi, > > Continuing the discussion related to extending QEMU's command line with new > argument allowing to pass semi-hosting input arguments to the guest program: > https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg05960.html > > This simple patch adds "arg" sub-argument which in my opinion is flexible > enough to satisfy semi-hosting interfaces which allocate buffers at runtime > (so it is possible to pass any number of strings of any length) as well as the > ones which have limited buffer for a single input string. > > Highlights: > > * arg can appear multiple times in -semihosting-config group of sub-arguments > and is used to create argc/argv. > > * Single string cmdline can be still easily created: > static void concat_semihosting_args(char *buffer, int buffer_size, > const char *separator) > { > int i; > buffer[0] = '\0'; > for (i = 0; i < semihosting_argc - 1; i++) { > pstrcat(buffer, buffer_size, semihosting_argv[i]); > pstrcat(buffer, buffer_size, separator); > } > pstrcat(buffer, buffer_size, semihosting_argv[i]); > } > > * argv[0] is set by the first occurence of "arg" rather than taking the same > string from "-kernel". This might be required in cases where the path is too > long and semi-hosting app's buffer for the cmdline is fixed and small. > > * No altering the parser itself, just traversing the -semihosting-config opts > and picking all arg strings. > > * This patch doesn't fix the need of using double-commas if user want to have > a comma in the string. > > If we agree on this new option then I would like to follow up with a clean up > where we've got a semi-hosting specific structure rather than keep generating > more semihosting_* variables (I skipped it in this patch to avoid generating > clean up related noise in the diff).
I think the commit message and help text should include some information on how this is different from -append and what the result is of specifying both -append foo=a and -semihosting-config arg=foo=b. Thanks, Chris -- Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project