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


Quelle  queue.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *  linux/drivers/acorn/scsi/queue.h: queue handling
 *
 *  Copyright (C) 1997 Russell King
 */

#ifndef QUEUE_H
#define QUEUE_H

typedef struct {
 struct list_head head;
 struct list_head free;
 spinlock_t queue_lock;
 void *alloc;   /* start of allocated mem */
} Queue_t;

/*
 * Function: void queue_initialise (Queue_t *queue)
 * Purpose : initialise a queue
 * Params  : queue - queue to initialise
 */

extern int queue_initialise (Queue_t *queue);

/*
 * Function: void queue_free (Queue_t *queue)
 * Purpose : free a queue
 * Params  : queue - queue to free
 */

extern void queue_free (Queue_t *queue);

/*
 * Function: struct scsi_cmnd *queue_remove (queue)
 * Purpose : removes first SCSI command from a queue
 * Params  : queue   - queue to remove command from
 * Returns : struct scsi_cmnd if successful (and a reference), or NULL if no command available
 */

extern struct scsi_cmnd *queue_remove (Queue_t *queue);

/*
 * Function: struct scsi_cmnd *queue_remove_exclude_ref (queue, exclude)
 * Purpose : remove a SCSI command from a queue
 * Params  : queue   - queue to remove command from
 *      exclude - array of busy LUNs
 * Returns : struct scsi_cmnd if successful (and a reference), or NULL if no command available
 */

extern struct scsi_cmnd *queue_remove_exclude(Queue_t *queue,
           unsigned long *exclude);

#define queue_add_cmd_ordered(queue,SCpnt) \
 __queue_add(queue,SCpnt,(SCpnt)->cmnd[0] == REQUEST_SENSE)
#define queue_add_cmd_tail(queue,SCpnt) \
 __queue_add(queue,SCpnt,0)
/*
 * Function: int __queue_add(Queue_t *queue, struct scsi_cmnd *SCpnt, int head)
 * Purpose : Add a new command onto a queue
 * Params  : queue - destination queue
 *      SCpnt - command to add
 *      head  - add command to head of queue
 * Returns : 0 on error, !0 on success
 */

extern int __queue_add(Queue_t *queue, struct scsi_cmnd *SCpnt, int head);

/*
 * Function: struct scsi_cmnd *queue_remove_tgtluntag (queue, target, lun, tag)
 * Purpose : remove a SCSI command from the queue for a specified target/lun/tag
 * Params  : queue  - queue to remove command from
 *      target - target that we want
 *      lun    - lun on device
 *      tag    - tag on device
 * Returns : struct scsi_cmnd if successful, or NULL if no command satisfies requirements
 */

extern struct scsi_cmnd *queue_remove_tgtluntag(Queue_t *queue, int target,
      int lun, int tag);

/*
 * Function: queue_remove_all_target(queue, target)
 * Purpose : remove all SCSI commands from the queue for a specified target
 * Params  : queue  - queue to remove command from
 *           target - target device id
 * Returns : nothing
 */

extern void queue_remove_all_target(Queue_t *queue, int target);

/*
 * Function: int queue_probetgtlun (queue, target, lun)
 * Purpose : check to see if we have a command in the queue for the specified
 *      target/lun.
 * Params  : queue  - queue to look in
 *      target - target we want to probe
 *      lun    - lun on target
 * Returns : 0 if not found, != 0 if found
 */

extern int queue_probetgtlun (Queue_t *queue, int target, int lun);

/*
 * Function: int queue_remove_cmd (Queue_t *queue, struct scsi_cmnd *SCpnt)
 * Purpose : remove a specific command from the queues
 * Params  : queue - queue to look in
 *      SCpnt - command to find
 * Returns : 0 if not found
 */

int queue_remove_cmd(Queue_t *queue, struct scsi_cmnd *SCpnt);

#endif /* QUEUE_H */

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

¤ Dauer der Verarbeitung: 0.1 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