Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/arch/atari/stand/installboot
christos@ wrote:
> On Nov 14, 2:43am, tsutsui%ceres.dti.ne.jp@localhost (Izumi Tsutsui) wrote:
> -- Subject: Re: CVS commit: src/sys/arch/atari/stand/installboot
>
> | christos@ wrote:
> |
> | > Module Name: src
> | > Committed By: christos
> | > Date: Thu Nov 13 17:19:29 UTC 2014
> | >
> | > Modified Files:
> | > src/sys/arch/atari/stand/installboot: installboot.c
> | >
> | > Log Message:
> | > fix strict aliasing violations
> |
> | > - *((u_int16_t *)bb->bb_xxboot + 255) = 0;
> | > - *((u_int16_t *)bb->bb_xxboot + 255) = 0x1234 - abcksum(bb->bb_xxboot);
> | > + sum = 0;
> | > + memcpy(bb->bb_xxboot + 255, &sum, sizeof(sum));
> | > + sum = 0x1234 - abcksum(bb->bb_xxboot);
> | > + memcpy(bb->bb_xxboot + 255, &sum, sizeof(sum));
> |
> | I doubt your "bb->bb_xxboot + 255" is the same place
> | as the original "(u_int16_t *)bb->bb_xxboot + 255"
> | (the cksum word looks at the end of 512 byte sector).
> |
> | memcpy(9) looks also awful for readers because it hides endianness..
>
> Let me fix it,
"Test it (or call for testers) before commit"
because installboot could be fatal on install floppy and bootstrap.
> but memcpy is the only way.
- cast via (void *)
- union {uint16_t w[256]; struct bootblock bbp;}
- be16enc(9)
etc?
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index