NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-vax/58261
The following reply was made to PR port-vax/58261; it has been noted by GNATS.
From: Johnny Billquist <bqt%softjar.se@localhost>
To: David Brownlee <abs%absd.org@localhost>, matthew green <mrg%eterna23.net@localhost>
Cc: port-vax-maintainer%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost, ncommander@restless.systems, gnats-bugs%netbsd.org@localhost,
port-vax List <port-vax%netbsd.org@localhost>
Subject: Re: port-vax/58261
Date: Mon, 10 Jun 2024 00:29:32 +0200
On 2024-06-10 00:18, David Brownlee wrote:
> On Sun, 9 Jun 2024 at 19:37, matthew green <mrg%eterna23.net@localhost> wrote:
>>
>> magic numbers could be named, "vax_cpudata & 0xff" could become a
>> macro (GET_SIE_MICROCODE_VER(x)?)
>
> Sometimes the ucode rev is in 0xff (which is accessed sometimes as "&
> 0xff", "& 0377", and my favourite "% 0377" :), and sometimes the
> hardware3 rev is in 0xff, and ucode rev in 0xff00. Its common enough
> that I think it's worth a macro, with a /* usually, not always */
> comment
If anyone did "% 0377" that would be a bug. It's a different thing.
However, if they did "% 0400" it would be fine, and I would suspect the
compiler would reduce that to an AND (or actually a BICL in VAX
assembly) in the end anyway.
> Actually, looking again I really rather like the approach in
> vax/ka780.c:345 - create a bitflag struct for sid
>
> struct ka78x {
> unsigned snr:12,
> plant:3,
> eco:8,
> v785:1,
> type:8;
> };
>
> and then use
>
> aprint_normal(": KA%s, S/N %d(%d), hardware ECO level %d(%d)\n",
> cpu_getmodel() + 7, ka78->snr, ka78->plant, ka78->eco >>
> 4, ka78->eco);
I do agree that using a bitfield is a very reasonable approach for this,
and I did the same for the ka86. But looking at the quoted lines above,
I really think eco should be split in two parts instead of the shifting.
That seems just silly, if that really is two different numbers to the eco.
Also, cpu_getmodel() returns a string, and then 7 is added to that
pointer. That seems rather horrible coding, and I think that should also
be cleaned up a bit. But that's not really a part of your work, so I
wouldn't worry about that here.
However, again - I think changing to use bitfields for these kind of
things make the code much cleaner.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt%softjar.se@localhost || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Home |
Main Index |
Thread Index |
Old Index