/* SPDX-License-Identifier: GPL-2.0-only */ /* * Transport specific attributes. * * Copyright (c) 2003 Silicon Graphics, Inc. All rights reserved.
*/ #ifndef SCSI_TRANSPORT_H #define SCSI_TRANSPORT_H
/* * If set, called from sysfs and legacy procfs rescanning code.
*/ int (*user_scan)(struct Scsi_Host *, uint, uint, u64);
/* The size of the specific transport attribute structure (a * space of this size will be left at the end of the
* scsi_* structure */ int device_size; int device_private_offset; int target_size; int target_private_offset; int host_size; /* no private offset for the host; there's an alternative mechanism */
/* * True if the transport wants to use a host-based work-queue
*/ unsignedint create_work_queue : 1;
/* * Allows a transport to override the default error handler.
*/ void (* eh_strategy_handler)(struct Scsi_Host *);
};
/* Private area maintenance. The driver requested allocations come * directly after the transport class allocations (if any). The idea * is that you *must* call these only once. The code assumes that the
* initial values are the ones the transport specific code requires */ staticinlinevoid
scsi_transport_reserve_target(struct scsi_transport_template * t, int space)
{
BUG_ON(t->target_private_offset != 0);
t->target_private_offset = ALIGN(t->target_size, sizeof(void *));
t->target_size = t->target_private_offset + space;
} staticinlinevoid
scsi_transport_reserve_device(struct scsi_transport_template * t, int space)
{
BUG_ON(t->device_private_offset != 0);
t->device_private_offset = ALIGN(t->device_size, sizeof(void *));
t->device_size = t->device_private_offset + space;
} staticinlinevoid *
scsi_transport_target_data(struct scsi_target *starget)
{ struct Scsi_Host *shost = dev_to_shost(&starget->dev); return (u8 *)starget->starget_data
+ shost->transportt->target_private_offset;
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.