Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  scsi_dh.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Header file for SCSI device handler infrastructure.
 *
 * Modified version of patches posted by Mike Christie <michaelc@cs.wisc.edu>
 *
 * Copyright IBM Corporation, 2007
 *      Authors:
 *               Chandra Seetharaman <sekharan@us.ibm.com>
 *               Mike Anderson <andmike@linux.vnet.ibm.com>
 */


#include <scsi/scsi_device.h>

enum {
 SCSI_DH_OK = 0,
 /*
 * device errors
 */

 SCSI_DH_DEV_FAILED, /* generic device error */
 SCSI_DH_DEV_TEMP_BUSY,
 SCSI_DH_DEV_UNSUPP, /* device handler not supported */
 SCSI_DH_DEVICE_MAX, /* max device blkerr definition */

 /*
 * transport errors
 */

 SCSI_DH_NOTCONN = SCSI_DH_DEVICE_MAX + 1,
 SCSI_DH_CONN_FAILURE,
 SCSI_DH_TRANSPORT_MAX, /* max transport blkerr definition */

 /*
 * driver and generic errors
 */

 SCSI_DH_IO = SCSI_DH_TRANSPORT_MAX + 1, /* generic error */
 SCSI_DH_INVALID_IO,
 SCSI_DH_RETRY,  /* retry the req, but not immediately */
 SCSI_DH_IMM_RETRY, /* immediately retry the req */
 SCSI_DH_TIMED_OUT,
 SCSI_DH_RES_TEMP_UNAVAIL,
 SCSI_DH_DEV_OFFLINED,
 SCSI_DH_NOMEM,
 SCSI_DH_NOSYS,
 SCSI_DH_DRIVER_MAX,
};

typedef void (*activate_complete)(void *, int);
struct scsi_device_handler {
 /* Used by the infrastructure */
 struct list_head list; /* list of scsi_device_handlers */

 /* Filled by the hardware handler */
 struct module *module;
 const char *name;
 enum scsi_disposition (*check_sense)(struct scsi_device *,
          struct scsi_sense_hdr *);
 int (*attach)(struct scsi_device *);
 void (*detach)(struct scsi_device *);
 int (*activate)(struct scsi_device *, activate_complete, void *);
 blk_status_t (*prep_fn)(struct scsi_device *, struct request *);
 int (*set_params)(struct scsi_device *, const char *);
 void (*rescan)(struct scsi_device *);
};

#ifdef CONFIG_SCSI_DH
extern int scsi_dh_activate(struct request_queue *, activate_complete, void *);
extern int scsi_dh_attach(struct request_queue *, const char *);
extern const char *scsi_dh_attached_handler_name(struct request_queue *, gfp_t);
extern int scsi_dh_set_params(struct request_queue *, const char *);
#else
static inline int scsi_dh_activate(struct request_queue *req,
     activate_complete fn, void *data)
{
 fn(data, 0);
 return 0;
}
static inline int scsi_dh_attach(struct request_queue *req, const char *name)
{
 return SCSI_DH_NOSYS;
}
static inline const char *scsi_dh_attached_handler_name(struct request_queue *q,
       gfp_t gfp)
{
 return NULL;
}
static inline int scsi_dh_set_params(struct request_queue *req, const char *params)
{
 return -SCSI_DH_NOSYS;
}
#endif

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge