From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-x235.google.com (mail-wm0-x235.google.com [IPv6:2a00:1450:400c:c09::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B384781D9C for ; Fri, 28 Oct 2016 08:23:04 -0700 (PDT) Received: by mail-wm0-x235.google.com with SMTP id p190so18065338wmp.1 for ; Fri, 28 Oct 2016 08:23:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=IAHzLp7cxl0peSWSDVRPcDqhT+IaSv9lvPvvyDLMFWw=; b=JTfkyGoGnE7mzdJmeDx/qG24oi7XQpvxBYE5zJEhTTw0HvfMvkhsUYKSSEPUSRLuYC nvl1I+6nrPkTqaAXt7WmxdQs+TCtSHjOUgfS61MIIbR+nppRZFBNbchns1NdSeiHu0i+ wn5lvc40FOTwilCcqm9auq5q3ZLd14s7p+X5U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=IAHzLp7cxl0peSWSDVRPcDqhT+IaSv9lvPvvyDLMFWw=; b=e+Pu2kNs2qeIh2GQLCmY56V44jhew0sjH3Ifwoljlv3QpBw0ylqNg5HNIEjHAXsoJK KBfVtrLyCY9LHvnEOZdgUjX8g+pEGr2sVXRU0/6OsBVJgXu/yrenkGAxKbrFE9/RBvBh S9fnlPt4YKtNRw5brmEJh9pdbzR8hhN4jCKUMgCmEWOENv02n7v1BEC6ChBl2xn26NyF sCnt1SUdn5AO4xrd7owHld8qD9jt77pDkrX0+rdLagoyGA+eSPSkk3RRJuINq1y0kvxb dhKFsW/kM+xayVIs16p7nxfLgdkhZOP4jbGydKS1cF29KKuBWjjhoGDhbmKrtBhsesXf BdYg== X-Gm-Message-State: ABUngvcrOvUzmJ0DBc7zwStJQxK7Gbpp7h/Iz/RcoFonF/HvhSNjspJC6eNQ7g35IOi9+/3z X-Received: by 10.194.78.195 with SMTP id d3mr11754369wjx.96.1477668183482; Fri, 28 Oct 2016 08:23:03 -0700 (PDT) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id n72sm9389045wmd.11.2016.10.28.08.23.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Oct 2016 08:23:02 -0700 (PDT) Date: Fri, 28 Oct 2016 16:23:01 +0100 From: Leif Lindholm To: Ard Biesheuvel Cc: edk2-devel@lists.01.org, lersek@redhat.com Message-ID: <20161028152301.GD1161@bivouac.eciton.net> References: <1477667597-26331-1-git-send-email-ard.biesheuvel@linaro.org> MIME-Version: 1.0 In-Reply-To: <1477667597-26331-1-git-send-email-ard.biesheuvel@linaro.org> User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [PATCH] ArmPlatformPkg/ArmVExpressFastBootDxe: clean up code and comments X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2016 15:23:05 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Oct 28, 2016 at 04:13:17PM +0100, Ard Biesheuvel wrote: > This module contains an implementation of the Android Fastboot Platform > protocol. So follow common Tianocore practice, and duplicate the per-method > comment blocks from the interface definition into the implementation. > > In addition, let's make all methods and the procotol struct STATIC, given > that they are never referenced via external linkage. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm > --- > ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c | 79 ++++++++++++++++++-- > 1 file changed, 74 insertions(+), 5 deletions(-) > > diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c > index 64b25f8a8c45..a01bf3c671ad 100644 > --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c > +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c > @@ -1,6 +1,7 @@ > /** @file > > Copyright (c) 2014, ARM Ltd. All rights reserved.
> + Copyright (c) 2016, Linaro Ltd. All rights reserved.
> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD License > @@ -135,11 +136,13 @@ ReadPartitionEntries ( > > > /* > - Initialise: Open the Android NVM device and find the partitions on it. Save them in > - a list along with the "PartitionName" fields for their GPT entries. > - We will use these partition names as the key in > - ArmFastbootPlatformFlashPartition. > + Do any initialisation that needs to be done in order to be able to respond to > + commands. > + > + @retval EFI_SUCCESS Initialised successfully. > + @retval !EFI_SUCCESS Error in initialisation. > */ > +STATIC > EFI_STATUS > ArmFastbootPlatformInit ( > VOID > @@ -164,6 +167,7 @@ ArmFastbootPlatformInit ( > // > // Get EFI_HANDLES for all the partitions on the block devices pointed to by > // PcdFastbootFlashDevicePath, also saving their GPT partition labels. > + // We will use these labels as the key in ArmFastbootPlatformFlashPartition. > // There's no way to find all of a device's children, so we get every handle > // in the system supporting EFI_BLOCK_IO_PROTOCOL and then filter out ones > // that don't represent partitions on the flash device. > @@ -296,6 +300,11 @@ Exit: > > } > > +/* > + To be called when Fastboot is finished and we aren't rebooting or booting an > + image. Undo initialisation, free resrouces. > +*/ > +STATIC > VOID > ArmFastbootPlatformUnInit ( > VOID > @@ -304,6 +313,18 @@ ArmFastbootPlatformUnInit ( > FreePartitionList (); > } > > +/* > + Flash the partition named (according to a platform-specific scheme) > + PartitionName, with the image pointed to by Buffer, whose size is BufferSize. > + > + @param[in] PartitionName Null-terminated name of partition to write. > + @param[in] BufferSize Size of Buffer in byets. > + @param[in] Buffer Data to write to partition. > + > + @retval EFI_NOT_FOUND No such partition. > + @retval EFI_DEVICE_ERROR Flashing failed. > +*/ > +STATIC > EFI_STATUS > ArmFastbootPlatformFlashPartition ( > IN CHAR8 *PartitionName, > @@ -382,6 +403,15 @@ ArmFastbootPlatformFlashPartition ( > return Status; > } > > +/* > + Erase the partition named PartitionName. > + > + @param[in] PartitionName Null-terminated name of partition to erase. > + > + @retval EFI_NOT_FOUND No such partition. > + @retval EFI_DEVICE_ERROR Erasing failed. > +*/ > +STATIC > EFI_STATUS > ArmFastbootPlatformErasePartition ( > IN CHAR8 *Partition > @@ -390,6 +420,25 @@ ArmFastbootPlatformErasePartition ( > return EFI_SUCCESS; > } > > +/* > + If the variable referred to by Name exists, copy it (as a null-terminated > + string) into Value. If it doesn't exist, put the Empty string in Value. > + > + Variable names and values may not be larger than 60 bytes, excluding the > + terminal null character. This is a limitation of the Fastboot protocol. > + > + The Fastboot application will handle platform-nonspecific variables > + (Currently "version" is the only one of these.) > + > + @param[in] Name Null-terminated name of Fastboot variable to retrieve. > + @param[out] Value Caller-allocated buffer for null-terminated value of > + variable. > + > + @retval EFI_SUCCESS The variable was retrieved, or it doesn't exist. > + @retval EFI_DEVICE_ERROR There was an error looking up the variable. This > + does _not_ include the variable not existing. > +*/ > +STATIC > EFI_STATUS > ArmFastbootPlatformGetVar ( > IN CHAR8 *Name, > @@ -404,6 +453,26 @@ ArmFastbootPlatformGetVar ( > return EFI_SUCCESS; > } > > +/* > + React to an OEM-specific command. > + > + Future versions of this function might want to allow the platform to do some > + extra communication with the host. A way to do this would be to add a function > + to the FASTBOOT_TRANSPORT_PROTOCOL that allows the implementation of > + DoOemCommand to replace the ReceiveEvent with its own, and to restore the old > + one when it's finished. > + > + However at the moment although the specification allows it, the AOSP fastboot > + host application doesn't handle receiving any data from the client, and it > + doesn't support a data phase for OEM commands. > + > + @param[in] Command Null-terminated command string. > + > + @retval EFI_SUCCESS The command executed successfully. > + @retval EFI_NOT_FOUND The command wasn't recognised. > + @retval EFI_DEVICE_ERROR There was an error executing the command. > +*/ > +STATIC > EFI_STATUS > ArmFastbootPlatformOemCommand ( > IN CHAR8 *Command > @@ -425,7 +494,7 @@ ArmFastbootPlatformOemCommand ( > } > } > > -FASTBOOT_PLATFORM_PROTOCOL mPlatformProtocol = { > +STATIC FASTBOOT_PLATFORM_PROTOCOL mPlatformProtocol = { > ArmFastbootPlatformInit, > ArmFastbootPlatformUnInit, > ArmFastbootPlatformFlashPartition, > -- > 2.7.4 >