Re: git: da5d0a1dbc28 - main - kboot: Use unsigned long long.
- In reply to: Hans Petter Selasky : "Re: git: da5d0a1dbc28 - main - kboot: Use unsigned long long."
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 03 Dec 2022 16:06:41 UTC
On Sat, Dec 3, 2022 at 5:31 AM Hans Petter Selasky <hps@selasky.org> wrote: > On 12/2/22 20:49, Warner Losh wrote: > > The branch main has been updated by imp: > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=da5d0a1dbc2838eae7033254705c684d7a013fce > > > > commit da5d0a1dbc2838eae7033254705c684d7a013fce > > Author: Warner Losh <imp@FreeBSD.org> > > AuthorDate: 2022-12-02 19:41:01 +0000 > > Commit: Warner Losh <imp@FreeBSD.org> > > CommitDate: 2022-12-02 19:41:01 +0000 > > > > kboot: Use unsigned long long. > > > > For the 64-bit platforms, this is a nop. Currently kboot only > supports > > 64-bit platforms, though. If we support 32-bit in the future, this > will > > become important. > > > > Noticed by: rpokala > > Sponsored by: Netflix > > --- > > stand/kboot/util.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/stand/kboot/util.c b/stand/kboot/util.c > > index 938aad599e19..7d467a29b059 100644 > > --- a/stand/kboot/util.c > > +++ b/stand/kboot/util.c > > @@ -35,7 +35,7 @@ file2str(const char *fn, char *buffer, size_t buflen) > > bool > > file2u64(const char *fn, uint64_t *val) > > { > > - unsigned long v; > > + unsigned long long v; > > char buffer[80]; > > > > if (!file2str(fn, buffer, sizeof(buffer))) > > Why not include stdint.h and use uint64_t ? > > Instead of building on the good old assumptions, int is 32-bit and long > long is 64-bit? It is interesting to observe the sizes of these types in > 8-bit compilers :-) Not that it makes a big difference for us. Maybe > _Static_assert(sizeof(long long) == 8, "Please fix this code"); > The code was wrong because I called strtoull and assigned it to an unsigned long, not an unsigned long long. On 64-bit platforms, long and long long are the same. Long long being > 8 bytes is fine for this interface: it only returns 64 bits. And we assume this all over the place. Warner