Deleted Added
full compact
ata_da.c (220886) ata_da.c (221071)
1/*-
2 * Copyright (c) 2009 Alexander Motin <mav@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2009 Alexander Motin <mav@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/cam/ata/ata_da.c 220886 2011-04-20 13:27:50Z mav $");
28__FBSDID("$FreeBSD: head/sys/cam/ata/ata_da.c 221071 2011-04-26 17:01:49Z mav $");
29
30#include "opt_ada.h"
29
30#include "opt_ada.h"
31#include "opt_ata.h"
31
32#include <sys/param.h>
33
34#ifdef _KERNEL
35#include <sys/systm.h>
36#include <sys/kernel.h>
37#include <sys/bio.h>
38#include <sys/sysctl.h>

--- 139 unchanged lines hidden (view full) ---

178 u_int32_t sense_flags);
179static void adagetparams(struct cam_periph *periph,
180 struct ccb_getdev *cgd);
181static timeout_t adasendorderedtag;
182static void adashutdown(void *arg, int howto);
183static void adasuspend(void *arg);
184static void adaresume(void *arg);
185
32
33#include <sys/param.h>
34
35#ifdef _KERNEL
36#include <sys/systm.h>
37#include <sys/kernel.h>
38#include <sys/bio.h>
39#include <sys/sysctl.h>

--- 139 unchanged lines hidden (view full) ---

179 u_int32_t sense_flags);
180static void adagetparams(struct cam_periph *periph,
181 struct ccb_getdev *cgd);
182static timeout_t adasendorderedtag;
183static void adashutdown(void *arg, int howto);
184static void adasuspend(void *arg);
185static void adaresume(void *arg);
186
187#ifndef ADA_DEFAULT_LEGACY_ALIASES
188#ifdef ATA_CAM
189#define ADA_DEFAULT_LEGACY_ALIASES 1
190#else
191#define ADA_DEFAULT_LEGACY_ALIASES 0
192#endif
193#endif
194
186#ifndef ADA_DEFAULT_TIMEOUT
187#define ADA_DEFAULT_TIMEOUT 30 /* Timeout in seconds */
188#endif
189
190#ifndef ADA_DEFAULT_RETRY
191#define ADA_DEFAULT_RETRY 4
192#endif
193

--- 16 unchanged lines hidden (view full) ---

210/*
211 * Most platforms map firmware geometry to actual, but some don't. If
212 * not overridden, default to nothing.
213 */
214#ifndef ata_disk_firmware_geom_adjust
215#define ata_disk_firmware_geom_adjust(disk)
216#endif
217
195#ifndef ADA_DEFAULT_TIMEOUT
196#define ADA_DEFAULT_TIMEOUT 30 /* Timeout in seconds */
197#endif
198
199#ifndef ADA_DEFAULT_RETRY
200#define ADA_DEFAULT_RETRY 4
201#endif
202

--- 16 unchanged lines hidden (view full) ---

219/*
220 * Most platforms map firmware geometry to actual, but some don't. If
221 * not overridden, default to nothing.
222 */
223#ifndef ata_disk_firmware_geom_adjust
224#define ata_disk_firmware_geom_adjust(disk)
225#endif
226
227static int ada_legacy_aliases = ADA_DEFAULT_LEGACY_ALIASES;
218static int ada_retry_count = ADA_DEFAULT_RETRY;
219static int ada_default_timeout = ADA_DEFAULT_TIMEOUT;
220static int ada_send_ordered = ADA_DEFAULT_SEND_ORDERED;
221static int ada_spindown_shutdown = ADA_DEFAULT_SPINDOWN_SHUTDOWN;
222static int ada_spindown_suspend = ADA_DEFAULT_SPINDOWN_SUSPEND;
223static int ada_write_cache = ADA_DEFAULT_WRITE_CACHE;
224
225SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD, 0,
226 "CAM Direct Access Disk driver");
228static int ada_retry_count = ADA_DEFAULT_RETRY;
229static int ada_default_timeout = ADA_DEFAULT_TIMEOUT;
230static int ada_send_ordered = ADA_DEFAULT_SEND_ORDERED;
231static int ada_spindown_shutdown = ADA_DEFAULT_SPINDOWN_SHUTDOWN;
232static int ada_spindown_suspend = ADA_DEFAULT_SPINDOWN_SUSPEND;
233static int ada_write_cache = ADA_DEFAULT_WRITE_CACHE;
234
235SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD, 0,
236 "CAM Direct Access Disk driver");
237SYSCTL_INT(_kern_cam_ada, OID_AUTO, legacy_aliases, CTLFLAG_RW,
238 &ada_legacy_aliases, 0, "Create legacy-like device aliases");
239TUNABLE_INT("kern.cam.ada.legacy_aliases", &ada_legacy_aliases);
227SYSCTL_INT(_kern_cam_ada, OID_AUTO, retry_count, CTLFLAG_RW,
228 &ada_retry_count, 0, "Normal I/O retry count");
229TUNABLE_INT("kern.cam.ada.retry_count", &ada_retry_count);
230SYSCTL_INT(_kern_cam_ada, OID_AUTO, default_timeout, CTLFLAG_RW,
231 &ada_default_timeout, 0, "Normal I/O timeout (in seconds)");
232TUNABLE_INT("kern.cam.ada.default_timeout", &ada_default_timeout);
233SYSCTL_INT(_kern_cam_ada, OID_AUTO, ada_send_ordered, CTLFLAG_RW,
234 &ada_send_ordered, 0, "Send Ordered Tags");

