* grub-core/fs/zfs/zfs.c (dmu_read): Use void * for some pointers to
avoid aliasing. (fzap_lookup): Likewise. (dnode_get): Likewise. (make_mdn): Likewise. (zfs_mount): Likewise. (fzap_iterate): Use temporary pointer to avoid aliasing. (grub_zfs_read): Likewise. * grub-core/loader/i386/xnu.c (grub_xnu_boot): Likewise. * grub-core/loader/xnu.c (grub_cmd_xnu_kernel): Use void * for some pointers to avoid aliasing. (grub_cmd_xnu_kernel64): Likewise. (grub_xnu_load_driver): Likewise.
This commit is contained in:
parent
fc836af9a5
commit
e7121b6932
4 changed files with 63 additions and 33 deletions
|
@ -951,10 +951,11 @@ grub_err_t
|
|||
grub_xnu_boot (void)
|
||||
{
|
||||
struct grub_xnu_boot_params *bootparams;
|
||||
void *bp_in;
|
||||
grub_addr_t bootparams_target;
|
||||
grub_err_t err;
|
||||
grub_efi_uintn_t memory_map_size = 0;
|
||||
grub_efi_memory_descriptor_t *memory_map;
|
||||
void *memory_map;
|
||||
grub_addr_t memory_map_target;
|
||||
grub_efi_uintn_t map_key = 0;
|
||||
grub_efi_uintn_t descriptor_size = 0;
|
||||
|
@ -1006,9 +1007,10 @@ grub_xnu_boot (void)
|
|||
|
||||
/* Relocate the boot parameters to heap. */
|
||||
err = grub_xnu_heap_malloc (sizeof (*bootparams),
|
||||
(void **) &bootparams, &bootparams_target);
|
||||
&bp_in, &bootparams_target);
|
||||
if (err)
|
||||
return err;
|
||||
bootparams = bp_in;
|
||||
|
||||
/* Set video. */
|
||||
err = grub_xnu_set_video (bootparams);
|
||||
|
@ -1035,7 +1037,7 @@ grub_xnu_boot (void)
|
|||
memory map growth. */
|
||||
memory_map_size += 20 * descriptor_size;
|
||||
err = grub_xnu_heap_malloc (memory_map_size,
|
||||
(void **) &memory_map, &memory_map_target);
|
||||
&memory_map, &memory_map_target);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
@ -1109,7 +1111,7 @@ grub_xnu_boot (void)
|
|||
grub_xnu_arg1 = bootparams_target;
|
||||
|
||||
grub_autoefi_set_virtual_address_map (memory_map_size, descriptor_size,
|
||||
descriptor_version,memory_map);
|
||||
descriptor_version, memory_map);
|
||||
|
||||
state.eip = grub_xnu_entry_point;
|
||||
state.eax = grub_xnu_arg1;
|
||||
|
|
|
@ -342,7 +342,8 @@ grub_cmd_xnu_kernel (grub_command_t cmd __attribute__ ((unused)),
|
|||
grub_macho_t macho;
|
||||
grub_uint32_t startcode, endcode;
|
||||
int i;
|
||||
char *ptr, *loadaddr;
|
||||
char *ptr;
|
||||
void *loadaddr;
|
||||
grub_addr_t loadaddr_target;
|
||||
|
||||
if (argc < 1)
|
||||
|
@ -375,7 +376,7 @@ grub_cmd_xnu_kernel (grub_command_t cmd __attribute__ ((unused)),
|
|||
if (!grub_xnu_relocator)
|
||||
return grub_errno;
|
||||
grub_xnu_heap_target_start = startcode;
|
||||
err = grub_xnu_heap_malloc (endcode - startcode, (void **) &loadaddr,
|
||||
err = grub_xnu_heap_malloc (endcode - startcode, &loadaddr,
|
||||
&loadaddr_target);
|
||||
|
||||
if (err)
|
||||
|
@ -386,7 +387,8 @@ grub_cmd_xnu_kernel (grub_command_t cmd __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
/* Load kernel. */
|
||||
err = grub_macho_load32 (macho, loadaddr - startcode, GRUB_MACHO_NOBSS);
|
||||
err = grub_macho_load32 (macho, (char *) loadaddr - startcode,
|
||||
GRUB_MACHO_NOBSS);
|
||||
if (err)
|
||||
{
|
||||
grub_macho_close (macho);
|
||||
|
@ -450,7 +452,8 @@ grub_cmd_xnu_kernel64 (grub_command_t cmd __attribute__ ((unused)),
|
|||
grub_macho_t macho;
|
||||
grub_uint64_t startcode, endcode;
|
||||
int i;
|
||||
char *ptr, *loadaddr;
|
||||
char *ptr;
|
||||
void *loadaddr;
|
||||
grub_addr_t loadaddr_target;
|
||||
|
||||
if (argc < 1)
|
||||
|
@ -486,7 +489,7 @@ grub_cmd_xnu_kernel64 (grub_command_t cmd __attribute__ ((unused)),
|
|||
if (!grub_xnu_relocator)
|
||||
return grub_errno;
|
||||
grub_xnu_heap_target_start = startcode;
|
||||
err = grub_xnu_heap_malloc (endcode - startcode, (void **) &loadaddr,
|
||||
err = grub_xnu_heap_malloc (endcode - startcode, &loadaddr,
|
||||
&loadaddr_target);
|
||||
|
||||
if (err)
|
||||
|
@ -497,7 +500,8 @@ grub_cmd_xnu_kernel64 (grub_command_t cmd __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
/* Load kernel. */
|
||||
err = grub_macho_load64 (macho, loadaddr - startcode, GRUB_MACHO_NOBSS);
|
||||
err = grub_macho_load64 (macho, (char *) loadaddr - startcode,
|
||||
GRUB_MACHO_NOBSS);
|
||||
if (err)
|
||||
{
|
||||
grub_macho_close (macho);
|
||||
|
@ -636,7 +640,8 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile)
|
|||
grub_file_t infoplist;
|
||||
struct grub_xnu_extheader *exthead;
|
||||
int neededspace = sizeof (*exthead);
|
||||
grub_uint8_t *buf, *buf0;
|
||||
grub_uint8_t *buf;
|
||||
void *buf0;
|
||||
grub_addr_t buf_target;
|
||||
grub_size_t infoplistsize = 0, machosize = 0;
|
||||
char *name, *nameend;
|
||||
|
@ -692,7 +697,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile)
|
|||
err = grub_xnu_align_heap (GRUB_XNU_PAGESIZE);
|
||||
if (err)
|
||||
return err;
|
||||
err = grub_xnu_heap_malloc (neededspace, (void **) &buf0, &buf_target);
|
||||
err = grub_xnu_heap_malloc (neededspace, &buf0, &buf_target);
|
||||
if (err)
|
||||
return err;
|
||||
buf = buf0;
|
||||
|
@ -704,7 +709,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile)
|
|||
/* Load the binary. */
|
||||
if (macho)
|
||||
{
|
||||
exthead->binaryaddr = buf_target + (buf - buf0);
|
||||
exthead->binaryaddr = buf_target + (buf - (grub_uint8_t *) buf0);
|
||||
exthead->binarysize = machosize;
|
||||
if (grub_xnu_is_64bit)
|
||||
err = grub_macho_readfile64 (macho, buf);
|
||||
|
@ -723,7 +728,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile)
|
|||
/* Load the plist. */
|
||||
if (infoplist)
|
||||
{
|
||||
exthead->infoplistaddr = buf_target + (buf - buf0);
|
||||
exthead->infoplistaddr = buf_target + (buf - (grub_uint8_t *) buf0);
|
||||
exthead->infoplistsize = infoplistsize + 1;
|
||||
if (grub_file_read (infoplist, buf, infoplistsize)
|
||||
!= (grub_ssize_t) (infoplistsize))
|
||||
|
@ -739,7 +744,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile)
|
|||
}
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
|
||||
exthead->nameaddr = (buf - buf0) + buf_target;
|
||||
exthead->nameaddr = (buf - (grub_uint8_t *) buf0) + buf_target;
|
||||
exthead->namesize = namelen + 1;
|
||||
grub_memcpy (buf, name, namelen);
|
||||
buf[namelen] = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue