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 /master | |
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
Diffstat (limited to 'master')
-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++; |