summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames <james.mckenzie@citrix.com>2012-11-16 20:36:24 +0000
committerJames <james.mckenzie@citrix.com>2012-11-16 20:36:24 +0000
commitf3965fc28fc79bbf22caf6c452068163e41ef22a (patch)
treebf88234f387ffd71a83b52f5091576b3164f04d8
parentd68f2690a91e97cc6cf977876f4b013438d09dd3 (diff)
downloadgrub-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-bis35
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++;