From nobody Sat May 4 05:33:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1619000514; cv=none; d=zohomail.com; s=zohoarc; b=B8yV7zOd6PoY+aG7Te8MeSIi3f0+h9b1OpGz3AkfiJPDPepKiCz4IWrVD4G3uimDi3sX5iTqdo1ckLlcgjy13XUlEwVHgCcK2ji0f4rKMLq3ry/EEJU0znJD7kFyaeN/8JWjPw4ztXfd19zDHDhuz8VaTG375k/e3lfFFBCZBCM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619000514; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Xe2q4/SCTe+uRSIGmPmyzYGgAB78zUweD/q9Y62y1Cg=; b=ib2y24eY5vl/BmSOLfj6HBLcsfO9TKueimQIoqKDc+GdA1lxpZA8xvMFvvum94a7lER+7FfpvzzzA77f/WrcaaAzXDAoC/7B9eeZ/nUxwbR14TR/bkiirbL833Ux6qVHnfaxVG1iqqe0Cm3i8oefUKkbHCnPMTISdm3j/xtg1CQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619000514463636.297377671634; Wed, 21 Apr 2021 03:21:54 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.114341.217904 (Exim 4.92) (envelope-from ) id 1lZ9zD-0008Sv-Ss; Wed, 21 Apr 2021 10:21:35 +0000 Received: by outflank-mailman (output) from mailman id 114341.217904; Wed, 21 Apr 2021 10:21:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZ9zD-0008Sn-NS; Wed, 21 Apr 2021 10:21:35 +0000 Received: by outflank-mailman (input) for mailman id 114341; Wed, 21 Apr 2021 10:21:33 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZ9zB-0008SH-MY for xen-devel@lists.xenproject.org; Wed, 21 Apr 2021 10:21:33 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 25a0931d-06bf-4520-a188-dc9615477e50; Wed, 21 Apr 2021 10:21:30 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 48F05B2DC; Wed, 21 Apr 2021 10:21:29 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 25a0931d-06bf-4520-a188-dc9615477e50 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1619000489; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Xe2q4/SCTe+uRSIGmPmyzYGgAB78zUweD/q9Y62y1Cg=; b=d/bOR2uFJrGWDxEc+URgUPqQ/SwO7Ame7dMSK5LdYmM3F88GjpEubFqg2LfFpO5BnY8rds fwhzEpT/QgpL9EZganzEYl+QkGUEhpfT0TkwEPhl/+xXUi9X7cYRZDcy6ZfQG4w4y8pBSq yvCQrNVlt0biHw0FQKWyTOf1d/dlkJ0= Subject: [PATCH v4 1/3] unzstd: replace INIT and STATIC From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com> Message-ID: <0e70ff46-5969-6d9e-58e1-a7338ccdcbf2@suse.com> Date: Wed, 21 Apr 2021 12:21:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" With xen/common/decompress.h now agreeing in both build modes about what STATIC expands to, there's no need for these abstractions anymore. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Julien Grall --- v4: Minor wording adjustment to description. v3: New. --- a/xen/common/unzstd.c +++ b/xen/common/unzstd.c @@ -71,7 +71,7 @@ */ #define ZSTD_IOBUF_SIZE (1 << 17) =20 -static int INIT handle_zstd_error(size_t ret, void (*error)(const char *x)) +static int __init handle_zstd_error(size_t ret, void (*error)(const char *= x)) { const int err =3D ZSTD_getErrorCode(ret); =20 @@ -102,9 +102,9 @@ static int INIT handle_zstd_error(size_t * We can allocate less memory (no circular buffer for the sliding window), * and avoid some memcpy() calls. */ -static int INIT decompress_single(const u8 *in_buf, long in_len, u8 *out_b= uf, - long out_len, unsigned int *in_pos, - void (*error)(const char *x)) +static int __init decompress_single(const u8 *in_buf, long in_len, u8 *out= _buf, + long out_len, unsigned int *in_pos, + void (*error)(const char *x)) { const size_t wksp_size =3D ZSTD_DCtxWorkspaceBound(); void *wksp =3D large_malloc(wksp_size); @@ -142,11 +142,11 @@ out: return err; } =20 -int INIT unzstd(unsigned char *in_buf, unsigned int in_len, - int (*fill)(void*, unsigned int), - int (*flush)(void*, unsigned int), - unsigned char *out_buf, unsigned int *in_pos, - void (*error)(const char *x)) +int __init unzstd(unsigned char *in_buf, unsigned int in_len, + int (*fill)(void*, unsigned int), + int (*flush)(void*, unsigned int), + unsigned char *out_buf, unsigned int *in_pos, + void (*error)(const char *x)) { ZSTD_inBuffer in; ZSTD_outBuffer out; --- a/xen/common/zstd/decompress.c +++ b/xen/common/zstd/decompress.c @@ -46,7 +46,7 @@ /*_******************************************************* * Memory operations **********************************************************/ -static void INIT ZSTD_copy4(void *dst, const void *src) { memcpy(dst, src,= 4); } +static void __init ZSTD_copy4(void *dst, const void *src) { memcpy(dst, sr= c, 4); } =20 /*-************************************************************* * Context management @@ -98,12 +98,12 @@ struct ZSTD_DCtx_s { BYTE headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX]; }; /* typedef'd to ZSTD_DCtx within "zstd.h" */ =20 -STATIC size_t INIT ZSTD_DCtxWorkspaceBound(void) +static size_t __init ZSTD_DCtxWorkspaceBound(void) { return ZSTD_ALIGN(sizeof(ZSTD_stack)) + ZSTD_ALIGN(sizeof(ZSTD_DCtx)); } =20 -STATIC size_t INIT ZSTD_decompressBegin(ZSTD_DCtx *dctx) +static size_t __init ZSTD_decompressBegin(ZSTD_DCtx *dctx) { dctx->expected =3D ZSTD_frameHeaderSize_prefix; dctx->stage =3D ZSTDds_getFrameHeaderSize; @@ -123,7 +123,7 @@ STATIC size_t INIT ZSTD_decompressBegin( return 0; } =20 -STATIC ZSTD_DCtx *INIT ZSTD_createDCtx_advanced(ZSTD_customMem customMem) +static ZSTD_DCtx *__init ZSTD_createDCtx_advanced(ZSTD_customMem customMem) { ZSTD_DCtx *dctx; =20 @@ -138,13 +138,13 @@ STATIC ZSTD_DCtx *INIT ZSTD_createDCtx_a return dctx; } =20 -STATIC ZSTD_DCtx *INIT ZSTD_initDCtx(void *workspace, size_t workspaceSize) +static ZSTD_DCtx *__init ZSTD_initDCtx(void *workspace, size_t workspaceSi= ze) { ZSTD_customMem const stackMem =3D ZSTD_initStack(workspace, workspaceSize= ); return ZSTD_createDCtx_advanced(stackMem); } =20 -size_t INIT ZSTD_freeDCtx(ZSTD_DCtx *dctx) +size_t __init ZSTD_freeDCtx(ZSTD_DCtx *dctx) { if (dctx =3D=3D NULL) return 0; /* support free on NULL */ @@ -153,15 +153,15 @@ size_t INIT ZSTD_freeDCtx(ZSTD_DCtx *dct } =20 #ifdef BUILD_DEAD_CODE -void INIT ZSTD_copyDCtx(ZSTD_DCtx *dstDCtx, const ZSTD_DCtx *srcDCtx) +void __init ZSTD_copyDCtx(ZSTD_DCtx *dstDCtx, const ZSTD_DCtx *srcDCtx) { size_t const workSpaceSize =3D (ZSTD_BLOCKSIZE_ABSOLUTEMAX + WILDCOPY_OVE= RLENGTH) + ZSTD_frameHeaderSize_max; memcpy(dstDCtx, srcDCtx, sizeof(ZSTD_DCtx) - workSpaceSize); /* no need t= o copy workspace */ } #endif =20 -STATIC size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize= ); -STATIC size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx *dctx, const void *= dict, +static size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize= ); +static size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx *dctx, const void *= dict, size_t dictSize); =20 static void ZSTD_refDDict(ZSTD_DCtx *dstDCtx, const ZSTD_DDict *ddict); @@ -176,7 +176,7 @@ static void ZSTD_refDDict(ZSTD_DCtx *dst * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always= be 0. * Note 2 : Legacy Frame Identifiers are considered valid only if Legacy = Support is enabled. * Note 3 : Skippable Frame Identifiers are considered valid. */ -unsigned INIT ZSTD_isFrame(const void *buffer, size_t size) +unsigned __init ZSTD_isFrame(const void *buffer, size_t size) { if (size < 4) return 0; @@ -194,7 +194,7 @@ unsigned INIT ZSTD_isFrame(const void *b /** ZSTD_frameHeaderSize() : * srcSize must be >=3D ZSTD_frameHeaderSize_prefix. * @return : size of the Frame Header */ -static size_t INIT ZSTD_frameHeaderSize(const void *src, size_t srcSize) +static size_t __init ZSTD_frameHeaderSize(const void *src, size_t srcSize) { if (srcSize < ZSTD_frameHeaderSize_prefix) return ERROR(srcSize_wrong); @@ -212,7 +212,7 @@ static size_t INIT ZSTD_frameHeaderSize( * @return : 0, `fparamsPtr` is correctly filled, * >0, `srcSize` is too small, result is expected `srcSize`, * or an error code, which can be tested using ZSTD_isError() */ -STATIC size_t INIT ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const= void *src, size_t srcSize) +static size_t __init ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, con= st void *src, size_t srcSize) { const BYTE *ip =3D (const BYTE *)src; =20 @@ -303,7 +303,7 @@ STATIC size_t INIT ZSTD_getFrameParams(Z * @return : decompressed size of the single frame pointed to be `src` if= known, otherwise * - ZSTD_CONTENTSIZE_UNKNOWN if the size cannot be determined * - ZSTD_CONTENTSIZE_ERROR if an error occurred (e.g. invalid = magic number, srcSize too small) */ -unsigned long long INIT ZSTD_getFrameContentSize(const void *src, size_t s= rcSize) +unsigned long long __init ZSTD_getFrameContentSize(const void *src, size_t= srcSize) { { ZSTD_frameParams fParams; @@ -325,7 +325,7 @@ unsigned long long INIT ZSTD_getFrameCon * `srcSize` must be the exact length of some number of ZSTD compressed a= nd/or * skippable frames * @return : decompressed size of the frames contained */ -unsigned long long INIT ZSTD_findDecompressedSize(const void *src, size_t = srcSize) +unsigned long long __init ZSTD_findDecompressedSize(const void *src, size_= t srcSize) { { unsigned long long totalDstSize =3D 0; @@ -379,7 +379,7 @@ unsigned long long INIT ZSTD_findDecompr /** ZSTD_decodeFrameHeader() : * `headerSize` must be the size provided by ZSTD_frameHeaderSize(). * @return : 0 if success, or an error code, which can be tested using ZS= TD_isError() */ -static size_t INIT ZSTD_decodeFrameHeader(ZSTD_DCtx *dctx, const void *src= , size_t headerSize) +static size_t __init ZSTD_decodeFrameHeader(ZSTD_DCtx *dctx, const void *s= rc, size_t headerSize) { size_t const result =3D ZSTD_getFrameParams(&(dctx->fParams), src, header= Size); if (ZSTD_isError(result)) @@ -401,7 +401,7 @@ typedef struct { =20 /*! ZSTD_getcBlockSize() : * Provides the size of compressed block from block header `src` */ -STATIC size_t INIT ZSTD_getcBlockSize(const void *src, size_t srcSize, blo= ckProperties_t *bpPtr) +static size_t __init ZSTD_getcBlockSize(const void *src, size_t srcSize, b= lockProperties_t *bpPtr) { if (srcSize < ZSTD_blockHeaderSize) return ERROR(srcSize_wrong); @@ -419,7 +419,7 @@ STATIC size_t INIT ZSTD_getcBlockSize(co } } =20 -static size_t INIT ZSTD_copyRawBlock(void *dst, size_t dstCapacity, const = void *src, size_t srcSize) +static size_t __init ZSTD_copyRawBlock(void *dst, size_t dstCapacity, cons= t void *src, size_t srcSize) { if (srcSize > dstCapacity) return ERROR(dstSize_tooSmall); @@ -427,7 +427,7 @@ static size_t INIT ZSTD_copyRawBlock(voi return srcSize; } =20 -static size_t INIT ZSTD_setRleBlock(void *dst, size_t dstCapacity, const v= oid *src, size_t srcSize, size_t regenSize) +static size_t __init ZSTD_setRleBlock(void *dst, size_t dstCapacity, const= void *src, size_t srcSize, size_t regenSize) { if (srcSize !=3D 1) return ERROR(srcSize_wrong); @@ -439,7 +439,7 @@ static size_t INIT ZSTD_setRleBlock(void =20 /*! ZSTD_decodeLiteralsBlock() : @return : nb of bytes read from src (< srcSize ) */ -STATIC size_t INIT ZSTD_decodeLiteralsBlock(ZSTD_DCtx *dctx, const void *s= rc, size_t srcSize) /* note : srcSize < BLOCKSIZE */ +static size_t __init ZSTD_decodeLiteralsBlock(ZSTD_DCtx *dctx, const void = *src, size_t srcSize) /* note : srcSize < BLOCKSIZE */ { if (srcSize < MIN_CBLOCK_SIZE) return ERROR(corruption_detected); @@ -759,10 +759,10 @@ static const FSE_decode_t4 OF_defaultDTa @return : nb bytes read from src, or an error code if it fails, testable with ZSTD_isError() */ -static size_t INIT ZSTD_buildSeqTable(FSE_DTable *DTableSpace, const FSE_D= Table **DTablePtr, - symbolEncodingType_e type, U32 max, U32 maxLog, const void *src, - size_t srcSize, const FSE_decode_t4 *defaultTable, - U32 flagRepeatTable, void *workspace, size_t workspaceSize) +static size_t __init ZSTD_buildSeqTable(FSE_DTable *DTableSpace, const FSE= _DTable **DTablePtr, + symbolEncodingType_e type, U32 max, U32 maxLog, const void *src, + size_t srcSize, const FSE_decode_t4 *defaultTable, + U32 flagRepeatTable, void *workspace, size_t workspaceSize) { const void *const tmpPtr =3D defaultTable; /* bypass strict aliasing */ switch (type) { @@ -803,7 +803,7 @@ static size_t INIT ZSTD_buildSeqTable(FS } } =20 -STATIC size_t INIT ZSTD_decodeSeqHeaders(ZSTD_DCtx *dctx, int *nbSeqPtr, c= onst void *src, size_t srcSize) +static size_t __init ZSTD_decodeSeqHeaders(ZSTD_DCtx *dctx, int *nbSeqPtr,= const void *src, size_t srcSize) { const BYTE *const istart =3D (const BYTE *const)src; const BYTE *const iend =3D istart + srcSize; @@ -940,7 +940,7 @@ size_t ZSTD_execSequenceLast7(BYTE *op, return sequenceLength; } =20 -static seq_t INIT ZSTD_decodeSequence(seqState_t *seqState) +static seq_t __init ZSTD_decodeSequence(seqState_t *seqState) { seq_t seq; =20 @@ -1102,7 +1102,7 @@ size_t ZSTD_execSequence(BYTE *op, BYTE return sequenceLength; } =20 -static size_t INIT ZSTD_decompressSequences(ZSTD_DCtx *dctx, void *dst, si= ze_t maxDstSize, const void *seqStart, size_t seqSize) +static size_t __init ZSTD_decompressSequences(ZSTD_DCtx *dctx, void *dst, = size_t maxDstSize, const void *seqStart, size_t seqSize) { const BYTE *ip =3D (const BYTE *)seqStart; const BYTE *const iend =3D ip + seqSize; @@ -1262,7 +1262,7 @@ FORCE_INLINE seq_t ZSTD_decodeSequenceLo return seq; } =20 -static seq_t INIT ZSTD_decodeSequenceLong(seqState_t *seqState, unsigned c= onst windowSize) +static seq_t __init ZSTD_decodeSequenceLong(seqState_t *seqState, unsigned= const windowSize) { if (ZSTD_highbit32(windowSize) > STREAM_ACCUMULATOR_MIN) { return ZSTD_decodeSequenceLong_generic(seqState, 1); @@ -1272,9 +1272,9 @@ static seq_t INIT ZSTD_decodeSequenceLon } =20 FORCE_INLINE -size_t INIT ZSTD_execSequenceLong(BYTE *op, BYTE *const oend, seq_t sequen= ce, const BYTE **litPtr, - const BYTE *const litLimit, const BYTE *const base, - const BYTE *const vBase, const BYTE *const dictEnd) +size_t __init ZSTD_execSequenceLong(BYTE *op, BYTE *const oend, seq_t sequ= ence, const BYTE **litPtr, + const BYTE *const litLimit, const BYTE *const base, + const BYTE *const vBase, const BYTE *const dictEnd) { BYTE *const oLitEnd =3D op + sequence.litLength; size_t const sequenceLength =3D sequence.litLength + sequence.matchLength; @@ -1358,7 +1358,7 @@ size_t INIT ZSTD_execSequenceLong(BYTE * return sequenceLength; } =20 -static size_t INIT ZSTD_decompressSequencesLong(ZSTD_DCtx *dctx, void *dst= , size_t maxDstSize, const void *seqStart, size_t seqSize) +static size_t __init ZSTD_decompressSequencesLong(ZSTD_DCtx *dctx, void *d= st, size_t maxDstSize, const void *seqStart, size_t seqSize) { const BYTE *ip =3D (const BYTE *)seqStart; const BYTE *const iend =3D ip + seqSize; @@ -1455,7 +1455,7 @@ static size_t INIT ZSTD_decompressSequen return op - ostart; } =20 -static size_t INIT ZSTD_decompressBlock_internal(ZSTD_DCtx *dctx, void *ds= t, size_t dstCapacity, const void *src, size_t srcSize) +static size_t __init ZSTD_decompressBlock_internal(ZSTD_DCtx *dctx, void *= dst, size_t dstCapacity, const void *src, size_t srcSize) { /* blockType =3D=3D blockCompressed */ const BYTE *ip =3D (const BYTE *)src; =20 @@ -1479,7 +1479,7 @@ static size_t INIT ZSTD_decompressBlock_ return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize); } =20 -static void INIT ZSTD_checkContinuity(ZSTD_DCtx *dctx, const void *dst) +static void __init ZSTD_checkContinuity(ZSTD_DCtx *dctx, const void *dst) { if (dst !=3D dctx->previousDstEnd) { /* not contiguous */ dctx->dictEnd =3D dctx->previousDstEnd; @@ -1490,7 +1490,7 @@ static void INIT ZSTD_checkContinuity(ZS } =20 #ifdef BUILD_DEAD_CODE -size_t INIT ZSTD_decompressBlock(ZSTD_DCtx *dctx, void *dst, size_t dstCap= acity, const void *src, size_t srcSize) +size_t __init ZSTD_decompressBlock(ZSTD_DCtx *dctx, void *dst, size_t dstC= apacity, const void *src, size_t srcSize) { size_t dSize; ZSTD_checkContinuity(dctx, dst); @@ -1501,7 +1501,7 @@ size_t INIT ZSTD_decompressBlock(ZSTD_DC =20 /** ZSTD_insertBlock() : insert `src` block into `dctx` history. Useful to track uncompressed bloc= ks. */ -size_t INIT ZSTD_insertBlock(ZSTD_DCtx *dctx, const void *blockStart, size= _t blockSize) +size_t __init ZSTD_insertBlock(ZSTD_DCtx *dctx, const void *blockStart, si= ze_t blockSize) { ZSTD_checkContinuity(dctx, blockStart); dctx->previousDstEnd =3D (const char *)blockStart + blockSize; @@ -1509,7 +1509,7 @@ size_t INIT ZSTD_insertBlock(ZSTD_DCtx * } #endif /* BUILD_DEAD_CODE */ =20 -STATIC size_t INIT ZSTD_generateNxBytes(void *dst, size_t dstCapacity, BYT= E byte, size_t length) +static size_t __init ZSTD_generateNxBytes(void *dst, size_t dstCapacity, B= YTE byte, size_t length) { if (length > dstCapacity) return ERROR(dstSize_tooSmall); @@ -1522,7 +1522,7 @@ STATIC size_t INIT ZSTD_generateNxBytes( * `src` must point to the start of a ZSTD frame, ZSTD legacy frame, or s= kippable frame * `srcSize` must be at least as large as the frame contained * @return : the compressed size of the frame starting at `src` */ -STATIC size_t INIT ZSTD_findFrameCompressedSize(const void *src, size_t sr= cSize) +static size_t __init ZSTD_findFrameCompressedSize(const void *src, size_t = srcSize) { if (srcSize >=3D ZSTD_skippableHeaderSize && (ZSTD_readLE32(src) & 0xFFFF= FFF0U) =3D=3D ZSTD_MAGIC_SKIPPABLE_START) { return ZSTD_skippableHeaderSize + ZSTD_readLE32((const BYTE *)src + 4); @@ -1578,7 +1578,7 @@ STATIC size_t INIT ZSTD_findFrameCompres =20 /*! ZSTD_decompressFrame() : * @dctx must be properly initialized */ -static size_t INIT ZSTD_decompressFrame(ZSTD_DCtx *dctx, void *dst, size_t= dstCapacity, const void **srcPtr, size_t *srcSizePtr) +static size_t __init ZSTD_decompressFrame(ZSTD_DCtx *dctx, void *dst, size= _t dstCapacity, const void **srcPtr, size_t *srcSizePtr) { const BYTE *ip =3D (const BYTE *)(*srcPtr); BYTE *const ostart =3D (BYTE * const)dst; @@ -1655,7 +1655,7 @@ static size_t INIT ZSTD_decompressFrame( static const void *ZSTD_DDictDictContent(const ZSTD_DDict *ddict); static size_t ZSTD_DDictDictSize(const ZSTD_DDict *ddict); =20 -static size_t INIT ZSTD_decompressMultiFrame(ZSTD_DCtx *dctx, void *dst, s= ize_t dstCapacity, const void *src, size_t srcSize, const void *dict, size_= t dictSize, +static size_t __init ZSTD_decompressMultiFrame(ZSTD_DCtx *dctx, void *dst,= size_t dstCapacity, const void *src, size_t srcSize, const void *dict, siz= e_t dictSize, const ZSTD_DDict *ddict) { void *const dststart =3D dst; @@ -1719,12 +1719,12 @@ static size_t INIT ZSTD_decompressMultiF return (BYTE *)dst - (BYTE *)dststart; } =20 -STATIC size_t INIT ZSTD_decompress_usingDict(ZSTD_DCtx *dctx, void *dst, s= ize_t dstCapacity, const void *src, size_t srcSize, const void *dict, size_= t dictSize) +static size_t __init ZSTD_decompress_usingDict(ZSTD_DCtx *dctx, void *dst,= size_t dstCapacity, const void *src, size_t srcSize, const void *dict, siz= e_t dictSize) { return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, di= ct, dictSize, NULL); } =20 -STATIC size_t INIT ZSTD_decompressDCtx(ZSTD_DCtx *dctx, void *dst, size_t = dstCapacity, const void *src, size_t srcSize) +static size_t __init ZSTD_decompressDCtx(ZSTD_DCtx *dctx, void *dst, size_= t dstCapacity, const void *src, size_t srcSize) { return ZSTD_decompress_usingDict(dctx, dst, dstCapacity, src, srcSize, NU= LL, 0); } @@ -1733,12 +1733,12 @@ STATIC size_t INIT ZSTD_decompressDCtx(Z * Advanced Streaming Decompression API * Bufferless and synchronous ****************************************/ -STATIC size_t INIT ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx *dctx) +static size_t __init ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx *dctx) { return dctx->expected; } =20 -STATIC ZSTD_nextInputType_e INIT ZSTD_nextInputType(ZSTD_DCtx *dctx) +static ZSTD_nextInputType_e __init ZSTD_nextInputType(ZSTD_DCtx *dctx) { switch (dctx->stage) { default: /* should not happen */ @@ -1753,12 +1753,12 @@ STATIC ZSTD_nextInputType_e INIT ZSTD_ne } } =20 -int INIT ZSTD_isSkipFrame(ZSTD_DCtx *dctx) { return dctx->stage =3D=3D ZST= Dds_skipFrame; } /* for zbuff */ +int __init ZSTD_isSkipFrame(ZSTD_DCtx *dctx) { return dctx->stage =3D=3D Z= STDds_skipFrame; } /* for zbuff */ =20 /** ZSTD_decompressContinue() : * @return : nb of bytes generated into `dst` (necessarily <=3D `dstCapac= ity) * or an error code, which can be tested using ZSTD_isError() */ -STATIC size_t INIT ZSTD_decompressContinue(ZSTD_DCtx *dctx, void *dst, siz= e_t dstCapacity, const void *src, size_t srcSize) +static size_t __init ZSTD_decompressContinue(ZSTD_DCtx *dctx, void *dst, s= ize_t dstCapacity, const void *src, size_t srcSize) { /* Sanity check */ if (srcSize !=3D dctx->expected) @@ -1877,7 +1877,7 @@ STATIC size_t INIT ZSTD_decompressContin } } =20 -static size_t INIT ZSTD_refDictContent(ZSTD_DCtx *dctx, const void *dict, = size_t dictSize) +static size_t __init ZSTD_refDictContent(ZSTD_DCtx *dctx, const void *dict= , size_t dictSize) { dctx->dictEnd =3D dctx->previousDstEnd; dctx->vBase =3D (const char *)dict - ((const char *)(dctx->previousDstEnd= ) - (const char *)(dctx->base)); @@ -1889,7 +1889,7 @@ static size_t INIT ZSTD_refDictContent(Z /* ZSTD_loadEntropy() : * dict : must point at beginning of a valid zstd dictionary * @return : size of entropy tables read */ -static size_t INIT ZSTD_loadEntropy(ZSTD_entropyTables_t *entropy, const v= oid *const dict, size_t const dictSize) +static size_t __init ZSTD_loadEntropy(ZSTD_entropyTables_t *entropy, const= void *const dict, size_t const dictSize) { const BYTE *dictPtr =3D (const BYTE *)dict; const BYTE *const dictEnd =3D dictPtr + dictSize; @@ -1958,7 +1958,7 @@ static size_t INIT ZSTD_loadEntropy(ZSTD return dictPtr - (const BYTE *)dict; } =20 -static size_t INIT ZSTD_decompress_insertDictionary(ZSTD_DCtx *dctx, const= void *dict, size_t dictSize) +static size_t __init ZSTD_decompress_insertDictionary(ZSTD_DCtx *dctx, con= st void *dict, size_t dictSize) { if (dictSize < 8) return ZSTD_refDictContent(dctx, dict, dictSize); @@ -1984,7 +1984,7 @@ static size_t INIT ZSTD_decompress_inser return ZSTD_refDictContent(dctx, dict, dictSize); } =20 -STATIC size_t INIT ZSTD_decompressBegin_usingDict(ZSTD_DCtx *dctx, const v= oid *dict, size_t dictSize) +static size_t __init ZSTD_decompressBegin_usingDict(ZSTD_DCtx *dctx, const= void *dict, size_t dictSize) { CHECK_F(ZSTD_decompressBegin(dctx)); if (dict && dictSize) @@ -2005,14 +2005,14 @@ struct ZSTD_DDict_s { }; /* typedef'd to ZSTD_DDict within "zstd.h" */ =20 #ifdef BUILD_DEAD_CODE -size_t INIT ZSTD_DDictWorkspaceBound(void) { return ZSTD_ALIGN(sizeof(ZSTD= _stack)) + ZSTD_ALIGN(sizeof(ZSTD_DDict)); } +size_t __init ZSTD_DDictWorkspaceBound(void) { return ZSTD_ALIGN(sizeof(ZS= TD_stack)) + ZSTD_ALIGN(sizeof(ZSTD_DDict)); } #endif =20 -static const void *INIT ZSTD_DDictDictContent(const ZSTD_DDict *ddict) { r= eturn ddict->dictContent; } +static const void *__init ZSTD_DDictDictContent(const ZSTD_DDict *ddict) {= return ddict->dictContent; } =20 -static size_t INIT ZSTD_DDictDictSize(const ZSTD_DDict *ddict) { return dd= ict->dictSize; } +static size_t __init ZSTD_DDictDictSize(const ZSTD_DDict *ddict) { return = ddict->dictSize; } =20 -static void INIT ZSTD_refDDict(ZSTD_DCtx *dstDCtx, const ZSTD_DDict *ddict) +static void __init ZSTD_refDDict(ZSTD_DCtx *dstDCtx, const ZSTD_DDict *ddi= ct) { ZSTD_decompressBegin(dstDCtx); /* init */ if (ddict) { /* support refDDict on NULL */ @@ -2039,7 +2039,7 @@ static void INIT ZSTD_refDDict(ZSTD_DCtx } =20 #ifdef BUILD_DEAD_CODE -static size_t INIT ZSTD_loadEntropy_inDDict(ZSTD_DDict *ddict) +static size_t __init ZSTD_loadEntropy_inDDict(ZSTD_DDict *ddict) { ddict->dictID =3D 0; ddict->entropyPresent =3D 0; @@ -2058,7 +2058,7 @@ static size_t INIT ZSTD_loadEntropy_inDD return 0; } =20 -static ZSTD_DDict *INIT ZSTD_createDDict_advanced(const void *dict, size_t= dictSize, unsigned byReference, ZSTD_customMem customMem) +static ZSTD_DDict *__init ZSTD_createDDict_advanced(const void *dict, size= _t dictSize, unsigned byReference, ZSTD_customMem customMem) { if (!customMem.customAlloc || !customMem.customFree) return NULL; @@ -2101,14 +2101,14 @@ static ZSTD_DDict *INIT ZSTD_createDDict * Create a digested dictionary, to start decompression without startup d= elay. * `dict` content is copied inside DDict. * Consequently, `dict` can be released after `ZSTD_DDict` creation */ -ZSTD_DDict *INIT ZSTD_initDDict(const void *dict, size_t dictSize, void *w= orkspace, size_t workspaceSize) +ZSTD_DDict *__init ZSTD_initDDict(const void *dict, size_t dictSize, void = *workspace, size_t workspaceSize) { ZSTD_customMem const stackMem =3D ZSTD_initStack(workspace, workspaceSize= ); return ZSTD_createDDict_advanced(dict, dictSize, 1, stackMem); } #endif /* BUILD_DEAD_CODE */ =20 -size_t INIT ZSTD_freeDDict(ZSTD_DDict *ddict) +size_t __init ZSTD_freeDDict(ZSTD_DDict *ddict) { if (ddict =3D=3D NULL) return 0; /* support free on NULL */ @@ -2125,7 +2125,7 @@ size_t INIT ZSTD_freeDDict(ZSTD_DDict *d * Provides the dictID stored within dictionary. * if @return =3D=3D 0, the dictionary is not conformant with Zstandard s= pecification. * It can still be loaded, but as a content-only dictionary. */ -unsigned INIT ZSTD_getDictID_fromDict(const void *dict, size_t dictSize) +unsigned __init ZSTD_getDictID_fromDict(const void *dict, size_t dictSize) { if (dictSize < 8) return 0; @@ -2138,7 +2138,7 @@ unsigned INIT ZSTD_getDictID_fromDict(co * Provides the dictID of the dictionary loaded into `ddict`. * If @return =3D=3D 0, the dictionary is not conformant to Zstandard spe= cification, or empty. * Non-conformant dictionaries can still be loaded, but as content-only d= ictionaries. */ -unsigned INIT ZSTD_getDictID_fromDDict(const ZSTD_DDict *ddict) +unsigned __init ZSTD_getDictID_fromDDict(const ZSTD_DDict *ddict) { if (ddict =3D=3D NULL) return 0; @@ -2155,7 +2155,7 @@ unsigned INIT ZSTD_getDictID_fromDDict(c * - `srcSize` is too small, and as a result, the frame header could not = be decoded (only possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`). * - This is not a Zstandard frame. * When identifying the exact failure cause, it's possible to used ZSTD_g= etFrameParams(), which will provide a more precise error code. */ -unsigned INIT ZSTD_getDictID_fromFrame(const void *src, size_t srcSize) +unsigned __init ZSTD_getDictID_fromFrame(const void *src, size_t srcSize) { ZSTD_frameParams zfp =3D {0, 0, 0, 0}; size_t const hError =3D ZSTD_getFrameParams(&zfp, src, srcSize); @@ -2168,7 +2168,7 @@ unsigned INIT ZSTD_getDictID_fromFrame(c /*! ZSTD_decompress_usingDDict() : * Decompression using a pre-digested Dictionary * Use dictionary without significant overhead. */ -STATIC size_t INIT ZSTD_decompress_usingDDict(ZSTD_DCtx *dctx, void *dst, = size_t dstCapacity, const void *src, size_t srcSize, const ZSTD_DDict *ddic= t) +static size_t __init ZSTD_decompress_usingDDict(ZSTD_DCtx *dctx, void *dst= , size_t dstCapacity, const void *src, size_t srcSize, const ZSTD_DDict *dd= ict) { /* pass content and size in case legacy frames are encountered */ return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, NU= LL, 0, ddict); @@ -2205,7 +2205,7 @@ struct ZSTD_DStream_s { U32 hostageByte; }; /* typedef'd to ZSTD_DStream within "zstd.h" */ =20 -STATIC size_t INIT ZSTD_DStreamWorkspaceBound(size_t maxWindowSize) +static size_t __init ZSTD_DStreamWorkspaceBound(size_t maxWindowSize) { size_t const blockSize =3D MIN(maxWindowSize, ZSTD_BLOCKSIZE_ABSOLUTEMAX); size_t const inBuffSize =3D blockSize; @@ -2213,7 +2213,7 @@ STATIC size_t INIT ZSTD_DStreamWorkspace return ZSTD_DCtxWorkspaceBound() + ZSTD_ALIGN(sizeof(ZSTD_DStream)) + ZST= D_ALIGN(inBuffSize) + ZSTD_ALIGN(outBuffSize); } =20 -static ZSTD_DStream *INIT ZSTD_createDStream_advanced(ZSTD_customMem custo= mMem) +static ZSTD_DStream *__init ZSTD_createDStream_advanced(ZSTD_customMem cus= tomMem) { ZSTD_DStream *zds; =20 @@ -2235,7 +2235,7 @@ static ZSTD_DStream *INIT ZSTD_createDSt return zds; } =20 -STATIC ZSTD_DStream *INIT ZSTD_initDStream(size_t maxWindowSize, void *wor= kspace, size_t workspaceSize) +static ZSTD_DStream *__init ZSTD_initDStream(size_t maxWindowSize, void *w= orkspace, size_t workspaceSize) { ZSTD_customMem const stackMem =3D ZSTD_initStack(workspace, workspaceSize= ); ZSTD_DStream *zds =3D ZSTD_createDStream_advanced(stackMem); @@ -2269,7 +2269,7 @@ STATIC ZSTD_DStream *INIT ZSTD_initDStre } =20 #ifdef BUILD_DEAD_CODE -ZSTD_DStream *INIT ZSTD_initDStream_usingDDict(size_t maxWindowSize, const= ZSTD_DDict *ddict, void *workspace, size_t workspaceSize) +ZSTD_DStream *__init ZSTD_initDStream_usingDDict(size_t maxWindowSize, con= st ZSTD_DDict *ddict, void *workspace, size_t workspaceSize) { ZSTD_DStream *zds =3D ZSTD_initDStream(maxWindowSize, workspace, workspac= eSize); if (zds) { @@ -2279,7 +2279,7 @@ ZSTD_DStream *INIT ZSTD_initDStream_usin } #endif =20 -size_t INIT ZSTD_freeDStream(ZSTD_DStream *zds) +size_t __init ZSTD_freeDStream(ZSTD_DStream *zds) { if (zds =3D=3D NULL) return 0; /* support free on null */ @@ -2301,11 +2301,11 @@ size_t INIT ZSTD_freeDStream(ZSTD_DStrea /* *** Initialization *** */ =20 #ifdef BUILD_DEAD_CODE -size_t INIT ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_ABSOLUTEMAX += ZSTD_blockHeaderSize; } -size_t INIT ZSTD_DStreamOutSize(void) { return ZSTD_BLOCKSIZE_ABSOLUTEMAX;= } +size_t __init ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_ABSOLUTEMAX= + ZSTD_blockHeaderSize; } +size_t __init ZSTD_DStreamOutSize(void) { return ZSTD_BLOCKSIZE_ABSOLUTEMA= X; } #endif =20 -STATIC size_t INIT ZSTD_resetDStream(ZSTD_DStream *zds) +static size_t __init ZSTD_resetDStream(ZSTD_DStream *zds) { zds->stage =3D zdss_loadHeader; zds->lhSize =3D zds->inPos =3D zds->outStart =3D zds->outEnd =3D 0; @@ -2316,14 +2316,14 @@ STATIC size_t INIT ZSTD_resetDStream(ZST =20 /* ***** Decompression ***** */ =20 -ZSTD_STATIC size_t INIT ZSTD_limitCopy(void *dst, size_t dstCapacity, cons= t void *src, size_t srcSize) +ZSTD_STATIC size_t __init ZSTD_limitCopy(void *dst, size_t dstCapacity, co= nst void *src, size_t srcSize) { size_t const length =3D MIN(dstCapacity, srcSize); memcpy(dst, src, length); return length; } =20 -STATIC size_t INIT ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuffer= *output, ZSTD_inBuffer *input) +static size_t __init ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuff= er *output, ZSTD_inBuffer *input) { const char *const istart =3D (const char *)(input->src) + input->pos; const char *const iend =3D (const char *)(input->src) + input->size; --- a/xen/common/zstd/entropy_common.c +++ b/xen/common/zstd/entropy_common.c @@ -46,17 +46,17 @@ #include "mem.h" =20 /*=3D=3D=3D Version =3D=3D=3D*/ -unsigned INIT FSE_versionNumber(void) { return FSE_VERSION_NUMBER; } +unsigned __init FSE_versionNumber(void) { return FSE_VERSION_NUMBER; } =20 /*=3D=3D=3D Error Management =3D=3D=3D*/ -unsigned INIT FSE_isError(size_t code) { return ERR_isError(code); } +unsigned __init FSE_isError(size_t code) { return ERR_isError(code); } =20 -unsigned INIT HUF_isError(size_t code) { return ERR_isError(code); } +unsigned __init HUF_isError(size_t code) { return ERR_isError(code); } =20 /*-************************************************************** * FSE NCount encoding-decoding ****************************************************************/ -size_t INIT FSE_readNCount(short *normalizedCounter, unsigned *maxSVPtr, u= nsigned *tableLogPtr, const void *headerBuffer, size_t hbSize) +size_t __init FSE_readNCount(short *normalizedCounter, unsigned *maxSVPtr,= unsigned *tableLogPtr, const void *headerBuffer, size_t hbSize) { const BYTE *const istart =3D (const BYTE *)headerBuffer; const BYTE *const iend =3D istart + hbSize; @@ -164,7 +164,7 @@ size_t INIT FSE_readNCount(short *normal @return : size read from `src` , or an error Code . Note : Needed by HUF_readCTable() and HUF_readDTableX?() . */ -size_t INIT HUF_readStats_wksp(BYTE *huffWeight, size_t hwSize, U32 *rankS= tats, U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSize,= void *workspace, size_t workspaceSize) +size_t __init HUF_readStats_wksp(BYTE *huffWeight, size_t hwSize, U32 *ran= kStats, U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSiz= e, void *workspace, size_t workspaceSize) { U32 weightTotal; const BYTE *ip =3D (const BYTE *)src; --- a/xen/common/zstd/error_private.h +++ b/xen/common/zstd/error_private.h @@ -67,9 +67,9 @@ typedef ZSTD_ErrorCode ERR_enum; ******************************************/ #define ERROR(name) ((size_t)-PREFIX(name)) =20 -ERR_STATIC unsigned INIT ERR_isError(size_t code) { return (code > ERROR(m= axCode)); } +ERR_STATIC unsigned __init ERR_isError(size_t code) { return (code > ERROR= (maxCode)); } =20 -ERR_STATIC ERR_enum INIT ERR_getErrorCode(size_t code) +ERR_STATIC ERR_enum __init ERR_getErrorCode(size_t code) { if (!ERR_isError(code)) return (ERR_enum)0; @@ -82,7 +82,7 @@ ERR_STATIC ERR_enum INIT ERR_getErrorCod * * Return: Non-zero iff the code is an error. */ -static __attribute__((unused)) unsigned int INIT ZSTD_isError(size_t code) +static __attribute__((unused)) unsigned int __init ZSTD_isError(size_t cod= e) { return code > (size_t)-ZSTD_error_maxCode; } @@ -94,7 +94,7 @@ static __attribute__((unused)) unsigned * Return: The ZSTD_ErrorCode corresponding to the functionResult= or 0 * if the functionResult isn't an error. */ -static __attribute__((unused)) ZSTD_ErrorCode INIT ZSTD_getErrorCode( +static __attribute__((unused)) ZSTD_ErrorCode __init ZSTD_getErrorCode( size_t functionResult) { if (!ZSTD_isError(functionResult)) --- a/xen/common/zstd/fse_decompress.c +++ b/xen/common/zstd/fse_decompress.c @@ -82,7 +82,7 @@ =20 /* Function templates */ =20 -size_t INIT FSE_buildDTable_wksp(FSE_DTable *dt, const short *normalizedCo= unter, unsigned maxSymbolValue, unsigned tableLog, void *workspace, size_t = workspaceSize) +size_t __init FSE_buildDTable_wksp(FSE_DTable *dt, const short *normalized= Counter, unsigned maxSymbolValue, unsigned tableLog, void *workspace, size_= t workspaceSize) { void *const tdPtr =3D dt + 1; /* because *dt is unsigned, 32-bits aligned= on 32-bits */ FSE_DECODE_TYPE *const tableDecode =3D (FSE_DECODE_TYPE *)(tdPtr); @@ -157,7 +157,7 @@ size_t INIT FSE_buildDTable_wksp(FSE_DTa /*-******************************************************* * Decompression (Byte symbols) *********************************************************/ -size_t INIT FSE_buildDTable_rle(FSE_DTable *dt, BYTE symbolValue) +size_t __init FSE_buildDTable_rle(FSE_DTable *dt, BYTE symbolValue) { void *ptr =3D dt; FSE_DTableHeader *const DTableH =3D (FSE_DTableHeader *)ptr; @@ -174,7 +174,7 @@ size_t INIT FSE_buildDTable_rle(FSE_DTab return 0; } =20 -size_t INIT FSE_buildDTable_raw(FSE_DTable *dt, unsigned nbBits) +size_t __init FSE_buildDTable_raw(FSE_DTable *dt, unsigned nbBits) { void *ptr =3D dt; FSE_DTableHeader *const DTableH =3D (FSE_DTableHeader *)ptr; @@ -269,7 +269,7 @@ FORCE_INLINE size_t FSE_decompress_using return op - ostart; } =20 -size_t INIT FSE_decompress_usingDTable(void *dst, size_t originalSize, con= st void *cSrc, size_t cSrcSize, const FSE_DTable *dt) +size_t __init FSE_decompress_usingDTable(void *dst, size_t originalSize, c= onst void *cSrc, size_t cSrcSize, const FSE_DTable *dt) { const void *ptr =3D dt; const FSE_DTableHeader *DTableH =3D (const FSE_DTableHeader *)ptr; @@ -281,7 +281,7 @@ size_t INIT FSE_decompress_usingDTable(v return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSi= ze, dt, 0); } =20 -size_t INIT FSE_decompress_wksp(void *dst, size_t dstCapacity, const void = *cSrc, size_t cSrcSize, unsigned maxLog, void *workspace, size_t workspaceS= ize) +size_t __init FSE_decompress_wksp(void *dst, size_t dstCapacity, const voi= d *cSrc, size_t cSrcSize, unsigned maxLog, void *workspace, size_t workspac= eSize) { const BYTE *const istart =3D (const BYTE *)cSrc; const BYTE *ip =3D istart; --- a/xen/common/zstd/huf_decompress.c +++ b/xen/common/zstd/huf_decompress.c @@ -68,7 +68,7 @@ typedef struct { BYTE reserved; } DTableDesc; =20 -static DTableDesc INIT HUF_getDTableDesc(const HUF_DTable *table) +static DTableDesc __init HUF_getDTableDesc(const HUF_DTable *table) { DTableDesc dtd; memcpy(&dtd, table, sizeof(dtd)); @@ -84,7 +84,7 @@ typedef struct { BYTE nbBits; } HUF_DEltX2; /* single-symbol decoding */ =20 -size_t INIT HUF_readDTableX2_wksp(HUF_DTable *DTable, const void *src, siz= e_t srcSize, void *workspace, size_t workspaceSize) +size_t __init HUF_readDTableX2_wksp(HUF_DTable *DTable, const void *src, s= ize_t srcSize, void *workspace, size_t workspaceSize) { U32 tableLog =3D 0; U32 nbSymbols =3D 0; @@ -152,7 +152,7 @@ size_t INIT HUF_readDTableX2_wksp(HUF_DT return iSize; } =20 -static BYTE INIT HUF_decodeSymbolX2(BIT_DStream_t *Dstream, const HUF_DElt= X2 *dt, const U32 dtLog) +static BYTE __init HUF_decodeSymbolX2(BIT_DStream_t *Dstream, const HUF_DE= ltX2 *dt, const U32 dtLog) { size_t const val =3D BIT_lookBitsFast(Dstream, dtLog); /* note : dtLog >= =3D 1 */ BYTE const c =3D dt[val].byte; @@ -193,7 +193,7 @@ FORCE_INLINE size_t HUF_decodeStreamX2(B return pEnd - pStart; } =20 -static size_t INIT HUF_decompress1X2_usingDTable_internal(void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +static size_t __init HUF_decompress1X2_usingDTable_internal(void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { BYTE *op =3D (BYTE *)dst; BYTE *const oend =3D op + dstSize; @@ -218,7 +218,7 @@ static size_t INIT HUF_decompress1X2_usi return dstSize; } =20 -size_t INIT HUF_decompress1X2_usingDTable(void *dst, size_t dstSize, const= void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +size_t __init HUF_decompress1X2_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); if (dtd.tableType !=3D 0) @@ -226,7 +226,7 @@ size_t INIT HUF_decompress1X2_usingDTabl return HUF_decompress1X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } =20 -size_t INIT HUF_decompress1X2_DCtx_wksp(HUF_DTable *DCtx, void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t works= paceSize) +size_t __init HUF_decompress1X2_DCtx_wksp(HUF_DTable *DCtx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { const BYTE *ip =3D (const BYTE *)cSrc; =20 @@ -241,7 +241,7 @@ size_t INIT HUF_decompress1X2_DCtx_wksp( return HUF_decompress1X2_usingDTable_internal(dst, dstSize, ip, cSrcSize,= DCtx); } =20 -static size_t INIT HUF_decompress4X2_usingDTable_internal(void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +static size_t __init HUF_decompress4X2_usingDTable_internal(void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { /* Check */ if (cSrcSize < 10) @@ -349,7 +349,7 @@ static size_t INIT HUF_decompress4X2_usi } } =20 -size_t INIT HUF_decompress4X2_usingDTable(void *dst, size_t dstSize, const= void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +size_t __init HUF_decompress4X2_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); if (dtd.tableType !=3D 0) @@ -357,7 +357,7 @@ size_t INIT HUF_decompress4X2_usingDTabl return HUF_decompress4X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } =20 -size_t INIT HUF_decompress4X2_DCtx_wksp(HUF_DTable *dctx, void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t works= paceSize) +size_t __init HUF_decompress4X2_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { const BYTE *ip =3D (const BYTE *)cSrc; =20 @@ -388,7 +388,7 @@ typedef struct { =20 /* HUF_fillDTableX4Level2() : * `rankValOrigin` must be a table of at least (HUF_TABLELOG_MAX + 1) U32 = */ -static void INIT HUF_fillDTableX4Level2(HUF_DEltX4 *DTable, U32 sizeLog, c= onst U32 consumed, const U32 *rankValOrigin, const int minWeight, +static void __init HUF_fillDTableX4Level2(HUF_DEltX4 *DTable, U32 sizeLog,= const U32 consumed, const U32 *rankValOrigin, const int minWeight, const sortedSymbol_t *sortedSymbols, const U32 sortedListSize, U32 nb= BitsBaseline, U16 baseSeq) { HUF_DEltX4 DElt; @@ -434,7 +434,7 @@ static void INIT HUF_fillDTableX4Level2( typedef U32 rankVal_t[HUF_TABLELOG_MAX][HUF_TABLELOG_MAX + 1]; typedef U32 rankValCol_t[HUF_TABLELOG_MAX + 1]; =20 -static void INIT HUF_fillDTableX4(HUF_DEltX4 *DTable, const U32 targetLog,= const sortedSymbol_t *sortedList, +static void __init HUF_fillDTableX4(HUF_DEltX4 *DTable, const U32 targetLo= g, const sortedSymbol_t *sortedList, const U32 sortedListSize, const U32 *rankStart, rankVal_t rankValOrigin, const U32 maxWeight, const U32 nbBit= sBaseline) { @@ -477,7 +477,7 @@ static void INIT HUF_fillDTableX4(HUF_DE } } =20 -size_t INIT HUF_readDTableX4_wksp(HUF_DTable *DTable, const void *src, siz= e_t srcSize, void *workspace, size_t workspaceSize) +size_t __init HUF_readDTableX4_wksp(HUF_DTable *DTable, const void *src, s= ize_t srcSize, void *workspace, size_t workspaceSize) { U32 tableLog, maxW, sizeOfSort, nbSymbols; DTableDesc dtd =3D HUF_getDTableDesc(DTable); @@ -590,7 +590,7 @@ size_t INIT HUF_readDTableX4_wksp(HUF_DT return iSize; } =20 -static U32 INIT HUF_decodeSymbolX4(void *op, BIT_DStream_t *DStream, const= HUF_DEltX4 *dt, const U32 dtLog) +static U32 __init HUF_decodeSymbolX4(void *op, BIT_DStream_t *DStream, con= st HUF_DEltX4 *dt, const U32 dtLog) { size_t const val =3D BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= =3D 1 */ memcpy(op, dt + val, 2); @@ -598,7 +598,7 @@ static U32 INIT HUF_decodeSymbolX4(void return dt[val].length; } =20 -static U32 INIT HUF_decodeLastSymbolX4(void *op, BIT_DStream_t *DStream, c= onst HUF_DEltX4 *dt, const U32 dtLog) +static U32 __init HUF_decodeLastSymbolX4(void *op, BIT_DStream_t *DStream,= const HUF_DEltX4 *dt, const U32 dtLog) { size_t const val =3D BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= =3D 1 */ memcpy(op, dt + val, 1); @@ -650,7 +650,7 @@ FORCE_INLINE size_t HUF_decodeStreamX4(B return p - pStart; } =20 -static size_t INIT HUF_decompress1X4_usingDTable_internal(void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +static size_t __init HUF_decompress1X4_usingDTable_internal(void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { BIT_DStream_t bitD; =20 @@ -679,7 +679,7 @@ static size_t INIT HUF_decompress1X4_usi return dstSize; } =20 -size_t INIT HUF_decompress1X4_usingDTable(void *dst, size_t dstSize, const= void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +size_t __init HUF_decompress1X4_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); if (dtd.tableType !=3D 1) @@ -687,7 +687,7 @@ size_t INIT HUF_decompress1X4_usingDTabl return HUF_decompress1X4_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } =20 -size_t INIT HUF_decompress1X4_DCtx_wksp(HUF_DTable *DCtx, void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t works= paceSize) +size_t __init HUF_decompress1X4_DCtx_wksp(HUF_DTable *DCtx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { const BYTE *ip =3D (const BYTE *)cSrc; =20 @@ -702,7 +702,7 @@ size_t INIT HUF_decompress1X4_DCtx_wksp( return HUF_decompress1X4_usingDTable_internal(dst, dstSize, ip, cSrcSize,= DCtx); } =20 -static size_t INIT HUF_decompress4X4_usingDTable_internal(void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +static size_t __init HUF_decompress4X4_usingDTable_internal(void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 by= te per stream */ @@ -812,7 +812,7 @@ static size_t INIT HUF_decompress4X4_usi } } =20 -size_t INIT HUF_decompress4X4_usingDTable(void *dst, size_t dstSize, const= void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +size_t __init HUF_decompress4X4_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); if (dtd.tableType !=3D 1) @@ -820,7 +820,7 @@ size_t INIT HUF_decompress4X4_usingDTabl return HUF_decompress4X4_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } =20 -size_t INIT HUF_decompress4X4_DCtx_wksp(HUF_DTable *dctx, void *dst, size_= t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t works= paceSize) +size_t __init HUF_decompress4X4_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { const BYTE *ip =3D (const BYTE *)cSrc; =20 @@ -839,14 +839,14 @@ size_t INIT HUF_decompress4X4_DCtx_wksp( /* Generic decompression selector */ /* ********************************/ =20 -size_t INIT HUF_decompress1X_usingDTable(void *dst, size_t maxDstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +size_t __init HUF_decompress1X_usingDTable(void *dst, size_t maxDstSize, c= onst void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc const dtd =3D HUF_getDTableDesc(DTable); return dtd.tableType ? HUF_decompress1X4_usingDTable_internal(dst, maxDst= Size, cSrc, cSrcSize, DTable) : HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cS= rcSize, DTable); } =20 -size_t INIT HUF_decompress4X_usingDTable(void *dst, size_t maxDstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) +size_t __init HUF_decompress4X_usingDTable(void *dst, size_t maxDstSize, c= onst void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc const dtd =3D HUF_getDTableDesc(DTable); return dtd.tableType ? HUF_decompress4X4_usingDTable_internal(dst, maxDst= Size, cSrc, cSrcSize, DTable) @@ -882,7 +882,7 @@ static const algo_time_t algoTime[16 /* * based on a set of pre-determined metrics. * @return : 0=3D=3DHUF_decompress4X2, 1=3D=3DHUF_decompress4X4 . * Assumption : 0 < cSrcSize < dstSize <=3D 128 KB */ -U32 INIT HUF_selectDecoder(size_t dstSize, size_t cSrcSize) +U32 __init HUF_selectDecoder(size_t dstSize, size_t cSrcSize) { /* decoder timing evaluation */ U32 const Q =3D (U32)(cSrcSize * 16 / dstSize); /* Q < 16 since dstSize >= cSrcSize */ @@ -896,7 +896,7 @@ U32 INIT HUF_selectDecoder(size_t dstSiz =20 typedef size_t (*decompressionAlgo)(void *dst, size_t dstSize, const void = *cSrc, size_t cSrcSize); =20 -size_t INIT HUF_decompress4X_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t= dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t worksp= aceSize) +size_t __init HUF_decompress4X_DCtx_wksp(HUF_DTable *dctx, void *dst, size= _t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t work= spaceSize) { /* validation checks */ if (dstSize =3D=3D 0) @@ -919,7 +919,7 @@ size_t INIT HUF_decompress4X_DCtx_wksp(H } } =20 -size_t INIT HUF_decompress4X_hufOnly_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) +size_t __init HUF_decompress4X_hufOnly_wksp(HUF_DTable *dctx, void *dst, s= ize_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t w= orkspaceSize) { /* validation checks */ if (dstSize =3D=3D 0) @@ -934,7 +934,7 @@ size_t INIT HUF_decompress4X_hufOnly_wks } } =20 -size_t INIT HUF_decompress1X_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t= dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t worksp= aceSize) +size_t __init HUF_decompress1X_DCtx_wksp(HUF_DTable *dctx, void *dst, size= _t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t work= spaceSize) { /* validation checks */ if (dstSize =3D=3D 0) --- a/xen/common/zstd/zstd_common.c +++ b/xen/common/zstd/zstd_common.c @@ -31,7 +31,7 @@ (stack)->ptr <=3D (stack)->end ? ptr : NULL; \ }) =20 -ZSTD_customMem INIT ZSTD_initStack(void *workspace, size_t workspaceSize) +ZSTD_customMem __init ZSTD_initStack(void *workspace, size_t workspaceSize) { ZSTD_customMem stackMem =3D {ZSTD_stackAlloc, ZSTD_stackFree, workspace}; ZSTD_stack *stack =3D (ZSTD_stack *)workspace; @@ -47,27 +47,27 @@ ZSTD_customMem INIT ZSTD_initStack(void return stackMem; } =20 -void *INIT ZSTD_stackAllocAll(void *opaque, size_t *size) +void *__init ZSTD_stackAllocAll(void *opaque, size_t *size) { ZSTD_stack *stack =3D (ZSTD_stack *)opaque; *size =3D (BYTE const *)stack->end - (BYTE *)ZSTD_PTR_ALIGN(stack->ptr); return stack_push(stack, *size); } =20 -void *INIT ZSTD_stackAlloc(void *opaque, size_t size) +void *__init ZSTD_stackAlloc(void *opaque, size_t size) { ZSTD_stack *stack =3D (ZSTD_stack *)opaque; return stack_push(stack, size); } -void INIT ZSTD_stackFree(void *opaque, void *address) +void __init ZSTD_stackFree(void *opaque, void *address) { (void)opaque; (void)address; } =20 -void *INIT ZSTD_malloc(size_t size, ZSTD_customMem customMem) { return cus= tomMem.customAlloc(customMem.opaque, size); } +void *__init ZSTD_malloc(size_t size, ZSTD_customMem customMem) { return c= ustomMem.customAlloc(customMem.opaque, size); } =20 -void INIT ZSTD_free(void *ptr, ZSTD_customMem customMem) +void __init ZSTD_free(void *ptr, ZSTD_customMem customMem) { if (ptr !=3D NULL) customMem.customFree(customMem.opaque, ptr); --- a/xen/common/zstd/zstd_internal.h +++ b/xen/common/zstd/zstd_internal.h @@ -21,7 +21,7 @@ * Compiler specifics *********************************************************/ #define FORCE_INLINE static always_inline -#define FORCE_NOINLINE static noinline INIT +#define FORCE_NOINLINE static noinline __init =20 /*-************************************* * Dependencies From nobody Sat May 4 05:33:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1619000537; cv=none; d=zohomail.com; s=zohoarc; b=FOA5PuUi4Udi72icTK4JDkH2mMb68Awk5mUaTMVnBBljp/1tYCIT2E+4/JmRqNTO3I+I9A3vVpbIQBl4rQR6FWy27I2sRn9vyAdw7Yqcrmi2A0s/8nAvhdIbX8nzkr866/8xYYP8KZQaR+wX2PQQV8eeA1gUIhbS2i9VeDWvXek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619000537; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5M9d5K4NLQWhUZlujnEzlcEHndQ3mZdWLs+EcPv7cUs=; b=HKxErpEdD8iazUW2Vew5lfbSsdiuphN6PVIujNtqx8JLmJFI+qqKFo4numB6ktOMZ6RhtibzZxnVwGBhgmy+ZukHoigQyIZ5qW8BYoo+3+3j+0DlAK2wZdfgFfJ6dr/IkUdCDRGKFZ6w3krJiolFMQfHUpsy7f4e9YR2C1G41aI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 161900053719020.327377140011663; Wed, 21 Apr 2021 03:22:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.114350.217928 (Exim 4.92) (envelope-from ) id 1lZ9zf-0000Ee-Ie; Wed, 21 Apr 2021 10:22:03 +0000 Received: by outflank-mailman (output) from mailman id 114350.217928; Wed, 21 Apr 2021 10:22:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZ9zf-0000EX-F6; Wed, 21 Apr 2021 10:22:03 +0000 Received: by outflank-mailman (input) for mailman id 114350; Wed, 21 Apr 2021 10:22:02 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZ9zd-0000CV-Tw for xen-devel@lists.xenproject.org; Wed, 21 Apr 2021 10:22:01 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 29f292c2-12b8-4b73-a043-96f0b458684c; Wed, 21 Apr 2021 10:22:00 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 7D7D2B2D6; Wed, 21 Apr 2021 10:21:59 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 29f292c2-12b8-4b73-a043-96f0b458684c X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1619000519; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5M9d5K4NLQWhUZlujnEzlcEHndQ3mZdWLs+EcPv7cUs=; b=LiTZgKOV0cGIYWbwtAyYwhRHVlHGf0zNvaQx+eCjdjPRthTRpsL3ZfRvEPyXYOFb2mg0aS seCBVKOA5k8RbN2qS2AxzrACD2V6H27a2dTKv0Z4jR8TxfO7ZgwZdijWiCmkje8silTwml uvSGUN8w1EOm+EN7c/xZyaB2Jy0XF6s= Subject: [PATCH v4 2/3] xen/decompress: drop STATIC and INIT From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com> Message-ID: Date: Wed, 21 Apr 2021 12:21:59 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" Except for one last instance, all users have been removed in earlier changes. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich Acked-by: Julien Grall --- v3: New. --- a/xen/arch/arm/efi/efi-dom0.c +++ b/xen/arch/arm/efi/efi-dom0.c @@ -28,7 +28,7 @@ #include #include #include "../../../common/decompress.h" -#define XZ_EXTERN STATIC +#define XZ_EXTERN static #include "../../../common/xz/crc32.c" =20 /* Constant to indicate "Xen" in unicode u16 format */ --- a/xen/common/decompress.h +++ b/xen/common/decompress.h @@ -7,9 +7,6 @@ #include #include =20 -#define STATIC static -#define INIT __init - #define malloc xmalloc_bytes #define free xfree =20 @@ -18,9 +15,6 @@ =20 #else =20 -#define STATIC static -#define INIT - #undef __init /* tools/libs/guest/xg_private.h has its own one */ #define __init #define __initdata From nobody Sat May 4 05:33:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1619000561; cv=none; d=zohomail.com; s=zohoarc; b=bP1xu8j63R2nrZcA59UhaUbD/WXJkcR2v+SdIjNgfU6wHrkYxJJAgWfrVIKXiE3qQpK4SX+MrlLIgOBauwqTE4vMg4/Ahhv7AtFDWlSxUlK9uRgVPPy5lB0BNyBwki+X3ZbYJcA/iLFoaT1hvMDTW+VrdciNHBc9jshhTt/99LA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619000561; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TNwBS5CqZiz6ZS6XTeoRh5oALwnQG2gs/BtgNSkMD0o=; b=jrUTB5w5G67jgzMD2cl78sMrVSxx5AFWV4gpofNh7AzsiaSXthkuCt/sEB3XYUjl5VjQu2WCyylhsswxWKW5mwQdS/Va1FYAOmBNpQhYpxy7gMcFLvEFFFVulnYqnOKu37UEsduVY6K0ya33h4Oe+wLPKoOdpSlTjha07mEbAu8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1619000561409414.3207863199457; Wed, 21 Apr 2021 03:22:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.114358.217940 (Exim 4.92) (envelope-from ) id 1lZA01-0000Mq-Sz; Wed, 21 Apr 2021 10:22:25 +0000 Received: by outflank-mailman (output) from mailman id 114358.217940; Wed, 21 Apr 2021 10:22:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZA01-0000Mj-Pl; Wed, 21 Apr 2021 10:22:25 +0000 Received: by outflank-mailman (input) for mailman id 114358; Wed, 21 Apr 2021 10:22:24 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lZA00-0000MP-2I for xen-devel@lists.xenproject.org; Wed, 21 Apr 2021 10:22:24 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id efd1ffa7-ec90-41c9-b8f3-9ba60f5c0a58; Wed, 21 Apr 2021 10:22:22 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 396A7AEE7; Wed, 21 Apr 2021 10:22:21 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: efd1ffa7-ec90-41c9-b8f3-9ba60f5c0a58 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1619000541; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TNwBS5CqZiz6ZS6XTeoRh5oALwnQG2gs/BtgNSkMD0o=; b=bkc1DKm2eisfRNGCmFqZ5x9c6qUAglaYTB6Z15IOu/vaVKepu2HE/y1Q3gHeZhkFa0mLEg I0mcb44Bb0q3I1NeyGKvY3G5x+0k+Kqt0Bj1P7Vw+5iW+KYfr/fue8ZdHyqfAkXGAFG7pE GUj3Zx4pDo/xUgCksKwdn/dIe49iXbQ= Subject: [PATCH v4 3/3] unzstd: make helper symbols static From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com> Message-ID: <759c8524-cc01-fac8-bc62-0ba6558477bd@suse.com> Date: Wed, 21 Apr 2021 12:22:20 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: <12054cba-4386-0dbf-46fd-41ace0344f8e@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" While for the original library's purposes these functions of course want to be externally exposed, we don't need this, and we also don't want this both to prevent unintended use and to keep the name space tidy. (When functions have no callers at all, wrap them with a suitable #ifdef.) This has the added benefit of reducing the resulting binary size - while this is all .init code, it's still desirable to not carry dead code. Additionally in the hypervisor we don't need the bulk of unzstd(), so insert a conditional allowing the compiler to DCE the rest (including the called functions). Signed-off-by: Jan Beulich --- v3: New. --- a/xen/common/unzstd.c +++ b/xen/common/unzstd.c @@ -53,6 +53,10 @@ * <=3D 22 + (uncompressed_size >> 15) + 131072 */ =20 +#ifdef __XEN__ +#include +#endif + #include "decompress.h" =20 #include "zstd/entropy_common.c" @@ -173,6 +177,11 @@ int __init unzstd(unsigned char *in_buf, return decompress_single(in_buf, in_len, out_buf, out_len, in_pos, error); =20 +#ifdef __XEN__ + ASSERT_UNREACHABLE(); + return -1; +#endif + /* * If in_buf is not provided, we must be using fill(), so allocate * a large enough buffer. If it is provided, it must be at least --- a/xen/common/zstd/entropy_common.c +++ b/xen/common/zstd/entropy_common.c @@ -45,8 +45,10 @@ #include "huf.h" #include "mem.h" =20 +#ifdef BUILD_DEAD_CODE /*=3D=3D=3D Version =3D=3D=3D*/ unsigned __init FSE_versionNumber(void) { return FSE_VERSION_NUMBER; } +#endif =20 /*=3D=3D=3D Error Management =3D=3D=3D*/ unsigned __init FSE_isError(size_t code) { return ERR_isError(code); } --- a/xen/common/zstd/fse.h +++ b/xen/common/zstd/fse.h @@ -64,7 +64,7 @@ FSE_PUBLIC_API unsigned FSE_versionNumbe FSE_PUBLIC_API size_t FSE_compressBound(size_t size); /* maximum compresse= d size */ =20 /* Error Management */ -FSE_PUBLIC_API unsigned FSE_isError(size_t code); /* tells if a return val= ue is an error code */ +static unsigned FSE_isError(size_t code); /* tells if a return value is an= error code */ =20 /*-***************************************** * FSE detailed API @@ -173,7 +173,7 @@ If there is an error, the function will @return : size read from 'rBuffer', or an errorCode, which can be tested using FSE_isError(). maxSymbolValuePtr[0] and tableLogPtr[0] will also be updated with the= ir respective values */ -FSE_PUBLIC_API size_t FSE_readNCount(short *normalizedCounter, unsigned *m= axSymbolValuePtr, unsigned *tableLogPtr, const void *rBuffer, size_t rBuffS= ize); +static size_t FSE_readNCount(short *normalizedCounter, unsigned *maxSymbol= ValuePtr, unsigned *tableLogPtr, const void *rBuffer, size_t rBuffSize); =20 /*! Constructor and Destructor of FSE_DTable. Note that its size depends on 'tableLog' */ @@ -182,14 +182,14 @@ typedef unsigned FSE_DTable; /* don't al /*! FSE_buildDTable(): Builds 'dt', which must be already allocated, using FSE_createDTable(). return : 0, or an errorCode, which can be tested using FSE_isError() */ -FSE_PUBLIC_API size_t FSE_buildDTable_wksp(FSE_DTable *dt, const short *no= rmalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void *workspac= e, size_t workspaceSize); +static size_t FSE_buildDTable_wksp(FSE_DTable *dt, const short *normalized= Counter, unsigned maxSymbolValue, unsigned tableLog, void *workspace, size_= t workspaceSize); =20 /*! FSE_decompress_usingDTable(): Decompress compressed source `cSrc` of size `cSrcSize` using `dt` into `dst` which must be already allocated. @return : size of regenerated data (necessarily <=3D `dstCapacity`), or an errorCode, which can be tested using FSE_isError() */ -FSE_PUBLIC_API size_t FSE_decompress_usingDTable(void *dst, size_t dstCapa= city, const void *cSrc, size_t cSrcSize, const FSE_DTable *dt); +static size_t FSE_decompress_usingDTable(void *dst, size_t dstCapacity, co= nst void *cSrc, size_t cSrcSize, const FSE_DTable *dt); =20 /*! Tutorial : @@ -273,10 +273,10 @@ size_t FSE_buildCTable_wksp(FSE_CTable * size_t FSE_buildDTable_raw(FSE_DTable *dt, unsigned nbBits); /**< build a fake FSE_DTable, designed to read a flat distribution where e= ach symbol uses nbBits */ =20 -size_t FSE_buildDTable_rle(FSE_DTable *dt, unsigned char symbolValue); +static size_t FSE_buildDTable_rle(FSE_DTable *dt, unsigned char symbolValu= e); /**< build a fake FSE_DTable, designed to always generate the same symbolV= alue */ =20 -size_t FSE_decompress_wksp(void *dst, size_t dstCapacity, const void *cSrc= , size_t cSrcSize, unsigned maxLog, void *workspace, size_t workspaceSize); +static size_t FSE_decompress_wksp(void *dst, size_t dstCapacity, const voi= d *cSrc, size_t cSrcSize, unsigned maxLog, void *workspace, size_t workspac= eSize); /**< same as FSE_decompress(), using an externally allocated `workSpace` p= roduced with `FSE_DTABLE_SIZE_U32(maxLog)` */ =20 /* ***************************************** --- a/xen/common/zstd/fse_decompress.c +++ b/xen/common/zstd/fse_decompress.c @@ -174,6 +174,7 @@ size_t __init FSE_buildDTable_rle(FSE_DT return 0; } =20 +#ifdef BUILD_DEAD_CODE size_t __init FSE_buildDTable_raw(FSE_DTable *dt, unsigned nbBits) { void *ptr =3D dt; @@ -200,6 +201,7 @@ size_t __init FSE_buildDTable_raw(FSE_DT =20 return 0; } +#endif =20 FORCE_INLINE size_t FSE_decompress_usingDTable_generic(void *dst, size_t m= axDstSize, const void *cSrc, size_t cSrcSize, const FSE_DTable *dt, const unsigned fast) --- a/xen/common/zstd/huf.h +++ b/xen/common/zstd/huf.h @@ -45,7 +45,7 @@ size_t HUF_compressBound(size_t size); /**< maximum compressed size (worst= case) */ =20 /* Error Management */ -unsigned HUF_isError(size_t code); /**< tells if a return value is an erro= r code */ +static unsigned HUF_isError(size_t code); /**< tells if a return value is = an error code */ =20 /* *** Advanced function *** */ =20 @@ -99,12 +99,12 @@ typedef U32 HUF_DTable; * Advanced decompression functions ******************************************/ size_t HUF_decompress4X_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t dstS= ize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSi= ze); /**< decodes RLE and uncompressed */ -size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable *dctx, void *dst, size_t d= stSize, const void *cSrc, size_t cSrcSize, void *workspace, - size_t workspaceSize); /**< considers RLE and uncompresse= d as errors */ -size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t dst= Size, const void *cSrc, size_t cSrcSize, void *workspace, - size_t workspaceSize); /**< single-symbol decoder */ -size_t HUF_decompress4X4_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t dst= Size, const void *cSrc, size_t cSrcSize, void *workspace, - size_t workspaceSize); /**< double-symbols decoder */ +static size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable *dctx, void *dst, s= ize_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, + size_t workspaceSize); /**< considers RLE and uncompre= ssed as errors */ +static size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, + size_t workspaceSize); /**< single-symbol decoder */ +static size_t HUF_decompress4X4_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, + size_t workspaceSize); /**< double-symbols decoder */ =20 /* **************************************** * HUF detailed API @@ -153,8 +153,8 @@ size_t HUF_buildCTable_wksp(HUF_CElt *tr `huffWeight` is destination buffer. @return : size read from `src` , or an error Code . Note : Needed by HUF_readCTable() and HUF_readDTableXn() . */ -size_t HUF_readStats_wksp(BYTE *huffWeight, size_t hwSize, U32 *rankStats,= U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSize, - void *workspace, size_t workspaceSize); +static size_t HUF_readStats_wksp(BYTE *huffWeight, size_t hwSize, U32 *ran= kStats, U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSiz= e, + void *workspace, size_t workspaceSize); =20 /** HUF_readCTable() : * Loading a CTable saved with HUF_writeCTable() */ @@ -172,12 +172,12 @@ HUF_decompress() does the following: * based on a set of pre-determined metrics. * @return : 0=3D=3DHUF_decompress4X2, 1=3D=3DHUF_decompress4X4 . * Assumption : 0 < cSrcSize < dstSize <=3D 128 KB */ -U32 HUF_selectDecoder(size_t dstSize, size_t cSrcSize); +static U32 HUF_selectDecoder(size_t dstSize, size_t cSrcSize); =20 -size_t HUF_readDTableX2_wksp(HUF_DTable *DTable, const void *src, size_t s= rcSize, void *workspace, size_t workspaceSize); -size_t HUF_readDTableX4_wksp(HUF_DTable *DTable, const void *src, size_t s= rcSize, void *workspace, size_t workspaceSize); +static size_t HUF_readDTableX2_wksp(HUF_DTable *DTable, const void *src, s= ize_t srcSize, void *workspace, size_t workspaceSize); +static size_t HUF_readDTableX4_wksp(HUF_DTable *DTable, const void *src, s= ize_t srcSize, void *workspace, size_t workspaceSize); =20 -size_t HUF_decompress4X_usingDTable(void *dst, size_t maxDstSize, const vo= id *cSrc, size_t cSrcSize, const HUF_DTable *DTable); +static size_t HUF_decompress4X_usingDTable(void *dst, size_t maxDstSize, c= onst void *cSrc, size_t cSrcSize, const HUF_DTable *DTable); size_t HUF_decompress4X2_usingDTable(void *dst, size_t maxDstSize, const v= oid *cSrc, size_t cSrcSize, const HUF_DTable *DTable); size_t HUF_decompress4X4_usingDTable(void *dst, size_t maxDstSize, const v= oid *cSrc, size_t cSrcSize, const HUF_DTable *DTable); =20 @@ -196,13 +196,13 @@ size_t HUF_compress1X_repeat(void *dst, int preferRepeat); /**< `workSpace` must be a table of at least HU= F_COMPRESS_WORKSPACE_SIZE_U32 unsigned */ =20 size_t HUF_decompress1X_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t dstS= ize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSi= ze); -size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t dst= Size, const void *cSrc, size_t cSrcSize, void *workspace, - size_t workspaceSize); /**< single-symbol decoder */ +static size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, + size_t workspaceSize); /**< single-symbol decoder */ size_t HUF_decompress1X4_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t dst= Size, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize); /**< double-symbols decoder */ =20 -size_t HUF_decompress1X_usingDTable(void *dst, size_t maxDstSize, const vo= id *cSrc, size_t cSrcSize, - const HUF_DTable *DTable); /**< automatic selection of sing or dou= ble symbol decoder, based on DTable */ +static size_t HUF_decompress1X_usingDTable(void *dst, size_t maxDstSize, c= onst void *cSrc, size_t cSrcSize, + const HUF_DTable *DTable); /**< automatic selection of sing or dou= ble symbol decoder, based on DTable */ size_t HUF_decompress1X2_usingDTable(void *dst, size_t maxDstSize, const v= oid *cSrc, size_t cSrcSize, const HUF_DTable *DTable); size_t HUF_decompress1X4_usingDTable(void *dst, size_t maxDstSize, const v= oid *cSrc, size_t cSrcSize, const HUF_DTable *DTable); =20 --- a/xen/common/zstd/huf_decompress.c +++ b/xen/common/zstd/huf_decompress.c @@ -218,6 +218,7 @@ static size_t __init HUF_decompress1X2_u return dstSize; } =20 +#ifdef BUILD_DEAD_CODE size_t __init HUF_decompress1X2_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); @@ -225,6 +226,7 @@ size_t __init HUF_decompress1X2_usingDTa return ERROR(GENERIC); return HUF_decompress1X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } +#endif =20 size_t __init HUF_decompress1X2_DCtx_wksp(HUF_DTable *DCtx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { @@ -349,6 +351,7 @@ static size_t __init HUF_decompress4X2_u } } =20 +#ifdef BUILD_DEAD_CODE size_t __init HUF_decompress4X2_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); @@ -356,6 +359,7 @@ size_t __init HUF_decompress4X2_usingDTa return ERROR(GENERIC); return HUF_decompress4X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } +#endif =20 size_t __init HUF_decompress4X2_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { @@ -679,6 +683,7 @@ static size_t __init HUF_decompress1X4_u return dstSize; } =20 +#ifdef BUILD_DEAD_CODE size_t __init HUF_decompress1X4_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); @@ -701,6 +706,7 @@ size_t __init HUF_decompress1X4_DCtx_wks =20 return HUF_decompress1X4_usingDTable_internal(dst, dstSize, ip, cSrcSize,= DCtx); } +#endif =20 static size_t __init HUF_decompress4X4_usingDTable_internal(void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { @@ -812,6 +818,7 @@ static size_t __init HUF_decompress4X4_u } } =20 +#ifdef BUILD_DEAD_CODE size_t __init HUF_decompress4X4_usingDTable(void *dst, size_t dstSize, con= st void *cSrc, size_t cSrcSize, const HUF_DTable *DTable) { DTableDesc dtd =3D HUF_getDTableDesc(DTable); @@ -819,6 +826,7 @@ size_t __init HUF_decompress4X4_usingDTa return ERROR(GENERIC); return HUF_decompress4X4_usingDTable_internal(dst, dstSize, cSrc, cSrcSiz= e, DTable); } +#endif =20 size_t __init HUF_decompress4X4_DCtx_wksp(HUF_DTable *dctx, void *dst, siz= e_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t wor= kspaceSize) { @@ -896,6 +904,7 @@ U32 __init HUF_selectDecoder(size_t dstS =20 typedef size_t (*decompressionAlgo)(void *dst, size_t dstSize, const void = *cSrc, size_t cSrcSize); =20 +#ifdef BUILD_DEAD_CODE size_t __init HUF_decompress4X_DCtx_wksp(HUF_DTable *dctx, void *dst, size= _t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t work= spaceSize) { /* validation checks */ @@ -918,6 +927,7 @@ size_t __init HUF_decompress4X_DCtx_wksp : HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize,= workspace, workspaceSize); } } +#endif =20 size_t __init HUF_decompress4X_hufOnly_wksp(HUF_DTable *dctx, void *dst, s= ize_t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t w= orkspaceSize) { @@ -934,6 +944,7 @@ size_t __init HUF_decompress4X_hufOnly_w } } =20 +#ifdef BUILD_DEAD_CODE size_t __init HUF_decompress1X_DCtx_wksp(HUF_DTable *dctx, void *dst, size= _t dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t work= spaceSize) { /* validation checks */ @@ -956,3 +967,4 @@ size_t __init HUF_decompress1X_DCtx_wksp : HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize,= workspace, workspaceSize); } } +#endif --- a/xen/common/zstd/zstd_common.c +++ b/xen/common/zstd/zstd_common.c @@ -47,12 +47,14 @@ ZSTD_customMem __init ZSTD_initStack(voi return stackMem; } =20 +#ifdef BUILD_DEAD_CODE void *__init ZSTD_stackAllocAll(void *opaque, size_t *size) { ZSTD_stack *stack =3D (ZSTD_stack *)opaque; *size =3D (BYTE const *)stack->end - (BYTE *)ZSTD_PTR_ALIGN(stack->ptr); return stack_push(stack, *size); } +#endif =20 void *__init ZSTD_stackAlloc(void *opaque, size_t size) { --- a/xen/common/zstd/zstd_internal.h +++ b/xen/common/zstd/zstd_internal.h @@ -324,7 +324,7 @@ typedef struct { =20 const seqStore_t *ZSTD_getSeqStore(const ZSTD_CCtx *ctx); void ZSTD_seqToCodes(const seqStore_t *seqStorePtr); -int ZSTD_isSkipFrame(ZSTD_DCtx *dctx); +static int ZSTD_isSkipFrame(ZSTD_DCtx *dctx); =20 /*=3D Custom memory allocation functions */ typedef void *(*ZSTD_allocFunction)(void *opaque, size_t size); @@ -335,8 +335,8 @@ typedef struct { void *opaque; } ZSTD_customMem; =20 -void *ZSTD_malloc(size_t size, ZSTD_customMem customMem); -void ZSTD_free(void *ptr, ZSTD_customMem customMem); +static void *ZSTD_malloc(size_t size, ZSTD_customMem customMem); +static void ZSTD_free(void *ptr, ZSTD_customMem customMem); =20 /*=3D=3D=3D=3D=3D=3D stack allocation =3D=3D=3D=3D=3D=3D*/ =20 @@ -348,11 +348,11 @@ typedef struct { #define ZSTD_ALIGN(x) ALIGN(x, sizeof(size_t)) #define ZSTD_PTR_ALIGN(p) PTR_ALIGN(p, sizeof(size_t)) =20 -ZSTD_customMem ZSTD_initStack(void *workspace, size_t workspaceSize); +static ZSTD_customMem ZSTD_initStack(void *workspace, size_t workspaceSize= ); =20 void *ZSTD_stackAllocAll(void *opaque, size_t *size); -void *ZSTD_stackAlloc(void *opaque, size_t size); -void ZSTD_stackFree(void *opaque, void *address); +static void *ZSTD_stackAlloc(void *opaque, size_t size); +static void ZSTD_stackFree(void *opaque, void *address); =20 /*=3D=3D=3D=3D=3D=3D common function =3D=3D=3D=3D=3D=3D*/ =20 @@ -367,10 +367,10 @@ ZSTD_STATIC U32 ZSTD_highbit32(U32 val) void ZSTD_invalidateRepCodes(ZSTD_CCtx *cctx); =20 size_t ZSTD_freeCCtx(ZSTD_CCtx *cctx); -size_t ZSTD_freeDCtx(ZSTD_DCtx *dctx); +static size_t ZSTD_freeDCtx(ZSTD_DCtx *dctx); size_t ZSTD_freeCDict(ZSTD_CDict *cdict); -size_t ZSTD_freeDDict(ZSTD_DDict *cdict); +static size_t ZSTD_freeDDict(ZSTD_DDict *cdict); size_t ZSTD_freeCStream(ZSTD_CStream *zcs); -size_t ZSTD_freeDStream(ZSTD_DStream *zds); +static size_t ZSTD_freeDStream(ZSTD_DStream *zds); =20 #endif /* ZSTD_CCOMMON_H_MODULE */