On Mon, 12 Jul 2010, Jayachandran C. wrote:

Log:
 Move KSEG address definitions from cpu.h to cpuregs.h with the other
 definitions, add some  XKPHYS related definitions for n64.
This is a good start to cleaning up mips cpu.h. but far from complete.
cpu.h is for MD implementations of a few (about 10) MI interfaces.  Most
cpu.h's are about 2K long but the mips one is about 17K.

The arm one is the smallest, partly because it is missing a copyright, but
it still consists about half of things that shouldn't be in it.

The amd64 one is the most correct.  The only bugs in it are:
- lots of namespace pollution via nested includes.  Unfortunately a couple
  of things in the nested includes are needed to implement the macros in
  this file.
- COPY_SIGCODE is defined, but seems to have never been used in FreeBSD.
  4.4BSD had it in all cpu.h's and may even have used it in its <Body
  deleted> execve(), but FreeBSD only has it in a few cpu.h's and has no
  references to it in any other source file at any time.
- cpu_halt() and cpu_reset() have a MI interface and don't need to be
  implemented as a macro, so they should be declared in an MI place.
  Perhaps similarly for some other cpu_*() functions.  cpu_excec() and
  cpu_swapin() are now empty macros for amd64, but they could be empty
  functions.
- fork_trampoline() is are declared, but is not used by MI code (but is
  referred to in comments in MI code).
- swi_vm(): like cpu*_() but more MI.  Only missing busdma support
  for some archines makes it MD.  It is a callback function and cannot
  be a macro since its address is taken so that it can be called back to.

amd64 cpu.h ends up with definitions or declarations for:
- 3 things that need to be there
- 7 things that don't need to be there, but can reasonably be there
- 2 things that shouldn't be there
- 2 things that really shouldn't be there
- 1 thing that shouldn't be anywhere
- uncounted namespace pollution from the nested includes.

Bruce
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to