Received: from list by lists.gnu.org with archive (Exim 4.71) id 1gCq9e-0005S7-4I for mharc-grub-devel@gnu.org; Wed, 17 Oct 2018 14:02:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40595) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCq9b-0005Qh-Rx for grub-devel@gnu.org; Wed, 17 Oct 2018 14:02:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gCq9b-00027d-1V for grub-devel@gnu.org; Wed, 17 Oct 2018 14:02:43 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:33882) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gCq9a-00024X-Nn for grub-devel@gnu.org; Wed, 17 Oct 2018 14:02:42 -0400 Received: by mail-wr1-x441.google.com with SMTP id l6-v6so30314248wrt.1 for ; Wed, 17 Oct 2018 11:02:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudflare.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EjG8oHEEO/7doYm1A7fvdvASPGST6S4IBx2tR0jYmUQ=; b=NLSgUqT6ABGqBZdUeSNDIsXfQDHHieD8kz3hFMsVbYC8ACh3tEV6bv4DYSoZrtCE2b Cwqq5KGouDC7sEr5TMcTX5iTwbGtKX708lOqXyT3CizpU8nGgmlfmV8TEgA6fXtYMSuK iLi/vhj6RcvV8pxKgwdfZ7HhWg7RFiFQN3jpg= 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; bh=EjG8oHEEO/7doYm1A7fvdvASPGST6S4IBx2tR0jYmUQ=; b=k+zREo32xms1ctRsSKVYciPTAXKYWfTm0R856YDwxylJtuiyoOGY89ReXVzrZslrgb pMrz2M+x+qKp+SZTrfemgonrjs7lDjqbZh9V9agvy8upY7Qt/WpZGUdPfR2uRzXuVleN fJ9chrk0G2j0gdAKarsSk6Fj0nY0hKjumxFaOwDYN9M9XJWZaeWxW7Fkg9JtgBxRMBQS rVxHDna74h3zeO6pKrSVnUawk7irgGmuOXdg5osVYBPLOCeJjaWbpwoz2sRIqaEwtNpW fKA9mD5gvHHDUXKSLhiowAcxkM3fkQGk3psdPABTMmoAPw6NqV2B7LFhYI9khBmTqBXI b0mQ== X-Gm-Message-State: ABuFfoi7D7jlCizbWYxNfl15vntH9WWFSfRFzaK7YI4kiHo/ONrvM7eR rsmAN/joOYQgKpnQSjEQtv6zHbMT25bGXQ== X-Google-Smtp-Source: ACcGV61Rzz06jQDRWbZS+IgXQRf58c1CDDCTda6Q2HoiwfYeFWyoBy6wXBfX0PlcBBTZQve0b3srlw== X-Received: by 2002:adf:8065:: with SMTP id 92-v6mr24267497wrk.23.1539799361433; Wed, 17 Oct 2018 11:02:41 -0700 (PDT) Received: from localhost.localdomain ([185.122.0.240]) by smtp.gmail.com with ESMTPSA id c21-v6sm3229864wmh.26.2018.10.17.11.02.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Oct 2018 11:02:40 -0700 (PDT) From: Ignat Korchagin To: grub-devel@gnu.org Cc: Ignat Korchagin Subject: [PATCH v2 1/2] efi: add function to read EFI variables with attributes Date: Wed, 17 Oct 2018 18:01:45 +0000 Message-Id: <20181017180146.18299-2-ignat@cloudflare.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181017180146.18299-1-ignat@cloudflare.com> References: <20181017145905.GE25306@router-fw-old.i.net-space.pl> <20181017180146.18299-1-ignat@cloudflare.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Oct 2018 18:02:44 -0000 Signed-off-by: Ignat Korchagin --- grub-core/kern/efi/efi.c | 13 +++++++++++-- include/grub/efi/efi.h | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index 708581fcb..5f7d1478f 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -224,7 +224,16 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, void * grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - grub_size_t *datasize_out) + grub_size_t *datasize_out) +{ + return grub_efi_get_variable_with_attributes (var, guid, datasize_out, NULL); +} + +void * +grub_efi_get_variable_with_attributes (const char *var, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + grub_efi_uint32_t *attributes) { grub_efi_status_t status; grub_efi_uintn_t datasize = 0; @@ -260,7 +269,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, return NULL; } - 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) diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h index 2c6648d46..727722797 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -77,6 +77,10 @@ grub_err_t EXPORT_FUNC (grub_efi_set_virtual_address_map) (grub_efi_uintn_t memo void *EXPORT_FUNC (grub_efi_get_variable) (const char *variable, const grub_efi_guid_t *guid, grub_size_t *datasize_out); +void *EXPORT_FUNC (grub_efi_get_variable_with_attributes) (const char *variable, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out, + grub_efi_uint32_t *attributes); grub_err_t EXPORT_FUNC (grub_efi_set_variable) (const char *var, const grub_efi_guid_t *guid, -- 2.11.0