summaryrefslogtreecommitdiffstats
path: root/sys/dev/nvme/nvme_private.h
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2013-03-26 21:05:15 +0000
committerjimharris <jimharris@FreeBSD.org>2013-03-26 21:05:15 +0000
commit894007a2dc6397a81f0829d18bfc54c1b83dbdb2 (patch)
tree08af5fe67c1a7a9bec416ce574e4dd84fc488a98 /sys/dev/nvme/nvme_private.h
parent79d7c4eec2fd77c96bb69d6b27e64aa33b66786f (diff)
downloadFreeBSD-src-894007a2dc6397a81f0829d18bfc54c1b83dbdb2.zip
FreeBSD-src-894007a2dc6397a81f0829d18bfc54c1b83dbdb2.tar.gz
When an asynchronous event request is completed, automatically fetch the
specified log page. This satisfies the spec condition that future async events of the same type will not be sent until the associated log page is fetched. Sponsored by: Intel Reviewed by: carl
Diffstat (limited to 'sys/dev/nvme/nvme_private.h')
-rw-r--r--sys/dev/nvme/nvme_private.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
index 624ae11..53d403e 100644
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -104,6 +104,9 @@ MALLOC_DECLARE(M_NVME);
#define NVME_MIN_TIMEOUT_PERIOD (5)
#define NVME_MAX_TIMEOUT_PERIOD (120)
+/* Maximum log page size to fetch for AERs. */
+#define NVME_MAX_AER_LOG_SIZE (4096)
+
#ifndef CACHE_LINE_SIZE
#define CACHE_LINE_SIZE (64)
#endif
@@ -126,6 +129,9 @@ struct nvme_async_event_request {
struct nvme_controller *ctrlr;
struct nvme_request *req;
+ struct nvme_completion cpl;
+ uint32_t log_page_size;
+ uint8_t log_page_buffer[NVME_MAX_AER_LOG_SIZE];
};
struct nvme_tracker {
OpenPOWER on IntegriCloud