From nobody Sat May 10 12:24:35 2025 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org; Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 148731285589347.47196403597991; Thu, 16 Feb 2017 22:27:35 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coresystems.de) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1cec0d-0004MF-6S; Fri, 17 Feb 2017 07:27:11 +0100 Received: from mail-oi0-f49.google.com ([209.85.218.49]) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86_2) (envelope-from ) id 1cec0M-0004IY-JN for seabios@seabios.org; Fri, 17 Feb 2017 07:27:09 +0100 Received: by mail-oi0-f49.google.com with SMTP id u143so20023917oif.3 for ; Thu, 16 Feb 2017 22:26:54 -0800 (PST) Received: from Arrow.corp.skyportsystems.com (76-236-31-201.lightspeed.sntcca.sbcglobal.net. [76.236.31.201]) by smtp.gmail.com with ESMTPSA id 76sm4096050otf.21.2017.02.16.22.26.51 (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 16 Feb 2017 22:26:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skyportsystems.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=uzJytUXggJWZcuR8bPGL1iUBAOEcphCSAtLdZjZhJks=; b=GGcKdMjLunvrs/eBHzVMK/Ga2C6WqHWXSe3vyfw6yS8HS7qNFI6rvHUw3EkgK26gz2 NfXO88RakkZyqhPQsx4O6y33fhnRCRNsvoNxfmLZa7UZQshoJlKJvNibR+33qM2P80qg iU0JaWIyham7/gkDCdUU1fwRokhUpR6/kXswI= 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:in-reply-to:references; bh=uzJytUXggJWZcuR8bPGL1iUBAOEcphCSAtLdZjZhJks=; b=pwVm8zLB+t9bKdiKq43sdI3KCzLwg77BwD9bXgUZTnsZ2y/3qMMGxl9ZNZOk8yJcZS eZ0bjN8kFm4TMTpNxe9FbskPoilrMsUywq5vLlJufcOGN9pDm6s/a6gG/4ViOFXMneVq 8iHJvxMd+0QMg9AvlYt9Z8cXKnBG1m/rPjuezYeGijC/BJLZVRkmL9l4WZj3MjNb6XXF N4lRO7UlX6q1kK2CmENI9Fhmnd5bz27vyFpepGdtAdQ+J+ZOVE9R4NJINwoFIr7gW+Ph Y6po3cTyUpGGq+kFWCtSsdEVs+o8auY2WVHr9RC6/oRdr1qJsh6MU2UZDyMVcaRX/lOT 359w== X-Gm-Message-State: AMke39lL8Nr3rXrD0PzOsU46Dh6osc3kZqHYlJei6Z2+0uCvUAyqKmKmVHhP3p2a4RPM5X4d X-Received: by 10.202.240.70 with SMTP id o67mr3495812oih.195.1487312812309; Thu, 16 Feb 2017 22:26:52 -0800 (PST) From: ben@skyportsystems.com To: seabios@seabios.org Date: Thu, 16 Feb 2017 22:26:39 -0800 Message-Id: <4453385f599275aa464426e2a292f833dcb013e0.1487312143.git.ben@skyportsystems.com> X-Mailer: git-send-email 2.10.1 (Apple Git-78) In-Reply-To: References: In-Reply-To: References: X-Spam-Score: -1.2 (-) Subject: [SeaBIOS] [PATCH v4 2/3] romfile-loader: Switch to using named structs X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lersek@redhat.com, mst@redhat.com MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ben Warren This is a little cleaner and matches how the command structures are defined in QEMU. Signed-off-by: Ben Warren Reviewed-by: Laszlo Ersek --- src/fw/romfile_loader.c | 34 +++++++++++++++++----------------- src/fw/romfile_loader.h | 40 ++++++++++++++++++++-------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/fw/romfile_loader.c b/src/fw/romfile_loader.c index f4b17ff..7737453 100644 --- a/src/fw/romfile_loader.c +++ b/src/fw/romfile_loader.c @@ -35,12 +35,12 @@ static void romfile_loader_allocate(struct romfile_load= er_entry_s *entry, struct romfile_loader_file *file =3D &files->files[files->nfiles]; void *data; int ret; - unsigned alloc_align =3D le32_to_cpu(entry->alloc_align); + unsigned alloc_align =3D le32_to_cpu(entry->alloc.align); =20 if (alloc_align & (alloc_align - 1)) goto err; =20 - switch (entry->alloc_zone) { + switch (entry->alloc.zone) { case ROMFILE_LOADER_ALLOC_ZONE_HIGH: zone =3D &ZoneHigh; break; @@ -52,9 +52,9 @@ static void romfile_loader_allocate(struct romfile_loader= _entry_s *entry, } if (alloc_align < MALLOC_MIN_ALIGN) alloc_align =3D MALLOC_MIN_ALIGN; - if (entry->alloc_file[ROMFILE_LOADER_FILESZ - 1]) + if (entry->alloc.file[ROMFILE_LOADER_FILESZ - 1]) goto err; - file->file =3D romfile_find(entry->alloc_file); + file->file =3D romfile_find(entry->alloc.file); if (!file->file || !file->file->size) return; data =3D _malloc(zone, file->file->size, alloc_align); @@ -80,24 +80,24 @@ static void romfile_loader_add_pointer(struct romfile_l= oader_entry_s *entry, { struct romfile_loader_file *dest_file; struct romfile_loader_file *src_file; - unsigned offset =3D le32_to_cpu(entry->pointer_offset); + unsigned offset =3D le32_to_cpu(entry->pointer.offset); u64 pointer =3D 0; =20 - dest_file =3D romfile_loader_find(entry->pointer_dest_file, files); - src_file =3D romfile_loader_find(entry->pointer_src_file, files); + dest_file =3D romfile_loader_find(entry->pointer.dest_file, files); + src_file =3D romfile_loader_find(entry->pointer.src_file, files); =20 if (!dest_file || !src_file || !dest_file->data || !src_file->data || - offset + entry->pointer_size < offset || - offset + entry->pointer_size > dest_file->file->size || - entry->pointer_size < 1 || entry->pointer_size > 8 || - entry->pointer_size & (entry->pointer_size - 1)) + offset + entry->pointer.size < offset || + offset + entry->pointer.size > dest_file->file->size || + entry->pointer.size < 1 || entry->pointer.size > 8 || + entry->pointer.size & (entry->pointer.size - 1)) goto err; =20 - memcpy(&pointer, dest_file->data + offset, entry->pointer_size); + memcpy(&pointer, dest_file->data + offset, entry->pointer.size); pointer =3D le64_to_cpu(pointer); pointer +=3D (unsigned long)src_file->data; pointer =3D cpu_to_le64(pointer); - memcpy(dest_file->data + offset, &pointer, entry->pointer_size); + memcpy(dest_file->data + offset, &pointer, entry->pointer.size); =20 return; err: @@ -108,12 +108,12 @@ static void romfile_loader_add_checksum(struct romfil= e_loader_entry_s *entry, struct romfile_loader_files *files) { struct romfile_loader_file *file; - unsigned offset =3D le32_to_cpu(entry->cksum_offset); - unsigned start =3D le32_to_cpu(entry->cksum_start); - unsigned len =3D le32_to_cpu(entry->cksum_length); + unsigned offset =3D le32_to_cpu(entry->cksum.offset); + unsigned start =3D le32_to_cpu(entry->cksum.start); + unsigned len =3D le32_to_cpu(entry->cksum.length); u8 *data; =20 - file =3D romfile_loader_find(entry->cksum_file, files); + file =3D romfile_loader_find(entry->cksum.file, files); =20 if (!file || !file->data || offset >=3D file->file->size || start + len < start || start + len > file->file->size) diff --git a/src/fw/romfile_loader.h b/src/fw/romfile_loader.h index 15eab2a..bce3719 100644 --- a/src/fw/romfile_loader.h +++ b/src/fw/romfile_loader.h @@ -11,45 +11,45 @@ struct romfile_loader_entry_s { u32 command; union { /* - * COMMAND_ALLOCATE - allocate a table from @alloc_file - * subject to @alloc_align alignment (must be power of 2) - * and @alloc_zone (can be HIGH or FSEG) requirements. + * COMMAND_ALLOCATE - allocate a table from @alloc.file + * subject to @alloc.align alignment (must be power of 2) + * and @alloc.zone (can be HIGH or FSEG) requirements. * * Must appear exactly once for each file, and before * this file is referenced by any other command. */ struct { - char alloc_file[ROMFILE_LOADER_FILESZ]; - u32 alloc_align; - u8 alloc_zone; - }; + char file[ROMFILE_LOADER_FILESZ]; + u32 align; + u8 zone; + } alloc; =20 /* * COMMAND_ADD_POINTER - patch the table (originating from - * @dest_file) at @pointer_offset, by adding a pointer to the table + * @dest_file) at @pointer.offset, by adding a pointer to the table * originating from @src_file. 1,2,4 or 8 byte unsigned - * addition is used depending on @pointer_size. + * addition is used depending on @pointer.size. */ struct { - char pointer_dest_file[ROMFILE_LOADER_FILESZ]; - char pointer_src_file[ROMFILE_LOADER_FILESZ]; - u32 pointer_offset; - u8 pointer_size; - }; + char dest_file[ROMFILE_LOADER_FILESZ]; + char src_file[ROMFILE_LOADER_FILESZ]; + u32 offset; + u8 size; + } pointer; =20 /* * COMMAND_ADD_CHECKSUM - calculate checksum of the range specifie= d by - * @cksum_start and @cksum_length fields, + * @cksum.start and @cksum.length fields, * and then add the value at @cksum_offset. * Checksum simply sums -X for each byte X in the range * using 8-bit math. */ struct { - char cksum_file[ROMFILE_LOADER_FILESZ]; - u32 cksum_offset; - u32 cksum_start; - u32 cksum_length; - }; + char file[ROMFILE_LOADER_FILESZ]; + u32 offset; + u32 start; + u32 length; + } cksum; =20 /* padding */ char pad[124]; --=20 2.7.4 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://www.coreboot.org/mailman/listinfo/seabios