efi_loader: size fields in SimpleNetworkProtocol
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 5 Oct 2017 14:36:03 +0000 (16:36 +0200)
committerAlexander Graf <agraf@suse.de>
Mon, 9 Oct 2017 05:00:34 +0000 (07:00 +0200)
The size fields in the Simple Network Protocol are all
UINTN in the UEFI spec. So use size_t.

Provide a function description of the receive function.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
include/efi_api.h
lib/efi_loader/efi_net.c

index 1f349db2462befb96b1b2c04de0d6cfaea63ce60..a9a6494afef44b0a664f207460e423bfdce2c8d4 100644 (file)
@@ -636,11 +636,11 @@ struct efi_simple_network
        efi_status_t (EFIAPI *get_status)(struct efi_simple_network *this,
                        u32 *int_status, void **txbuf);
        efi_status_t (EFIAPI *transmit)(struct efi_simple_network *this,
-                       ulong header_size, ulong buffer_size, void *buffer,
+                       size_t header_size, size_t buffer_size, void *buffer,
                        struct efi_mac_address *src_addr,
                        struct efi_mac_address *dest_addr, u16 *protocol);
        efi_status_t (EFIAPI *receive)(struct efi_simple_network *this,
-                       ulong *header_size, ulong *buffer_size, void *buffer,
+                       size_t *header_size, size_t *buffer_size, void *buffer,
                        struct efi_mac_address *src_addr,
                        struct efi_mac_address *dest_addr, u16 *protocol);
        struct efi_event *wait_for_packet;
index b16463ba1a1dfec7ed8dd78a2bf1bec48245617e..4546b436031d1cdd001d1bd7c72b40f5950dd70e 100644 (file)
@@ -150,12 +150,13 @@ static efi_status_t EFIAPI efi_net_get_status(struct efi_simple_network *this,
 }
 
 static efi_status_t EFIAPI efi_net_transmit(struct efi_simple_network *this,
-               ulong header_size, ulong buffer_size, void *buffer,
+               size_t header_size, size_t buffer_size, void *buffer,
                struct efi_mac_address *src_addr,
                struct efi_mac_address *dest_addr, u16 *protocol)
 {
-       EFI_ENTRY("%p, %lx, %lx, %p, %p, %p, %p", this, header_size,
-                 buffer_size, buffer, src_addr, dest_addr, protocol);
+       EFI_ENTRY("%p, %lu, %lu, %p, %p, %p, %p", this,
+                 (unsigned long)header_size, (unsigned long)buffer_size,
+                 buffer, src_addr, dest_addr, protocol);
 
        efi_timer_check();
 
@@ -183,8 +184,23 @@ static void efi_net_push(void *pkt, int len)
        wait_for_packet->is_signaled = true;
 }
 
+/*
+ * Receive a packet from a network interface.
+ *
+ * This function implements the Receive service of the Simple Network Protocol.
+ * See the UEFI spec for details.
+ *
+ * @this       the instance of the Simple Network Protocol
+ * @header_size        size of the media header
+ * @buffer_size        size of the buffer to receive the packet
+ * @buffer     buffer to receive the packet
+ * @src_addr   source MAC address
+ * @dest_addr  destination MAC address
+ * @protocol   protocol
+ * @return     status code
+ */
 static efi_status_t EFIAPI efi_net_receive(struct efi_simple_network *this,
-               ulong *header_size, ulong *buffer_size, void *buffer,
+               size_t *header_size, size_t *buffer_size, void *buffer,
                struct efi_mac_address *src_addr,
                struct efi_mac_address *dest_addr, u16 *protocol)
 {