From nobody Mon Feb 9 10:47:52 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+93422+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+93422+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1662559354; cv=none; d=zohomail.com; s=zohoarc; b=Q2qGLf7SO1JmooBabUGJnIDAVW9QkHu+Yn97Pcum2UVIDSLd1hafylEAcbaF61fmpiG0yAK5G2Jd1KjKzdJHODhzq2kwBCqGcxtEemwepgPcD/Tl083UouzXNeYakJUgcpa9wp8LFppJ8nL3dBVWj18ewDsHQsdgWkvq3kYFTCc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1662559354; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=O3g/llICGMRdiJpGZx9DrYgHXaPuXdfWeKkNrwV6hxs=; b=HCOkBW3+0LklGiPUTeL5oo0iXGtangFpPqqqf9gWNi4e4mzhHYmlgraiO/6PDJUOazwv6LohXjrKOu0FCi7/2WYej2fP7VC/BoxySXZroNN+nLcYoO/JGgao2jFGbSr1GlqRRm8PpW1cIPFq3avuGA3L2pgMxXCcirHwC9tf794= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+93422+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 166255935485154.84012761765189; Wed, 7 Sep 2022 07:02:34 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id j5V7YY1788612x3Md6LNyGgi; Wed, 07 Sep 2022 07:02:34 -0700 X-Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) by mx.groups.io with SMTP id smtpd.web12.8124.1662559353599798596 for ; Wed, 07 Sep 2022 07:02:33 -0700 X-Received: by mail-lj1-f179.google.com with SMTP id by6so16063906ljb.11 for ; Wed, 07 Sep 2022 07:02:33 -0700 (PDT) X-Gm-Message-State: OmNNPwxgrKgnuHOUvxl6Ob6Qx1787277AA= X-Google-Smtp-Source: AA6agR7qZSHKTnAe3HN8rgd+2KF+KZ5qAS1UOKVUrEfi5or2VqZwihGsHbDDtjMESPdx/VAioOzZ4w== X-Received: by 2002:a2e:a448:0:b0:262:f7c4:31ad with SMTP id v8-20020a2ea448000000b00262f7c431admr1035408ljn.283.1662559351658; Wed, 07 Sep 2022 07:02:31 -0700 (PDT) X-Received: from localhost.localdomain ([176.59.149.223]) by smtp.gmail.com with ESMTPSA id o12-20020ac24e8c000000b0049482979fe0sm2506399lfr.179.2022.09.07.07.02.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Sep 2022 07:02:31 -0700 (PDT) From: "Savva Mitrofanov" To: devel@edk2.groups.io Cc: =?UTF-8?q?Marvin=20H=C3=A4user?= , Pedro Falcato , Vitaly Cheptsov Subject: [edk2-devel] [edk2-platforms][PATCH v5 2/2] Ext4Pkg: Add base containing record macro for EXT4_FILE Date: Wed, 7 Sep 2022 20:02:13 +0600 Message-Id: <20220907140213.13286-3-savvamtr@gmail.com> In-Reply-To: <20220907140213.13286-1-savvamtr@gmail.com> References: <20220907140213.13286-1-savvamtr@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,savvamtr@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1662559354; bh=TmsOWqeCDw9T0kDf4RT5ctmR+AEG9P4rxiqoLQV6PhU=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=aidyDY4xtMWTIXSR2iKG3v4okYEVwbLIL2A4GvchGYVNJPiTp+btkYzlJXl0DYQIX1a ciDmriiaUDjFU02Sjn74NU6tmAImxtnXiHLpwkYCFwkdVty5/cWzvk5ZvHv6tlRpz0FHD QQiJaBFEZhc2hAci87HAwdVgj6WH3uMKfl8= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1662559356388100005 Content-Type: text/plain; charset="utf-8" We shouldn't use direct casts, because in the future it could break the code, so using BASE_CR would be safe against possible structure changes and rearrangements Cc: Marvin H=C3=A4user Cc: Pedro Falcato Cc: Vitaly Cheptsov Signed-off-by: Savva Mitrofanov Reviewed-by: Marvin H=C3=A4user --- Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h | 2 ++ Features/Ext4Pkg/Ext4Dxe/File.c | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h b/Features/Ext4Pkg/Ext4Dxe/= Ext4Dxe.h index 6d352d3995f1..adf3c13f6ea9 100644 --- a/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h +++ b/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h @@ -386,6 +386,8 @@ struct _Ext4File { EXT4_DENTRY *Dentry; }; =20 +#define EXT4_FILE_FROM_THIS(This) BASE_CR ((This), EXT4_FILE, Protocol) + #define EXT4_FILE_FROM_OPEN_FILES_NODE(Node) = \ BASE_CR(Node, EXT4_FILE, OpenFilesListNode) =20 diff --git a/Features/Ext4Pkg/Ext4Dxe/File.c b/Features/Ext4Pkg/Ext4Dxe/Fil= e.c index 86ccfff8603a..04198a53bfc0 100644 --- a/Features/Ext4Pkg/Ext4Dxe/File.c +++ b/Features/Ext4Pkg/Ext4Dxe/File.c @@ -372,7 +372,7 @@ Ext4Open ( EXT4_FILE *FoundFile; EXT4_FILE *Source; =20 - Source =3D (EXT4_FILE *)This; + Source =3D EXT4_FILE_FROM_THIS (This); =20 // // Reset SymLoops counter @@ -409,7 +409,7 @@ Ext4Close ( IN EFI_FILE_PROTOCOL *This ) { - return Ext4CloseInternal ((EXT4_FILE *)This); + return Ext4CloseInternal (EXT4_FILE_FROM_THIS (This)); } =20 /** @@ -490,7 +490,7 @@ Ext4ReadFile ( EXT4_PARTITION *Partition; EFI_STATUS Status; =20 - File =3D (EXT4_FILE *)This; + File =3D EXT4_FILE_FROM_THIS (This); Partition =3D File->Partition; =20 ASSERT (Ext4FileIsOpenable (File)); @@ -541,7 +541,7 @@ Ext4WriteFile ( { EXT4_FILE *File; =20 - File =3D (EXT4_FILE *)This; + File =3D EXT4_FILE_FROM_THIS (This); =20 if (!(File->OpenMode & EFI_FILE_MODE_WRITE)) { return EFI_ACCESS_DENIED; @@ -571,7 +571,7 @@ Ext4GetPosition ( { EXT4_FILE *File; =20 - File =3D (EXT4_FILE *)This; + File =3D EXT4_FILE_FROM_THIS (This); =20 if (Ext4FileIsDir (File)) { return EFI_UNSUPPORTED; @@ -604,7 +604,7 @@ Ext4SetPosition ( { EXT4_FILE *File; =20 - File =3D (EXT4_FILE *)This; + File =3D EXT4_FILE_FROM_THIS (This); =20 // Only seeks to 0 (so it resets the ReadDir operation) are allowed if (Ext4FileIsDir (File) && (Position !=3D 0)) { @@ -872,7 +872,7 @@ Ext4GetInfo ( EXT4_FILE *File; EXT4_PARTITION *Partition; =20 - File =3D (EXT4_FILE *)This; + File =3D EXT4_FILE_FROM_THIS (This); Partition =3D File->Partition; =20 if (CompareGuid (InformationType, &gEfiFileInfoGuid)) { @@ -989,7 +989,7 @@ Ext4SetInfo ( EXT4_FILE *File; EXT4_PARTITION *Partition; =20 - File =3D (EXT4_FILE *)This; + File =3D EXT4_FILE_FROM_THIS (This); Partition =3D File->Partition; =20 if (Partition->ReadOnly) { --=20 2.37.3 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#93422): https://edk2.groups.io/g/devel/message/93422 Mute This Topic: https://groups.io/mt/93525494/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-