cvs commit: src/sys/arm/xscale/ixp425 ixp425_npe.c src/sys/dev/ipw if_ipw.c if_ipwvar.h src/sys/dev/isp isp_freebsd.h src/sys/dev/iwi if_iwi.c if_iwivar.h src/sys/dev/mxge if_mxge.c src/sys/kern subr_firmware.c src/sys/sys firmware.h src/sys/tools fw_stub.awk

Luigi Rizzo luigi at FreeBSD.org
Thu Feb 15 17:21:32 UTC 2007


luigi       2007-02-15 17:21:31 UTC

  FreeBSD src repository

  Modified files:
    sys/arm/xscale/ixp425 ixp425_npe.c 
    sys/dev/ipw          if_ipw.c if_ipwvar.h 
    sys/dev/isp          isp_freebsd.h 
    sys/dev/iwi          if_iwi.c if_iwivar.h 
    sys/dev/mxge         if_mxge.c 
    sys/kern             subr_firmware.c 
    sys/sys              firmware.h 
    sys/tools            fw_stub.awk 
  Log:
  Cleanup and document the implementation of firmware(9) based on
  a version that i posted earlier on the -current mailing list,
  and subsequent feedback received.
  
  The core of the change is just in sys/firmware.h and kern/subr_firmware.c,
  while other files are just adaptation of the clients to the ABI change
  (const-ification of some parameters and hiding of internal info,
  so this is fully compatible at the binary level).
  
  In detail:
  - reduce the amount of information exported to clients in struct firmware,
    and constify the pointer;
  
  - internally, document and simplify the implementation of the various
    functions, and make sure error conditions are dealt with properly.
  
  The diffs are large, but the code is really straightforward now (i hope).
  
  Note also that there is a subtle issue with the implementation of
  firmware_register(): currently, as in the previous version, we just
  store a reference to the 'imagename' argument, but we should rather
  copy it because there is no guarantee that this is a static string.
  I realised this while testing this code, but i prefer to fix it in
  a later commit -- there is no regression with respect to the past.
  
  Note, too, that the version in RELENG_6 has various bugs including
  missing locks around the module release calls, mishandling of modules
  loaded by /boot/loader, and so on, so an MFC is absolutely necessary
  there.  I was just postponing it until this cleanup to avoid doing
  things twice.
  
  MFC after: 1 week
  
  Revision  Changes    Path
  1.2       +1 -1      src/sys/arm/xscale/ixp425/ixp425_npe.c
  1.23      +1 -1      src/sys/dev/ipw/if_ipw.c
  1.6       +1 -1      src/sys/dev/ipw/if_ipwvar.h
  1.99      +1 -1      src/sys/dev/isp/isp_freebsd.h
  1.46      +2 -2      src/sys/dev/iwi/if_iwi.c
  1.12      +1 -1      src/sys/dev/iwi/if_iwivar.h
  1.21      +1 -1      src/sys/dev/mxge/if_mxge.c
  1.9       +272 -153  src/sys/kern/subr_firmware.c
  1.4       +15 -16    src/sys/sys/firmware.h
  1.4       +1 -1      src/sys/tools/fw_stub.awk


More information about the cvs-src mailing list