grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux/ADFS partition table support


From: Marco Gerards
Subject: Re: Linux/ADFS partition table support
Date: Sun, 13 Nov 2005 17:03:38 +0100
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Timothy Baldwin <address@hidden> writes:

> On Thursday 20 Oct 2005 15:47, Timothy Baldwin wrote:
>> Here is support for Linux/ADFS partition tables, which is used for Linux
>> partitions on discs connected to the motherboard interface of systems which
>> run RISC OS.  Since it shares a structure with the RISC OS disc API, that
>> has been separated into a header file.
>
> Revised for current CVS + 64-bit disk address support. Changelog as before.

Please include the Changelog entry every time you send in a patch,
otherwise I can't reply to in the a single mail.  I've included it
this time

2005-10-20  Timothy Baldwin  <address@hidden>

        Add support for Linux/ADFS partition tables.

        * partmap/acorn.c: New file.

        * include/grub/acorn_filecore.h: Likewise.

I would prefer to move this to partmap/acorn.c.  Or do you have to use
this struct elsewhere?


If you reply to this email about what needs to be changed, I could do
it before committing the patch, if there are not that many changes
required.  I will also change it so it will work with my latest
commit.

>  static inline grub_disk_addr_t
> diff -purN -x '*.mk' -x '*~' -x autom4te.cache -x configure -x '.#*' -x 
> '*.orig' -x '*.rej' -x CVS grub2-submitted/partmap/acorn.c 
> grub2-work/partmap/acorn.c
> --- grub2-submitted/partmap/acorn.c   1970-01-01 01:00:00.000000000 +0100
> +++ grub2-work/partmap/acorn.c        2005-11-08 18:57:40.000000000 +0000

[...]

> +#include <stddef.h>

Why do you include stddef?  I really want to avoid this.

> +
> +#define LINUX_NATIVE_MAGIC grub_cpu_to_le32 (0xdeafa1de)
> +#define LINUX_SWAP_MAGIC   grub_cpu_to_le32 (0xdeafab1e)
> +#define LINUX_MAP_ENTRIES  (512 / 12)
> +
> +struct grub_acorn_boot_block
> +{
> +  grub_uint8_t misc[0x1C0];
> +  struct grub_filecore_disc_record disc_record;
> +  grub_uint8_t flags;
> +  grub_uint16_t start_cylinder;
> +  grub_uint8_t checksum;
> +} __attribute__ ((packed, aligned));

What is aligned?  Insn't it the opposite of packed?

> +static grub_err_t
> +find (grub_disk_t disk, struct linux_part *m, unsigned *sector)
> +{
> +  int i;
> +  struct grub_acorn_boot_block boot;
> +  grub_err_t err = grub_disk_read (disk, 0xC00 / GRUB_DISK_SECTOR_SIZE, 0,
> +                                sizeof (struct grub_acorn_boot_block),
> +                                &boot);
> +  if (err)
> +    return err;
> +
> +  if ((boot.flags & 15) != 9)
> +    goto fail;

What is 15 and 9?  Can you please create macro's for such values?

> +/* Partition map type.  */
> +static struct grub_partition_map grub_acorn_partition_map = {

Please put the opening brace on a separate line.

Thanks,
Marco





reply via email to

[Prev in Thread] Current Thread [Next in Thread]