--- 483 unchanged lines hidden (view full) ---

718}
719
720static cam_status
721adaregister(struct cam_periph *periph, void *arg)
722{
723 struct ada_softc *softc;
724 struct ccb_pathinq cpi;
725 struct ccb_getdev *cgd;
240SYSCTL_INT(_kern_cam_ada, OID_AUTO, retry_count, CTLFLAG_RW,
241 &ada_retry_count, 0, "Normal I/O retry count");
242TUNABLE_INT("kern.cam.ada.retry_count", &ada_retry_count);
243SYSCTL_INT(_kern_cam_ada, OID_AUTO, default_timeout, CTLFLAG_RW,
244 &ada_default_timeout, 0, "Normal I/O timeout (in seconds)");
245TUNABLE_INT("kern.cam.ada.default_timeout", &ada_default_timeout);
246SYSCTL_INT(_kern_cam_ada, OID_AUTO, ada_send_ordered, CTLFLAG_RW,
247 &ada_send_ordered, 0, "Send Ordered Tags");

--- 483 unchanged lines hidden (view full) ---

731}
732
733static cam_status
734adaregister(struct cam_periph *periph, void *arg)
735{
736 struct ada_softc *softc;
737 struct ccb_pathinq cpi;
738 struct ccb_getdev *cgd;
726 char announce_buf[80];
739 char announce_buf[80], buf1[32];
727 struct disk_params *dp;
728 caddr_t match;
729 u_int maxio;
740 struct disk_params *dp;
741 caddr_t match;
742 u_int maxio;
743 int legacy_id;
730
731 cgd = (struct ccb_getdev *)arg;
732 if (periph == NULL) {
733 printf("adaregister: periph was NULL!!\n");
734 return(CAM_REQ_CMP_ERR);
735 }
736
737 if (cgd == NULL) {

--- 118 unchanged lines hidden (view full) ---

856 softc->disk->d_stripeoffset = (softc->disk->d_stripesize -
857 ata_logical_sector_offset(&cgd->ident_data)) %
858 softc->disk->d_stripesize;
859 }
860 softc->disk->d_fwsectors = softc->params.secs_per_track;
861 softc->disk->d_fwheads = softc->params.heads;
862 ata_disk_firmware_geom_adjust(softc->disk);
863
744
745 cgd = (struct ccb_getdev *)arg;
746 if (periph == NULL) {
747 printf("adaregister: periph was NULL!!\n");
748 return(CAM_REQ_CMP_ERR);
749 }
750
751 if (cgd == NULL) {

--- 118 unchanged lines hidden (view full) ---

870 softc->disk->d_stripeoffset = (softc->disk->d_stripesize -
871 ata_logical_sector_offset(&cgd->ident_data)) %
872 softc->disk->d_stripesize;
873 }
874 softc->disk->d_fwsectors = softc->params.secs_per_track;
875 softc->disk->d_fwheads = softc->params.heads;
876 ata_disk_firmware_geom_adjust(softc->disk);
877
878 if (ada_legacy_aliases) {
879#ifdef ATA_STATIC_ID
880 legacy_id = xpt_path_legacy_ata_id(periph->path);
881#else
882 legacy_id = softc->disk->d_unit;
883#endif
884 if (legacy_id >= 0) {
885 snprintf(announce_buf, sizeof(announce_buf),
886 "kern.devalias.%s%d",
887 softc->disk->d_name, softc->disk->d_unit);
888 snprintf(buf1, sizeof(buf1),
889 "ad%d", legacy_id);
890 setenv(announce_buf, buf1);
891 }
892 } else
893 legacy_id = -1;
864 disk_create(softc->disk, DISK_VERSION);
865 mtx_lock(periph->sim->mtx);
866 cam_periph_unhold(periph);
867
868 dp = &softc->params;
869 snprintf(announce_buf, sizeof(announce_buf),
870 "%juMB (%ju %u byte sectors: %dH %dS/T %dC)",
871 (uintmax_t)(((uintmax_t)dp->secsize *
872 dp->sectors) / (1024*1024)),
873 (uintmax_t)dp->sectors,
874 dp->secsize, dp->heads,
875 dp->secs_per_track, dp->cylinders);
876 xpt_announce_periph(periph, announce_buf);
894 disk_create(softc->disk, DISK_VERSION);
895 mtx_lock(periph->sim->mtx);
896 cam_periph_unhold(periph);
897
898 dp = &softc->params;
899 snprintf(announce_buf, sizeof(announce_buf),
900 "%juMB (%ju %u byte sectors: %dH %dS/T %dC)",
901 (uintmax_t)(((uintmax_t)dp->secsize *
902 dp->sectors) / (1024*1024)),
903 (uintmax_t)dp->sectors,
904 dp->secsize, dp->heads,
905 dp->secs_per_track, dp->cylinders);
906 xpt_announce_periph(periph, announce_buf);
907 if (legacy_id >= 0)
908 printf("%s%d: Previously was known as ad%d\n",
909 periph->periph_name, periph->unit_number, legacy_id);
877
878 /*
879 * Create our sysctl variables, now that we know
880 * we have successfully attached.
881 */
882 cam_periph_acquire(periph);
883 taskqueue_enqueue(taskqueue_thread, &softc->sysctl_task);
884

--- 664 unchanged lines hidden ---
910
911 /*
912 * Create our sysctl variables, now that we know
913 * we have successfully attached.
914 */
915 cam_periph_acquire(periph);
916 taskqueue_enqueue(taskqueue_thread, &softc->sysctl_task);
917

--- 664 unchanged lines hidden ---