From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1aY6F0-0007R0-B3 for mharc-grub-devel@gnu.org; Tue, 23 Feb 2016 01:14:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36170) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aY6Et-0007Pn-P0 for grub-devel@gnu.org; Tue, 23 Feb 2016 01:14:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aY6Eo-0004x5-P5 for grub-devel@gnu.org; Tue, 23 Feb 2016 01:14:27 -0500 Received: from mail-lf0-x234.google.com ([2a00:1450:4010:c07::234]:33231) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aY6Eo-0004x0-DB for grub-devel@gnu.org; Tue, 23 Feb 2016 01:14:22 -0500 Received: by mail-lf0-x234.google.com with SMTP id m1so109574637lfg.0 for ; Mon, 22 Feb 2016 22:14:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=4YiVqr6vOwuIDtGEWzqQ1Wgc6iPyMezAu9uNxF+fshE=; b=qQ8l281HGra8f3G8tHMDH8XqnIzQhK71hCRs6JPYkDfuiQPni1uJ4Sh8UJa67hgBf/ L4GPv0283am1mqgHSqVJuPvIKwgq5TEgBAheINgQe1voeUTPjZqY9DDRxe4ALwyEU1pT 4hh0cjtisCZi94srOPNymk1TqNaYEwBtmS6ThHffQ33nH+hpGGOAVRtbCGNDr1pUzAvS gHjnxYPLIxtIANxX8BTsYjCkE/e1y0bL/PuGPpBfcI+seb3fkLZ4bEq7EocCanMGq6Cy 9L1sA/9fUaOT4EpEJVxei0qMXs17Bg+dz+Z6Uk6vc69ULd20cyCSanL02pnIyM0AgDXj 09Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=4YiVqr6vOwuIDtGEWzqQ1Wgc6iPyMezAu9uNxF+fshE=; b=C5hFygrNpFerhxe2gqvQG4Eq5OHMwcb9Hdv0AwkCuuINdeqJKwSQTTg0TtP3j1Z//4 61ru3E6nlVUBpq/FaT8pWKPrk7ZlQ/lkRugYEbDb1vnd7iyZbhPL1y5lUnFrrjmi9Lw9 7CO1MzQ8sFqV9pJZJU5nEyEpqj7C/tsavOOowXXaS1TgxwG7U/jrz0JnFM0gxu4lnnuY q1Q2+8BEFANH55ffw6NbO1QCWz1OwCxlyYvUQeKogr1vzwsXN/ylZMtvkte4iS+Iocpi QrXjqEA0H90OLWvz6d5VeeWnlC5QSAcF0LPnkL83KcShfFmcTSPe7GTiL+YUEH8zgvT/ moHQ== X-Gm-Message-State: AG10YOQSleJOAQWMp3qGd8C5tbJcFVvdDjPnjAdyDShOedaWEZLqywIWJF7O3Gv6nLYvnw== X-Received: by 10.25.151.135 with SMTP id z129mr9617036lfd.122.1456208061698; Mon, 22 Feb 2016 22:14:21 -0800 (PST) Received: from [192.168.1.41] (ppp109-252-76-159.pppoe.spdop.ru. [109.252.76.159]) by smtp.gmail.com with ESMTPSA id i186sm2996636lfb.30.2016.02.22.22.14.20 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 22 Feb 2016 22:14:20 -0800 (PST) Subject: Re: multiboot_mmap_entry.zero isn't zero To: Wink Saville , The development of GNU GRUB References: <56C028E2.5000502@gmail.com> From: Andrei Borzenkov Message-ID: <56CBF8BB.6020201@gmail.com> Date: Tue, 23 Feb 2016 09:14:19 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c07::234 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Feb 2016 06:14:32 -0000 14.02.2016 14:24, Wink Saville пишет: > I'm using multiboot2 and I see a zero field in grub/include/multiboot2.h: > > struct multiboot_mmap_entry > { > multiboot_uint64_t addr; > multiboot_uint64_t len; > #define MULTIBOOT_MEMORY_AVAILABLE 1 > #define MULTIBOOT_MEMORY_RESERVED 2 > #define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE 3 > #define MULTIBOOT_MEMORY_NVS 4 > #define MULTIBOOT_MEMORY_BADRAM 5 > multiboot_uint32_t type; > multiboot_uint32_t zero; > } GRUB_PACKED; > typedef struct multiboot_mmap_entry multiboot_memory_map_t; > OK, I pushed fix (although documentation also says OS should ignore this field :) ) > > Although in grub/include/multiboot.h it does not exist: > > struct multiboot_mmap_entry > { > multiboot_uint32_t size; > multiboot_uint64_t addr; > multiboot_uint64_t len; > #define MULTIBOOT_MEMORY_AVAILABLE 1 > #define MULTIBOOT_MEMORY_RESERVED 2 > #define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE 3 > #define MULTIBOOT_MEMORY_NVS 4 > #define MULTIBOOT_MEMORY_BADRAM 5 > multiboot_uint32_t type; > } GRUB_PACKED; > typedef struct multiboot_mmap_entry multiboot_memory_map_t; > > > On Sat, Feb 13, 2016 at 11:12 PM, Andrei Borzenkov wrote: >> 14.02.2016 00:20, Wink Saville пишет: >>> I'm processing multiboot_tag_mmap and the multiboot_mmap_entry.zero >>> isn't zero. As best as I can tell grub isn't initializing it. Here is >>> the code from grub-core/loader/i386/multiboot_mbi.c: >>> >>> /* Helper for grub_fill_multiboot_mmap. */ >>> static int >>> grub_fill_multiboot_mmap_iter (grub_uint64_t addr, grub_uint64_t size, >>> grub_memory_type_t type, void *data) >>> { >>> struct multiboot_mmap_entry **mmap_entry = data; >>> >>> (*mmap_entry)->addr = addr; >>> (*mmap_entry)->len = size; >>> (*mmap_entry)->type = type; >>> (*mmap_entry)->size = sizeof (struct multiboot_mmap_entry) - sizeof >>> ((*mmap_entry)->size); >>> (*mmap_entry)++; >>> >>> return 0; >>> } >>> >>> And similar code in grub-core/loader/multiboot_mbi2.c: >>> >>> /* Helper for grub_fill_multiboot_mmap. */ >>> static int >>> grub_fill_multiboot_mmap_iter (grub_uint64_t addr, grub_uint64_t size, >>> grub_memory_type_t type, void *data) >>> { >>> struct multiboot_mmap_entry **mmap_entry = data; >>> >>> (*mmap_entry)->addr = addr; >>> (*mmap_entry)->len = size; >>> (*mmap_entry)->type = type; >>> (*mmap_entry)++; >>> >>> return 0; >>> } >>> >>> And I'd expect to see: >>> >>> (*mmap_entry)->zero = 0; >>> >>> Is there a reason its not being zeroed? >>> >> >> Because it does not exist? >> >> >> _______________________________________________ >> Grub-devel mailing list >> Grub-devel@gnu.org >> https://lists.gnu.org/mailman/listinfo/grub-devel