From 4e3de17abf2169f1035acf0a8401da31acdc357b Mon Sep 17 00:00:00 2001 From: Prachi Gupta Date: Tue, 26 Aug 2014 16:31:17 -0500 Subject: Added Hash Function in FapiUtil RTC:114588 Change-Id: Ib9fab786a9a82ad9608f0db0b524c7bdca19788c Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13277 Tested-by: Jenkins Server Reviewed-by: STEPHEN M. CPREK Reviewed-by: Daniel M. Crowell Reviewed-by: A. Patrick Williams III --- src/include/usr/hwpf/fapi/fapiUtil.H | 17 +++++++++++++++-- src/include/usr/hwpf/plat/fapiPlatUtil.H | 17 ++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/include/usr/hwpf/fapi/fapiUtil.H b/src/include/usr/hwpf/fapi/fapiUtil.H index f2f36dee5..470d78fec 100644 --- a/src/include/usr/hwpf/fapi/fapiUtil.H +++ b/src/include/usr/hwpf/fapi/fapiUtil.H @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2014 */ +/* Contributors Listed Below - COPYRIGHT 2011,2014 */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -20,7 +22,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: fapiUtil.H,v 1.20 2014/01/20 22:37:52 mklight Exp $ +// $Id: fapiUtil.H,v 1.21 2014/09/16 14:47:23 pragupta Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/hwpf/working/fapi/fapiUtil.H,v $ /** @@ -50,6 +52,7 @@ * mjjones 09/24/2013 Update fapiLogError to * accept another parameter * dcrowell 10/14/2013 Add explicit inline + * pragupta 09/16/2014 Add fapi gen hash function */ #ifndef FAPIUTIL_H_ @@ -58,6 +61,15 @@ #include #include #include + +namespace fapi +{ + namespace hash + { + enum validHashes { CRC32 }; + } +}; + #include // Defines for endian convertion @@ -80,6 +92,7 @@ #define fapiMalloc(s) fapiPlatMalloc(s) #define fapiFree(p) fapiPlatFree(p) +#define FAPI_GEN_HASH(type, data, size) FAPI_PLAT_GEN_HASH(type,data,size) // It is an eCMD requirement that these functions have a "C" symbol // because they may be used from a dynamically linked shared library extern "C" diff --git a/src/include/usr/hwpf/plat/fapiPlatUtil.H b/src/include/usr/hwpf/plat/fapiPlatUtil.H index 76514fb2f..bdd7549bd 100644 --- a/src/include/usr/hwpf/plat/fapiPlatUtil.H +++ b/src/include/usr/hwpf/plat/fapiPlatUtil.H @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2014 */ +/* Contributors Listed Below - COPYRIGHT 2013,2014 */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -40,6 +42,19 @@ #include #include +#include + +#define FAPI_PLAT_GEN_HASH(type, data, size) fapiPlatGenHash(data,size) + +template uint32_t fapiPlatGenHash + (const void* i_data, size_t i_size); + +template <> inline uint32_t fapiPlatGenHash + (const void* i_data, size_t i_size) +{ + return Util::crc32_calc(i_data, i_size); +} + // defines for endian conversion #define FAPI_PLAT_BE16TOH(x) be16toh(x) -- cgit v1.2.1