Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jun 2011 14:53:17 +0000 (UTC)
From:      "Justin T. Gibbs" <gibbs@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sbin/camcontrol camcontrol.c src/sys/cam cam_ccb.h cam_periph.c cam_periph.h cam_xpt.c cam_xpt.h cam_xpt_internal.h src/sys/cam/scsi scsi_all.c scsi_all.h scsi_pass.c scsi_xpt.c
Message-ID:  <201106141454.p5EEsX5S092693@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
gibbs       2011-06-14 14:53:17 UTC

  FreeBSD src repository

  Modified files:
    sbin/camcontrol      camcontrol.c 
    sys/cam              cam_ccb.h cam_periph.c cam_periph.h 
                         cam_xpt.c cam_xpt.h cam_xpt_internal.h 
    sys/cam/scsi         scsi_all.c scsi_all.h scsi_pass.c 
                         scsi_xpt.c 
  Log:
  SVN rev 223081 on 2011-06-14 14:53:17Z by gibbs
  
  Lay groundwork in CAM for recording and reporting physical path and
  other device attributes stored in the CAM Existing Device Table (EDT).
  This includes some infrastructure requried by the enclosure services
  driver to export physical path information.
  
  Make the CAM device advanced info interface accept store requests.
  
    sys/cam/scsi/scsi_all.c:
    sys/cam/scsi/scsi_all.h:
          - Replace scsi_get_sas_addr() with a scsi_get_devid() which takes
            a callback that decides whether to accept a particular descriptor.
            Provide callbacks for NAA IEEE Registered addresses and for SAS
            addresses, replacing the old function.  This is needed because
            the old function doesn't work for an enclosure address for a SAS
            device, which is not flagged as a SAS address, but is NAA IEEE
            Registered.  It may be worthwhile merging this interface with the
            devid match interface.
          - Add a few more defines for some device ID fields.
  
    sbin/camcontrol/camcontrol.c:
          - Update for the CCB_DEV_ADVINFO interface change.
  
    cam/cam_xpt_internal.h:
          - Add the new fields for the physical path string to the CAM EDT.
    cam/cam_ccb.h:
          - Rename CCB_GDEV_ADVINFO to simply CCB_DEV_ADVINFO, and the ccb
            structure to ccb_dev_advinfo.
          - Add a flag that changes this CCB's action to store, rather than
            the default, retrieve.
          - Add a new buffer type, CDAI_TYPE_PHYS_PATH, for the new CAM EDT
            physpath field.
          - Remove the never-implemented transport & proto flags.
    cam/cam_xpt.c:
    cam/cam_xpt.h:
          - Add xpt_getattr(), which provides a wrapper for fetching a device's
            attribute using the GEOM strings as key.  This method currently
            supports "GEOM::ident" and "GEOM::physpath".
  
  Submitted by: will
  Reviewed by : gibbs
  
  Extend the XPT_DEV_MATCH api to allow a device search by device ID.
  As far as the API is concerned, device ID is a binary blob to be
  interpreted by the transport layer.  The SCSI implementation assumes
  it is an array of VPD device ID descriptors.
  
    sys/cam/cam_ccb.h:
          Create a new structure, device_id_match_pattern, and
          update the XPT_DEV_MATCH datastructures and flags so
          that this pattern type can be used.
  
    sys/cam/cam_xpt.c:
          - A single pattern matching on both inquiry data and device
            ID is invalid.  Report any violators.
          - Pass device ID match requests through to the new routine
            scsi_devid_match().  The direct call of a SCSI routine is
            a layering violation, but no worse than the one a few
            lines up that checks inquiry data.  Defer cleaning this
            up until our future, larger, rototilling of CAM.
          - Zero out cam_ed and cam_et nodes on allocation.  Prior to
            this change, device_id_len and device_id were not inialized,
            preventing proper detection of the presence of this
            information.
  
    sys/cam/scsi/scsi_all.c:
    sys/cam/scsi/scsi_all.h:
          Add the scsi_match_devid() routine.
  
  Add a helper function for extracting peripherial driver names
  
    sys/cam/cam_periph.c:
    sys/cam/cam_periph.h:
          Add the cam_periph_list() method which fills an sbuf
          with a comma delimited list of the peripheral instances
          associated with a given CAM path.
  
  Add a helper functions for SCSI commands used by the SES driver.
  
    sys/cam/scsi/scsi_all.c:
    sys/cam/scsi/scsi_all.h:
          Add structure definitions and csio filling functions for
          the receive diagnostic results and send diagnostic commands.
  
  Misc CAM XPT cleanups.
  
    sys/cam/cam_xpt.c:
          Broadcast AC_FOUND_DEVICE and AC_PATH_REGISTERED
          events at the time async event handlers are attached
          even when registering just for events on a partitular
          SIM.  Previously, you had to register for these
          events on all SIMs in the system in order to get
          the initial broadcast even though subsequent device
          and path arrivals would be delivered.
  
    sys/cam/cam_xpt.c:
          Remove SIM mutex held asserts from path accessors.
          CAM paths are reference counted and it is this
          reference count, not the sim mutex, that garantees
          they are stable.
  
  Sponsored by: Spectra Logic Corporation
  
  Revision  Changes    Path
  1.86      +10 -9     src/sbin/camcontrol/camcontrol.c
  1.51      +25 -14    src/sys/cam/cam_ccb.h
  1.96      +39 -6     src/sys/cam/cam_periph.c
  1.25      +8 -0      src/sys/cam/cam_periph.h
  1.262     +86 -43    src/sys/cam/cam_xpt.c
  1.13      +2 -0      src/sys/cam/cam_xpt.h
  1.10      +2 -0      src/sys/cam/cam_xpt_internal.h
  1.60      +182 -21   src/sys/cam/scsi/scsi_all.c
  1.37      +54 -13    src/sys/cam/scsi/scsi_all.h
  1.60      +2 -2      src/sys/cam/scsi/scsi_pass.c
  1.14      +65 -15    src/sys/cam/scsi/scsi_xpt.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106141454.p5EEsX5S092693>