diff options
| author | James <james.mckenzie@citrix.com> | 2012-11-16 20:36:24 +0000 | 
|---|---|---|
| committer | James <james.mckenzie@citrix.com> | 2012-11-16 20:36:24 +0000 | 
| commit | f3965fc28fc79bbf22caf6c452068163e41ef22a (patch) | |
| tree | bf88234f387ffd71a83b52f5091576b3164f04d8 | |
| parent | d68f2690a91e97cc6cf977876f4b013438d09dd3 (diff) | |
| download | grub-1.99-pq-f3965fc28fc79bbf22caf6c452068163e41ef22a.tar.gz grub-1.99-pq-f3965fc28fc79bbf22caf6c452068163e41ef22a.tar.bz2 grub-1.99-pq-f3965fc28fc79bbf22caf6c452068163e41ef22a.zip  | |
fsih
| -rw-r--r-- | master/jmm/efi-sni-bis | 35 | 
1 files 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 <grub/efi/api.h> + #include <grub/efi/efi.h> + #include <grub/efi/disk.h> ++#include <grub/efi/net.h> + #include <grub/command.h> + #include <grub/i18n.h> +  +@@ -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 <grub/time.h>  +  + ++#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++;  | 
