From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by mx.groups.io with SMTP id smtpd.web11.50941.1658299677834576982 for ; Tue, 19 Jul 2022 23:47:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=p/WjQOER; spf=pass (domain: gmail.com, ip: 209.85.167.44, mailfrom: savvamtr@gmail.com) Received: by mail-lf1-f44.google.com with SMTP id y11so28674261lfs.6 for ; Tue, 19 Jul 2022 23:47:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tAq30tx60IItulcKBG03NqgKmfZ2o0WPAnjU8IZiRNE=; b=p/WjQOERAFbSHuxB6GbI2AZ+Z8Ae9dxc4XMuokO0Lhazdz8O/Xzqo8g2GyUNu6ym5t yJSKf018mCNPrWwo/bpJEhC3fB6YruwgmXBz+W5Q8XYk04wlh2xV8cCKad9taMGopjUk 5JiyARZlrJH+oHP7h+xH4CcYWgSGqbhyN6w8K+Ty8OWqRlUPqmIjVCb24bHHFLc/WN/l mwjMQF+DXts8xd6O3xWg3Foqg7qAJ9mjRhAL7JqOulnxTHekzv/KJ9tWlyDcObdOrHgn nqV3vWiXlDNtftkJW0Wwf00oQMq6v5nfkCoMck5kSq1ranLVeNNxPdS8fRQ7ZrTS06vc uejw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tAq30tx60IItulcKBG03NqgKmfZ2o0WPAnjU8IZiRNE=; b=P0LBjdUUTrhGUVrv9yl0hbFLrctBS4Y0Rg4shosLMdRIqqAk3bdJ3meRCNWY6jdb9I +eHDV2jjoEnTl0Pl5yOdtRsvErZorv+lO71/pe6bJDaM/UhYdWqul+rTrplMFKodhI7z SO5CfsEkiLzzAnsyR/4q2pXG36LkRJYoX23CekmGEMSP03Yxm1pmP+RxJYZQo9ceBDxE wOuTZ/qT92YsUo9mPfiK6Po//r9x5hxeM0MvwXVRFW37bE9VB9SpLD7GcW6SJuDCojzn 5WJ7iM51sXmAAOcZquo+vo03OpO+CydcK069KRDkPbj+aIpuF1oZRsGwNIolw+Fdqg5H 9xJQ== X-Gm-Message-State: AJIora8x4BfxL9kObJ468eTCJn3GUk6jvHXq3H0IVIvcAEAZeSKmhP/6 4bKxjS1LNd5+a9zjegNW3QjIMYaS9N75kAFOXQA= X-Google-Smtp-Source: AGRyM1u3oUvWTkbU2hMLimopU9Vz4eRF0JnOqhh5iIiLxFo1ddIhcLDwIGTbhSWinW3DPP9/FgbmMg== X-Received: by 2002:a05:6512:1598:b0:48a:4808:b3c6 with SMTP id bp24-20020a056512159800b0048a4808b3c6mr5518982lfb.465.1658299675962; Tue, 19 Jul 2022 23:47:55 -0700 (PDT) Return-Path: Received: from localhost.localdomain ([207.180.219.167]) by smtp.gmail.com with ESMTPSA id z14-20020a056512370e00b0047255d210easm3639036lfr.25.2022.07.19.23.47.54 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jul 2022 23:47:55 -0700 (PDT) From: "Savva Mitrofanov" To: devel@edk2.groups.io Cc: =?UTF-8?q?Marvin=20H=C3=A4user?= , Pedro Falcato , Vitaly Cheptsov Subject: [edk2-platforms][PATCH v2 2/2] Ext4Pkg: Add base containing record macro for EXT4_FILE Date: Wed, 20 Jul 2022 12:47:37 +0600 Message-Id: <20220720064737.41258-3-savvamtr@gmail.com> X-Mailer: git-send-email 2.37.0 In-Reply-To: <20220720064737.41258-1-savvamtr@gmail.com> References: <20220720064737.41258-1-savvamtr@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 --- 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 a1eb32aa2cff..3ff7b29e7133 100644 --- a/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h +++ b/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h @@ -383,6 +383,8 @@ struct _Ext4File { EXT4_DENTRY *Dentry;=0D };=0D =0D +#define EXT4_FILE_FROM_THIS(This) BASE_CR ((This), EXT4_FILE, Protocol)=0D +=0D #define EXT4_FILE_FROM_OPEN_FILES_NODE(Node) = \=0D BASE_CR(Node, EXT4_FILE, OpenFilesListNode)=0D =0D diff --git a/Features/Ext4Pkg/Ext4Dxe/File.c b/Features/Ext4Pkg/Ext4Dxe/Fil= e.c index 0fb9e05e6647..750397010443 100644 --- a/Features/Ext4Pkg/Ext4Dxe/File.c +++ b/Features/Ext4Pkg/Ext4Dxe/File.c @@ -568,7 +568,7 @@ Ext4Open ( EXT4_FILE *FoundFile;=0D EXT4_FILE *Source;=0D =0D - Source =3D (EXT4_FILE *)This;=0D + Source =3D EXT4_FILE_FROM_THIS (This);=0D =0D //=0D // Reset Symloops counter=0D @@ -605,7 +605,7 @@ Ext4Close ( IN EFI_FILE_PROTOCOL *This=0D )=0D {=0D - return Ext4CloseInternal ((EXT4_FILE *)This);=0D + return Ext4CloseInternal (EXT4_FILE_FROM_THIS (This));=0D }=0D =0D /**=0D @@ -686,7 +686,7 @@ Ext4ReadFile ( EXT4_PARTITION *Partition;=0D EFI_STATUS Status;=0D =0D - File =3D (EXT4_FILE *)This;=0D + File =3D EXT4_FILE_FROM_THIS (This);=0D Partition =3D File->Partition;=0D =0D ASSERT (Ext4FileIsOpenable (File));=0D @@ -737,7 +737,7 @@ Ext4WriteFile ( {=0D EXT4_FILE *File;=0D =0D - File =3D (EXT4_FILE *)This;=0D + File =3D EXT4_FILE_FROM_THIS (This);=0D =0D if (!(File->OpenMode & EFI_FILE_MODE_WRITE)) {=0D return EFI_ACCESS_DENIED;=0D @@ -767,7 +767,7 @@ Ext4GetPosition ( {=0D EXT4_FILE *File;=0D =0D - File =3D (EXT4_FILE *)This;=0D + File =3D EXT4_FILE_FROM_THIS (This);=0D =0D if (Ext4FileIsDir (File)) {=0D return EFI_UNSUPPORTED;=0D @@ -800,7 +800,7 @@ Ext4SetPosition ( {=0D EXT4_FILE *File;=0D =0D - File =3D (EXT4_FILE *)This;=0D + File =3D EXT4_FILE_FROM_THIS (This);=0D =0D // Only seeks to 0 (so it resets the ReadDir operation) are allowed=0D if (Ext4FileIsDir (File) && (Position !=3D 0)) {=0D @@ -1068,7 +1068,7 @@ Ext4GetInfo ( EXT4_FILE *File;=0D EXT4_PARTITION *Partition;=0D =0D - File =3D (EXT4_FILE *)This;=0D + File =3D EXT4_FILE_FROM_THIS (This);=0D Partition =3D File->Partition;=0D =0D if (CompareGuid (InformationType, &gEfiFileInfoGuid)) {=0D @@ -1185,7 +1185,7 @@ Ext4SetInfo ( EXT4_FILE *File;=0D EXT4_PARTITION *Partition;=0D =0D - File =3D (EXT4_FILE *)This;=0D + File =3D EXT4_FILE_FROM_THIS (This);=0D Partition =3D File->Partition;=0D =0D if (Partition->ReadOnly) {=0D --=20 2.37.0