From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kkq7w-0004VS-7O for mharc-grub-devel@gnu.org; Thu, 03 Dec 2020 10:02:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45908) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkq7t-0004RP-DP for grub-devel@gnu.org; Thu, 03 Dec 2020 10:02:33 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:46302) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kkq7r-000235-Cj for grub-devel@gnu.org; Thu, 03 Dec 2020 10:02:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1607007750; h=from:from:reply-to:subject:subject: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=Kra1W7vm83DLNb2iAzuBti23Vfml5FP0cRsRKhqr/ek=; b=hqVp0tc0urU0MJ8/TYTZ+jfJjgXEzyHff/PZzWtT2jLzjzYSkTABxmxMqx6epmY9vlCI4T Ua2yycavmyjMmxGak8lZqn39AsLbHtakf1H4Su5RwLBVC8CE5cl2e0+Kb6+OBNIoIZW3uz tG/NOTpcAN6aNZiksvXB2uh/CCCeFYA= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-469-QIq0K9zbO8mcQ8MJ95bj8A-1; Thu, 03 Dec 2020 10:02:27 -0500 X-MC-Unique: QIq0K9zbO8mcQ8MJ95bj8A-1 Received: by mail-wr1-f70.google.com with SMTP id 91so1294527wrk.17 for ; Thu, 03 Dec 2020 07:02:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Kra1W7vm83DLNb2iAzuBti23Vfml5FP0cRsRKhqr/ek=; b=PP8BFUOnh45rpYvJBnWshq8wv0iadL7Jjh9M3i7JIaPPd2KZ8T2L2HHNn/gENpAOof 6gM9gweHxNfq34zvH1N6/RQLoXZC72szV9rAHn/XAlRTHR10XF+JwuEPpqjVPcWddB28 bIx8iRvv6fxMX5ceaVKh37vL7w5Xl0CbRPAuxrwGYMx82FgaYhidCYJ/TtMBhKMiSUpO h0ioYcANdrivITLhcoLgmluhcSruSc5+KbtYQM9p/jM2I6kcVV5IAu7nuP89wlb/xoN4 +8pfHSoXcsmvyE63CIKYb/ZYcXcKfkdOaLvbboyNg2PTq/Dzajyjf7SuX77TO2YjC6VV 3CDA== X-Gm-Message-State: AOAM533m+SgV7a9G52cnUGUFGPHQBUC6sTIUtbWM9QL7e0CkkQJlFLTX v18Qnzqi6lc5jEvLw0RsEAVzNHvpp4HF+kIva/RwsquTBKYTaocdGO42rqx+wq3tEYkRDhiduH8 t3h5U2JfSV3b4KLTS6ckq3F3ppmEMBcJ3qke3/hL63q7yW4oWKgVj9QPnbz28qA== X-Received: by 2002:adf:f0c3:: with SMTP id x3mr4092501wro.327.1607007745921; Thu, 03 Dec 2020 07:02:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJzAwcl+sroYJ/W9gz0pL+qWCkAZkJ+w4QnX7KWzz8DDCIcimiEPmMpaJpXVrSsl+S8OpaTPtA== X-Received: by 2002:adf:f0c3:: with SMTP id x3mr4092467wro.327.1607007745651; Thu, 03 Dec 2020 07:02:25 -0800 (PST) Received: from minerva.redhat.com ([92.176.231.106]) by smtp.gmail.com with ESMTPSA id n128sm1896759wmb.46.2020.12.03.07.02.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Dec 2020 07:02:24 -0800 (PST) From: Javier Martinez Canillas To: grub-devel@gnu.org Cc: Ignat Korchagin , Michael Chang , Peter Jones , Marco A Benatto , Leif Lindholm , Daniel Kiper , Javier Martinez Canillas Subject: [PATCH 6/9] efi: Add a function to read EFI variables with attributes Date: Thu, 3 Dec 2020 16:01:47 +0100 Message-Id: <20201203150151.848077-7-javierm@redhat.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201203150151.848077-1-javierm@redhat.com> References: <20201203150151.848077-1-javierm@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=javierm@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Received-SPF: pass client-ip=216.205.24.124; envelope-from=javierm@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -35 X-Spam_score: -3.6 X-Spam_bar: --- X-Spam_report: (-3.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.495, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Dec 2020 15:02:33 -0000 From: Daniel Kiper It will be used to properly detect and report UEFI Secure Boot status to the x86 Linux kernel. The functionality will be added by subsequent patches. Signed-off-by: Ignat Korchagin Signed-off-by: Daniel Kiper Signed-off-by: Marco A Benatto Signed-off-by: Javier Martinez Canillas --- grub-core/kern/efi/efi.c | 16 +++++++++++++--- include/grub/efi/efi.h | 5 +++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index 9403b12cd78..2942b8e355d 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -224,8 +224,11 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, } grub_efi_status_t -grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - grub_size_t *datasize_out, void **data_out) +grub_efi_get_variable_with_attributes (const char *var, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + void **data_out, + grub_efi_uint32_t *attributes) { grub_efi_status_t status; grub_efi_uintn_t datasize = 0; @@ -262,7 +265,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, return GRUB_EFI_OUT_OF_RESOURCES; } - status = efi_call_5 (r->get_variable, var16, guid, NULL, &datasize, data); + status = efi_call_5 (r->get_variable, var16, guid, attributes, &datasize, data); grub_free (var16); if (status == GRUB_EFI_SUCCESS) @@ -276,6 +279,13 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, return status; } +grub_efi_status_t +grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, + grub_size_t *datasize_out, void **data_out) +{ + return grub_efi_get_variable_with_attributes (var, guid, datasize_out, data_out, NULL); +} + #pragma GCC diagnostic ignored "-Wcast-align" /* Search the mods section from the PE32/PE32+ image. This code uses diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h index 8b2a0f1f590..83d958f9945 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -74,6 +74,11 @@ grub_err_t EXPORT_FUNC (grub_efi_set_virtual_address_map) (grub_efi_uintn_t memo grub_efi_uintn_t descriptor_size, grub_efi_uint32_t descriptor_version, grub_efi_memory_descriptor_t *virtual_map); +grub_efi_status_t EXPORT_FUNC (grub_efi_get_variable_with_attributes) (const char *variable, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + void **data_out, + grub_efi_uint32_t *attributes); grub_efi_status_t EXPORT_FUNC (grub_efi_get_variable) (const char *variable, const grub_efi_guid_t *guid, grub_size_t *datasize_out, -- 2.28.0