From patchwork Tue Jun 27 21:20:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Indu Bhagat X-Patchwork-Id: 113615 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp8479095vqr; Tue, 27 Jun 2023 14:23:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6B9pno7/HYX/asva4aIvqH/ZciE0KDCuB5PBtm1wrNJhHvt8Q4os+gXketUAlPUBmQflhB X-Received: by 2002:a17:907:2bd1:b0:991:37d2:c9ea with SMTP id gv17-20020a1709072bd100b0099137d2c9eamr4884276ejc.6.1687901031466; Tue, 27 Jun 2023 14:23:51 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id k13-20020a17090646cd00b00987781f7205si4814576ejs.910.2023.06.27.14.23.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jun 2023 14:23:51 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=lQFtUm8y; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 072633856251 for ; Tue, 27 Jun 2023 21:22:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 072633856251 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1687900943; bh=UcNYvBFUFPmG5VC2EQk0tCnU+veIHwRvkechnxFuFIc=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=lQFtUm8yNlbE07Yu2x+ZTl3NP71OSEtEbJVLlKIUd/yXM6/42bCWHAseoiQyGW7Cb S7ew8CGqb9oBNrOuP976mMByozCDshxMkaMeM1xxraBPa/g67RuOCA2UQCa+HsVvs3 8eHo4u2JdyQgU2Ws5p1+oZQQf2+JPqjNHX/ei5mg= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 7A0573858298 for ; Tue, 27 Jun 2023 21:21:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7A0573858298 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35RIeJUO016381 for ; Tue, 27 Jun 2023 21:21:04 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rdq9363s5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 27 Jun 2023 21:21:03 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35RKohQK013113 for ; Tue, 27 Jun 2023 21:21:02 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2043.outbound.protection.outlook.com [104.47.73.43]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rdpx5d0sf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 27 Jun 2023 21:21:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ht3DVNYVCxNEQB4bxQ/veYqCgexbHeFfNNpEU9TWcgHq4mfHu9qYS7X05UY9yFEgMEMNAWCjc/PYgzfcxPsqVI05l8io4XSpivJUX3cmg/ZX85+lNT/zX1dTNczu3TFcUnvuBKo5pt9Qr2KGOf6n8jvag2hRAmdPGX56mwCMW0F6cLhqLHLBHHZBONrGPpmE8sxiDNl5vkAENdlhnUT0TORMoMXOypfFwtp9uAFMCQbvJjoaC91lyyyESfs8RO/TxIUI3BsDSQByHxW6IwoAYOG8unZ2g734WfSBDwSZ3QUxcV/blmBuCOMuJWDsb9ekZHKskP/KlZ713Tw1sLDb/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UcNYvBFUFPmG5VC2EQk0tCnU+veIHwRvkechnxFuFIc=; b=dX+yJ8B9W+QdK+1Hy4Qki2B53oKZS7q9HQ6SqDJjo3g4SnpvTp1t+f+Uo6HxF2GyHe2jPMUhxB1uJ+n2Rz86GFN/9f9WQL2iB1mbF4Vs9O4wbKpDIwOoINWQh2JRseDkqARWzS3HV1Uj3PxXEjkUwHrsdFWO0Uh2JL7+GWzDXs3KkvlIMkQsF7XLCAA+1rNnBegeiL2rBDKNxcq5mhfvv6HGbBvz1LlSiiBzs/1ipaQ/IoM5WPLuWbLeahXpgxsgWSkjmWKS02HjeOkmBg/YtEYB4pObMEFNZ7R/ewfjImbMfkRiyVY62FJbp+05WmLUwebeVKSEudLn4M/772GT6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by SA2PR10MB4602.namprd10.prod.outlook.com (2603:10b6:806:f8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Tue, 27 Jun 2023 21:20:58 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fdbb:b921:1ef:2d44]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fdbb:b921:1ef:2d44%4]) with mapi id 15.20.6521.026; Tue, 27 Jun 2023 21:20:58 +0000 To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH 03/12] libsframe: add new APIs to get SFrame version Date: Tue, 27 Jun 2023 14:20:19 -0700 Message-Id: <20230627212028.2138604-4-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230627212028.2138604-1-indu.bhagat@oracle.com> References: <20230627212028.2138604-1-indu.bhagat@oracle.com> X-ClientProxiedBy: MW4PR04CA0316.namprd04.prod.outlook.com (2603:10b6:303:82::21) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|SA2PR10MB4602:EE_ X-MS-Office365-Filtering-Correlation-Id: 472bda4a-75e4-49a1-b41e-08db7754668b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1565BOGIbJ9tFvhGw0RKxmAnAeCuPUfVmrjnrF+lEGYnpjzNLrYntSxRFV7PtIXf1S0G2ZrTHv4PGE8zvqvU7IO24bcuDz9os78iij7RJCK0tz0C5D5Xj6tIuU3brYI7ieTAZLp5/UtJWV/hktpCUw7LK5tR4Hxqkr1bscmNM0fwURL3UIfK5uWEM2hVh9AxdTTmzxrcTUuYejGdM7smX/u0HbaIyXyDQT2gDJFQv2+LhTSPqvlGSJiYv3721kgL6X4dYvieuMFSJtFbWvoGl13Kgyr2SbiVv7OATMmp1EeQBaYPgl+J9b4gVw5etN3Ag4lWa111ND3ptEkY1mc4jBHlrGwciHycYEqTG8TeQRCTn9hcWSbImktofPVrG6stilhxPHl8CDnxhrBVRStdOlRdiABmdm6yK0CXRB7k3DqOnLUZn+k7cg+A5raoRJEo1XvbS+n0ypKI/Us9wafjm3swec/HbuFBGactnSdjQd4PX3J31ATvQJmsdk+EKkS70pqeLdt/zUbxnsv0o6hwoW/v92HQUG19BRywB0uUD0BH4Te87ONY/bQBqrVcRd1A X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(366004)(39860400002)(376002)(396003)(136003)(451199021)(38100700002)(86362001)(107886003)(1076003)(6506007)(5660300002)(6512007)(66476007)(66556008)(66946007)(44832011)(2616005)(186003)(26005)(6916009)(478600001)(2906002)(8676002)(4326008)(316002)(6666004)(8936002)(6486002)(41300700001)(83380400001)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VpGxDKC2jyarH2i93YeZVPNM9eXBk0TUN+DejgwcnARnADPVyeTjruv5gIKykbHqqbUqJbcM3bcl9HC5GGNJH7m10qLqW7lbSOgvfQZve6nMS0X4qvJnHfOV9Rtm8TcECRm2EAGOhmTbwSQ1KTM+mEW3JdJgte+RIKHyDA6qafAx7SQUhh98Af2l5kK5QXeppWpWWBLwfRzHp6hJ1jrg9Ualgh//ozYdxU7fKjWoj5Fa2mOngOxwUTOH53S02Z7U3Dtool4c9F25nzm+P14R0otUqCHCv6kKaasn49ggOw4lsoA9AmF8F/aF9BJYkC1w2AgBglR1GOET+ZGf3ud6YBvRXuLQkHnZwL/ucvPt4zyq4tpne8IrqKlU7TjwBFxIPskSN1YYBUyXkOn6NJSqZN7OOOtZSZqWr+/TTo3X23K6w0t74mLPgtGf15Qj4EmhYBqOILyvUDm4tLx08X35ihea9DQ3awIJ8aed7DC761HNSQ5KpoBd7PUQ55NHOB7tsHnkdxLl9t9kyQVFhw52ts3ZFLAAsbc00KCJ97DeCaCQi63XGd5OM7xzRRQM4d0HZvE6njoEsC5Xrm+JZXXi/9cPDI7eAxOUxBbNvxvLUqs5+tq3Owl2QyoNY2xZJ7xxg3cRHIU7/iaiguirsMTpIa7kgjROxcfKGi41fbk4LCSjtnrRTNeU1+IjC8KcZRu5x+LMcF0Z78eK4OGdXEOp5rvVy46uf0xjnrfuoosIzTS6hlVaMf53/1pf9WluWIiANN2soIn5tgJ/tHG/FeUECdcXsJFesDPIsliFJyyavpaZ22GXPqHB/UObSilYShsEBg9NNyA6BfbSB60ytzVetypM1zgC2r+HSEpm4bPH1PkJDHxZ3yztdETGkBg2hU0v9SbjyizH5t3EclnWoBNCAwPL4X6wSKSD/tIXZaAi/v/7IjojBDMbjWsK54MAld/VWxKvkX0ydh9jRfB+7Z77X2Bw1dK+IhYttYa88Z/BUmGkm8kFDJQSYC8jUlmedgCsJi3Eq24tj7gOvBUJcFWrYkCwgEcvI/UNpyVVwbqIkyxfriqQ6m31Va6KgVAIcIbWmSVo0yteumuFfRTqkJccxjca31MJM5zo4tTgBmQXmFd301Fp5VkZx1ebkbXkcc5Ri6rEjeTKasYJgij8RHXiT0b+0z7AXWPvNc8pHc/hO53ESJRIAff/30MWo0AjC6qd2m0lYNXl2FPKNdVwmkByyLZTE8WJXqVvO6EYpkgoWvBV4HjXZw8gKjRzdJdqdIjnHVDn9S5Zr3QysriODmK1eqRu7HZeGUxGj+EwrjNgzcsoXUwBD0qnQjRvANbPWS8ZSuim7EaO48jOXRAWebb7WoN3E4b2X12uUyNFyNFyBRgH/r6IH6zz5m69f+OkWmcxRBD0mpG5YNCKLkBZtdAPhkURwe+S9gbcUTF/Y7ssWAnknVFmcA6Byn9Uxr72b5TnJJoRqY2ghR6HAvKTc4qGtNPJzbLLOdqwL2bH3/ZZ+sr7AB31VQR2HDmPBnotxxFZ6yB2AabPJZZq+Kp1R82DgTZ1UP+7Ji33KmkvKnaWX8ClANvhG9+r2qvY1EmK3TZV X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VHXrVRH488iLH7qGWO4jkOKRWbDOLz85sZFwTNbakZgY2ieKeYlxt/LH+rxbiMOz7UH7GJpKcxr/hvFB6tGr+SsTBVHElto7YNmFkxBi+0P7usXUrhqPpJE5dPWdplg5tKluUs43wy2+UsfSOAi9nSYgTYqXMXbAmuZiWlomTKcXDsjQzNYJWP1peEHL8UCGI1HdLW2+hdJUyInw+r7op3WcUUFkcZCgyK6IGb7k4568Kn/Y+u17t8WSTKrDJqEmvIHUSwUmvIPQUoZ+R9+ofxqlE79+988BVTno8WgLMebnaCc3PV8hHkSj5ghV5Fqem+gvlakv8NR3DVvlak8Qay06o2NTe9zaOsHXLTeJMULT1p7IKRN04cftNCle0c6jQWt4mYMvuROypdOAIRldFFrtygn+RUFEWsNuqxlYO6cho/m0ms5SZKoC0fsf0G9lRgde/d8G1o/LvYKzgz/9VJigz2h2dqJvfH2gd9F2gMXr/IaBZMp0kO4jl/pLAAlYBftsBvcpp1OiH/VPaB5+rJA0xzrgefM3iBgoqYZDzTi6zpGmelSyvJ3akJJGVe/MeNgJkW27/mSrdwhzzlmMdKeV54IQE8t5jhFthbE28dgdCwClBAIxnI5oAI/EBkck62xP/wM8A15kIHkXtOzJ75k73blGNdFQSqkZpA2wVgl6USk+Kb05EqHW6pi0UX5cBdsX77c77M+fL8Khyb2+UH9wM5eG1POdLRLRLFYrYmA7aU3m/0l5QtNpOFwcKH29 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 472bda4a-75e4-49a1-b41e-08db7754668b X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 21:20:58.6199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qe766ZqvXClYtzOaA0ffqqHTIayi5dL4lzXyAH5/odYJhR3/seUsHEJDAhUWC/eX92UyaZsXM56tQv1dyOH3ew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4602 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-27_14,2023-06-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxscore=0 phishscore=0 malwarescore=0 mlxlogscore=955 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306270194 X-Proofpoint-ORIG-GUID: X8RyFU_GuoiyoZ32BcK1M_hn6pEa1S8t X-Proofpoint-GUID: X8RyFU_GuoiyoZ32BcK1M_hn6pEa1S8t X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Indu Bhagat via Binutils From: Indu Bhagat Reply-To: Indu Bhagat Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769892512023836976?= X-GMAIL-MSGID: =?utf-8?q?1769892512023836976?= While the SFrame preamble is guaranteed to not change between versions, providing these access APIs from the SFrame decoder and encoder APIs is for convenience only. The linker may want to use these APIs as the format evolves. include/ * sframe-api.h (sframe_decoder_get_version): New declaration. (sframe_encoder_get_version): Likewise. libsframe/ * libsframe/libsframe.ver: Add new APIs. * libsframe/sframe.c (sframe_decoder_get_version): New definition. (sframe_encoder_get_version): Likewise. --- include/sframe-api.h | 8 ++++++++ libsframe/libsframe.ver | 2 ++ libsframe/sframe.c | 20 ++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/include/sframe-api.h b/include/sframe-api.h index 7594011a48f..7883b668e31 100644 --- a/include/sframe-api.h +++ b/include/sframe-api.h @@ -120,6 +120,10 @@ sframe_decoder_get_hdr_size (sframe_decoder_ctx *dctx); extern uint8_t sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx); +/* Get the format version from the SFrame decoder context DCTX. */ +extern uint8_t +sframe_decoder_get_version (sframe_decoder_ctx *dctx); + /* Return the number of function descriptor entries in the SFrame decoder DCTX. */ extern uint32_t @@ -217,6 +221,10 @@ sframe_encoder_get_hdr_size (sframe_encoder_ctx *encoder); extern uint8_t sframe_encoder_get_abi_arch (sframe_encoder_ctx *encoder); +/* Get the format version from the SFrame encoder context ENCODER. */ +extern uint8_t +sframe_encoder_get_version (sframe_encoder_ctx *encoder); + /* Return the number of function descriptor entries in the SFrame encoder ENCODER. */ extern uint32_t diff --git a/libsframe/libsframe.ver b/libsframe/libsframe.ver index 2c2081f311a..3e2a5695e93 100644 --- a/libsframe/libsframe.ver +++ b/libsframe/libsframe.ver @@ -13,6 +13,7 @@ LIBSFRAME_1.0 { sframe_decode; sframe_decoder_get_hdr_size; sframe_decoder_get_abi_arch; + sframe_decoder_get_version; sframe_decoder_get_fixed_fp_offset; sframe_decoder_get_fixed_ra_offset; sframe_get_funcdesc_with_addr; @@ -24,6 +25,7 @@ LIBSFRAME_1.0 { sframe_encoder_free; sframe_encoder_get_hdr_size; sframe_encoder_get_abi_arch; + sframe_encoder_get_version; sframe_encoder_get_num_fidx; sframe_encoder_add_fre; sframe_encoder_add_funcdesc; diff --git a/libsframe/sframe.c b/libsframe/sframe.c index fd966cfffd4..cb73a0ca87f 100644 --- a/libsframe/sframe.c +++ b/libsframe/sframe.c @@ -988,6 +988,16 @@ sframe_decoder_get_abi_arch (sframe_decoder_ctx *dctx) return sframe_header->sfh_abi_arch; } +/* Get the format version from the SFrame decoder context DCTX. */ + +uint8_t +sframe_decoder_get_version (sframe_decoder_ctx *dctx) +{ + sframe_header *dhp; + dhp = sframe_decoder_get_header (dctx); + return dhp->sfh_preamble.sfp_version; +} + /* Get the SFrame's fixed FP offset given the decoder context CTX. */ int8_t sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *ctx) @@ -1368,6 +1378,16 @@ sframe_encoder_get_abi_arch (sframe_encoder_ctx *encoder) return abi_arch; } +/* Get the format version from the SFrame encoder context ENCODER. */ + +uint8_t +sframe_encoder_get_version (sframe_encoder_ctx *encoder) +{ + sframe_header *ehp; + ehp = sframe_encoder_get_header (encoder); + return ehp->sfh_preamble.sfp_version; +} + /* Return the number of function descriptor entries in the SFrame encoder ENCODER. */