From 59d8f1005b65ef8ad2c9ce040497daf81dd65085 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 17 Nov 2013 14:26:56 -0800 Subject: 4335 need a mechanism to detect solid state storage devices Reviewed by: Keith M Wesolowski Reviewed by: Saso Kiselkov Approved by: Dan McDonald --- usr/src/uts/common/io/scsi/targets/sd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'usr/src/uts/common/io/scsi/targets/sd.c') diff --git a/usr/src/uts/common/io/scsi/targets/sd.c b/usr/src/uts/common/io/scsi/targets/sd.c index 6687163bf9..67529e7759 100644 --- a/usr/src/uts/common/io/scsi/targets/sd.c +++ b/usr/src/uts/common/io/scsi/targets/sd.c @@ -26,6 +26,7 @@ * Copyright (c) 2011 Bayard G. Bell. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. */ /* * Copyright 2011 cyril.galibern@opensvc.com @@ -22323,6 +22324,7 @@ sdioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cred_p, int *rval_p) case DKIOCINFO: case DKIOCGMEDIAINFO: case DKIOCGMEDIAINFOEXT: + case DKIOCSOLIDSTATE: case MHIOCENFAILFAST: case MHIOCSTATUS: case MHIOCTKOWN: @@ -22515,6 +22517,16 @@ skip_ready_valid: } break; + case DKIOCSOLIDSTATE: + SD_TRACE(SD_LOG_IOCTL, un, "DKIOCSOLIDSTATE\n"); + i = un->un_f_is_solid_state ? 1 : 0; + if (ddi_copyout(&i, (void *)arg, sizeof (int), flag) != 0) { + err = EFAULT; + } else { + err = 0; + } + break; + case DKIOCHOTPLUGGABLE: SD_TRACE(SD_LOG_IOCTL, un, "DKIOCHOTPLUGGABLE\n"); i = un->un_f_is_hotpluggable ? 1 : 0; -- cgit v1.2.3