mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-31 19:41:46 +00:00
efi_loader: efi_net: use efi_add_protocol
Use efi_add_protocol to add protocols. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
4b9f7aaf7c
commit
84d14568ca
1 changed files with 20 additions and 14 deletions
|
@ -292,20 +292,26 @@ int efi_net_register(void)
|
||||||
|
|
||||||
/* We only expose the "active" eth device, so one is enough */
|
/* We only expose the "active" eth device, so one is enough */
|
||||||
netobj = calloc(1, sizeof(*netobj));
|
netobj = calloc(1, sizeof(*netobj));
|
||||||
if (!netobj) {
|
if (!netobj)
|
||||||
printf("ERROR: Out of memory\n");
|
goto out_of_memory;
|
||||||
return 1;
|
|
||||||
}
|
/* Hook net up to the device list */
|
||||||
|
list_add_tail(&netobj->parent.link, &efi_obj_list);
|
||||||
|
|
||||||
/* Fill in object data */
|
/* Fill in object data */
|
||||||
netobj->parent.protocols[0].guid = &efi_net_guid;
|
|
||||||
netobj->parent.protocols[0].protocol_interface = &netobj->net;
|
|
||||||
netobj->parent.protocols[1].guid = &efi_guid_device_path;
|
|
||||||
netobj->parent.protocols[1].protocol_interface =
|
|
||||||
efi_dp_from_eth();
|
|
||||||
netobj->parent.protocols[2].guid = &efi_pxe_guid;
|
|
||||||
netobj->parent.protocols[2].protocol_interface = &netobj->pxe;
|
|
||||||
netobj->parent.handle = &netobj->net;
|
netobj->parent.handle = &netobj->net;
|
||||||
|
r = efi_add_protocol(netobj->parent.handle, &efi_net_guid,
|
||||||
|
&netobj->net);
|
||||||
|
if (r != EFI_SUCCESS)
|
||||||
|
goto out_of_memory;
|
||||||
|
r = efi_add_protocol(netobj->parent.handle, &efi_guid_device_path,
|
||||||
|
efi_dp_from_eth());
|
||||||
|
if (r != EFI_SUCCESS)
|
||||||
|
goto out_of_memory;
|
||||||
|
r = efi_add_protocol(netobj->parent.handle, &efi_pxe_guid,
|
||||||
|
&netobj->pxe);
|
||||||
|
if (r != EFI_SUCCESS)
|
||||||
|
goto out_of_memory;
|
||||||
netobj->net.revision = EFI_SIMPLE_NETWORK_PROTOCOL_REVISION;
|
netobj->net.revision = EFI_SIMPLE_NETWORK_PROTOCOL_REVISION;
|
||||||
netobj->net.start = efi_net_start;
|
netobj->net.start = efi_net_start;
|
||||||
netobj->net.stop = efi_net_stop;
|
netobj->net.stop = efi_net_stop;
|
||||||
|
@ -330,9 +336,6 @@ int efi_net_register(void)
|
||||||
if (dhcp_ack)
|
if (dhcp_ack)
|
||||||
netobj->pxe_mode.dhcp_ack = *dhcp_ack;
|
netobj->pxe_mode.dhcp_ack = *dhcp_ack;
|
||||||
|
|
||||||
/* Hook net up to the device list */
|
|
||||||
list_add_tail(&netobj->parent.link, &efi_obj_list);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create WaitForPacket event.
|
* Create WaitForPacket event.
|
||||||
*/
|
*/
|
||||||
|
@ -365,4 +368,7 @@ int efi_net_register(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
out_of_memory:
|
||||||
|
printf("ERROR: Out of memory\n");
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue