From f3965fc28fc79bbf22caf6c452068163e41ef22a Mon Sep 17 00:00:00 2001 From: James Date: Fri, 16 Nov 2012 20:36:24 +0000 Subject: fsih --- master/jmm/efi-sni-bis | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/master/jmm/efi-sni-bis b/master/jmm/efi-sni-bis index d63ec90..ed6df12 100644 --- a/master/jmm/efi-sni-bis +++ b/master/jmm/efi-sni-bis @@ -65,10 +65,18 @@ index f73f828..fe6971c 100644 void diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 5dd5ada..0ec088e 100644 +index 5dd5ada..74bbd47 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c -@@ -225,7 +225,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -225,7 +226,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), dp = grub_efi_get_device_path (dev_handle); } @@ -86,10 +94,10 @@ index 5dd5ada..0ec088e 100644 goto fail; diff --git a/grub-core/net/efi/efinet.c b/grub-core/net/efi/efinet.c new file mode 100644 -index 0000000..f26aec1 +index 0000000..1d30655 --- /dev/null +++ b/grub-core/net/efi/efinet.c -@@ -0,0 +1,541 @@ +@@ -0,0 +1,544 @@ +/* efinet.c - EFI network access using SNI. */ +/* + * GRUB -- GRand Unified Bootloader @@ -122,6 +130,8 @@ index 0000000..f26aec1 +#include + + ++#define SNI_DEV_NAME_LEN 10 ++ +static grub_err_t grub_efinet_start (struct grub_net *); + +static grub_ether_addr ether_broadcast = @@ -525,7 +535,7 @@ index 0000000..f26aec1 +grub_efinet_close (struct grub_net *net) +{ + grub_efinet_stop (net); -+ grub_free (net->name); ++ grub_free ((void *) net->name); /*name is const char * */ +} + + @@ -595,35 +605,36 @@ index 0000000..f26aec1 +}; + +grub_efi_handle_t -+grub_net_efinet_get_device_handle(struct grub_net *net) ++grub_efinet_get_device_handle(struct grub_net *net) +{ + struct grub_sni_data *private = (struct grub_sni_data *) net->data; + return private->handle; +} + +void -+grub_net_efinet_init (void) ++grub_efinet_init (void) +{ + enumerate_snis (); + grub_net_dev_register (&sni_net_dev); +} + +void -+grub_net_efinet_fini (void) ++grub_efinet_fini (void) +{ + grub_net_dev_unregister (&sni_net_dev); + free_devices (sni_devices); +} + -+char * grub_net_efinet_get_device_name(grub_efi_handle_t h) ++char * grub_efinet_get_device_name(grub_efi_handle_t *h) +{ + struct grub_sni_data *p; + int i=0; + -+ while (p=get_device(i)) { ++ while ((p=get_device(i))) { + if (p && (p->handle == h)) { -+ char *ret=grub_malloc (10); //FIXME -+ grub_sprintf(ret,"sni%d",i); ++ char *ret=grub_malloc (SNI_DEV_NAME_LEN); ++ grub_snprintf(ret,SNI_DEV_NAME_LEN,"sni%d",i); ++ ret[SNI_DEV_NAME_LEN-1] = 0; + return ret; + } + i++; -- cgit v1.2.3