cvs commit: src/sys/dev/ofw openfirmio.c openfirmio.h

Marius Strobl marius at FreeBSD.org
Sat May 22 09:43:49 PDT 2004


marius      2004/05/22 09:43:42 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/ofw          openfirmio.c openfirmio.h 
  Log:
  - Move OFW_NAME_MAX, used as a limit for OFW property names and device
    identifiers, to openfirmio.h as OFIOCMAXNAME, so programs can use it
    for buffer sizes etc.
    Note: Although this is only a rough upper limit to make the code more
    robust and to prevent the allocation of ridiculous amounts of memory,
    the current limit of one page (8191 + '\0' in openfirm_getstr()) still
    appears a bit high. The maximum length of OFW property names is 31.
    I didn't find a maximum length for the device identifiers in the OFW
    documentation but it certainly is much smaller than 8191, too.
  - Enable the OFIOCSET ioctl, i.e. move it out from under #if 0.
  - Don't use openfirm_getstr() for the property value in OFIOCSET, there
    are also properties whose values aren't strings and it makes sense to
    use a different maximum length for property values than OFW_NAME_MAX/
    OFIOCMAXNAME. The maximum accepted property value is defined in
    openfirmio.h as OFIOCMAXVALUE (currently the maximum size of the value
    of the nvramrc property).
  - Make OFIOCSET not return EINVAL when OF_setprop() returns a different
    length for the written value than it was told to write, this is normal
    for the text string values of the properties in the OFW /options node.
    Instead, only return EINVAL if OF_setprop() returned -1 (value could
    not be written or property could not be created). Add a comment about
    the specialty of the OFW /options node.
  - Make OFIOCSET return the length of the written value returned by
    OF_setprop(), just like OF_getprop() does. Quite useful, at least for
    debugging.
  
  Reviewed by:    tmm
  
  Revision  Changes    Path
  1.10      +18 -10    src/sys/dev/ofw/openfirmio.c
  1.4       +6 -3      src/sys/dev/ofw/openfirmio.h


More information about the cvs-all mailing list