|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-xen-4.5 v3 05/16] x86/efi: Add place_string_u32() function
On 08/10/14 18:52, Daniel Kiper wrote:
> Add place_string_u32() function and rename place_string()
> to place_string_char().
Why? You need some description of their intended purpose.
~Andrew
>
> Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx>
> ---
> xen/arch/x86/efi/efi-boot.h | 29 +++++++++++++++++++----------
> 1 file changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 4348cfe..71030b0 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -103,14 +103,14 @@ static void __init relocate_trampoline(unsigned long
> phys)
> *(u16 *)(*trampoline_ptr + (long)trampoline_ptr) = phys >> 4;
> }
>
> -static void __init place_string(u32 *addr, const char *s)
> +static void __init place_string_char(char **addr, const char *s)
> {
> static char *__initdata alloc = start;
>
> if ( s && *s )
> {
> size_t len1 = strlen(s) + 1;
> - const char *old = (char *)(long)*addr;
> + const char *old = *addr;
> size_t len2 = *addr ? strlen(old) + 1 : 0;
>
> alloc -= len1 + len2;
> @@ -126,7 +126,16 @@ static void __init place_string(u32 *addr, const char *s)
> memcpy(alloc + len1, old, len2);
> }
> }
> - *addr = (long)alloc;
> + *addr = alloc;
> +}
> +
> +static void __init place_string_u32(u32 *addr, const char *s)
> +{
> + char *s_new = (char *)(long)*addr;
> +
> + place_string_char(&s_new, s);
> +
> + *addr = (long)s_new;
> }
>
> static void __init efi_arch_process_memory_map(EFI_SYSTEM_TABLE *SystemTable,
> @@ -192,7 +201,7 @@ static void __init
> efi_arch_process_memory_map(EFI_SYSTEM_TABLE *SystemTable,
>
> static void *__init efi_arch_allocate_mmap_buffer(UINTN map_size)
> {
> - place_string(&mbi.mem_upper, NULL);
> + place_string_u32(&mbi.mem_upper, NULL);
> mbi.mem_upper -= map_size;
> mbi.mem_upper &= -__alignof__(EFI_MEMORY_DESCRIPTOR);
> if ( mbi.mem_upper < xen_phys_start )
> @@ -280,10 +289,10 @@ static void __init efi_arch_handle_cmdline(CHAR16
> *image_name,
> {
> name.w = cmdline_options;
> w2s(&name);
> - place_string(&mbi.cmdline, name.s);
> + place_string_u32(&mbi.cmdline, name.s);
> }
> if ( cfgfile_options )
> - place_string(&mbi.cmdline, cfgfile_options);
> + place_string_u32(&mbi.cmdline, cfgfile_options);
> /* Insert image name last, as it gets prefixed to the other options. */
> if ( image_name )
> {
> @@ -292,7 +301,7 @@ static void __init efi_arch_handle_cmdline(CHAR16
> *image_name,
> }
> else
> name.s = "xen";
> - place_string(&mbi.cmdline, name.s);
> + place_string_u32(&mbi.cmdline, name.s);
>
> if ( mbi.cmdline )
> mbi.flags |= MBI_CMDLINE;
> @@ -587,12 +596,12 @@ static void __init efi_arch_handle_module(struct file
> *file, const CHAR16 *name,
> /*
> * If options are provided, put them in
> * mb_modules[mbi.mods_count].string after the filename, with a space
> - * separating them. place_string() prepends strings and adds separating
> + * separating them. place_string_u32() prepends strings and adds
> separating
> * spaces, so the call order is reversed.
> */
> if ( options )
> - place_string(&mb_modules[mbi.mods_count].string, options);
> - place_string(&mb_modules[mbi.mods_count].string, local_name.s);
> + place_string_u32(&mb_modules[mbi.mods_count].string, options);
> + place_string_u32(&mb_modules[mbi.mods_count].string, local_name.s);
> mb_modules[mbi.mods_count].mod_start = file->addr >> PAGE_SHIFT;
> mb_modules[mbi.mods_count].mod_end = file->size;
> ++mbi.mods_count;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |