2020 */
2121
2222/**
23- * nvme_fw_download_seq() -
23+ * nvme_fw_download_seq() - firmware download sequence
2424 * @fd: File descriptor of nvme device
2525 * @size: Total size of the firmware image to transfer
2626 * @xfer: Maximum size to send with each partial transfer
@@ -34,47 +34,70 @@ int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset,
3434 void * buf );
3535
3636/**
37- * nvme_get_ctrl_telemetry() -
37+ * enum nvme_telemetry_da - Telemetry Log Data Area
38+ * @NVME_TELEMETRY_DA_1: Data Area 1
39+ * @NVME_TELEMETRY_DA_2: Data Area 2
40+ * @NVME_TELEMETRY_DA_3: Data Area 3
41+ * @NVME_TELEMETRY_DA_4: Data Area 4
42+ */
43+ enum nvme_telemetry_da {
44+ NVME_TELEMETRY_DA_1 = 1 ,
45+ NVME_TELEMETRY_DA_2 = 2 ,
46+ NVME_TELEMETRY_DA_3 = 3 ,
47+ NVME_TELEMETRY_DA_4 = 4 ,
48+ };
49+
50+ /**
51+ * nvme_get_ctrl_telemetry() - get controller telemetry log
3852 * @fd: File descriptor of nvme device
3953 * @rae: Retain asynchronous events
40- * @log: On success, set to the value of the allocated and retreived log.
54+ * @log: On success, set to the value of the allocated and retrieved log.
55+ * @da: log page data area, valid values: &enum nvme_telemetry_da
56+ * @size: Ptr to the telemetry log size, so it can be returned
4157 *
4258 * The total size allocated can be calculated as:
43- * (&struct nvme_telemetry_log.dalb3 + 1) * % NVME_LOG_TELEM_BLOCK_SIZE.
59+ * (nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE.
4460 *
4561 * Return: The nvme command status if a response was received (see
4662 * &enum nvme_status_field) or -1 with errno set otherwise.
4763 */
48- int nvme_get_ctrl_telemetry (int fd , bool rae , struct nvme_telemetry_log * * log );
64+ int nvme_get_ctrl_telemetry (int fd , bool rae , struct nvme_telemetry_log * * log ,
65+ enum nvme_telemetry_da da , size_t * size );
4966
5067/**
51- * nvme_get_host_telemetry() -
52- * @fd: File descriptor of nvme device
53- * @log: On success, set to the value of the allocated and retreived log.
68+ * nvme_get_host_telemetry() - get host telemetry log
69+ * @fd: File descriptor of nvme device
70+ * @log: On success, set to the value of the allocated and retrieved log.
71+ * @da: log page data area, valid values: &enum nvme_telemetry_da
72+ * @size: Ptr to the telemetry log size, so it can be returned
5473 *
5574 * The total size allocated can be calculated as:
56- * (&struct nvme_telemetry_log.dalb3 + 1) * % NVME_LOG_TELEM_BLOCK_SIZE.
75+ * (nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE.
5776 *
5877 * Return: The nvme command status if a response was received (see
5978 * &enum nvme_status_field) or -1 with errno set otherwise.
6079 */
61- int nvme_get_host_telemetry (int fd , struct nvme_telemetry_log * * log );
80+ int nvme_get_host_telemetry (int fd , struct nvme_telemetry_log * * log ,
81+ enum nvme_telemetry_da da , size_t * size );
6282
6383/**
64- * nvme_get_new_host_telemetry() -
65- * @fd: File descriptor of nvme device
66- * @log: On success, set to the value of the allocated and retreived log.
84+ * nvme_get_new_host_telemetry() - get new host telemetry log
85+ * @fd: File descriptor of nvme device
86+ * @log: On success, set to the value of the allocated and retrieved log.
87+ * @da: log page data area, valid values: &enum nvme_telemetry_da
88+ * @size: Ptr to the telemetry log size, so it can be returned
6789 *
6890 * The total size allocated can be calculated as:
69- * (&struct nvme_telemetry_log.dalb3 + 1) * % NVME_LOG_TELEM_BLOCK_SIZE.
91+ * (nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE.
7092 *
7193 * Return: The nvme command status if a response was received (see
7294 * &enum nvme_status_field) or -1 with errno set otherwise.
7395 */
74- int nvme_get_new_host_telemetry (int fd , struct nvme_telemetry_log * * log );
96+ int nvme_get_new_host_telemetry (int fd , struct nvme_telemetry_log * * log ,
97+ enum nvme_telemetry_da da , size_t * size );
7598
7699/**
77- * nvme_get_log_page() -
100+ * nvme_get_log_page() - get log page data
78101 * @fd: File descriptor of nvme device
79102 * @nsid: Namespace Identifier, if applicable.
80103 * @log_id: Log Identifier, see &enum nvme_cmd_get_log_lid.
@@ -90,7 +113,7 @@ int nvme_get_log_page(int fd, __u32 nsid, __u8 log_id, bool rae,
90113 __u32 xfer_len , __u32 data_len , void * data );
91114
92115/**
93- * nvme_get_log_page_padded() -
116+ * nvme_get_log_page_padded() - get log page data with 4k xfer length
94117 * @fd: File descriptor of nvme device
95118 * @nsid: Namespace Identifier, if applicable.
96119 * @log_id: Log Identifier, see &enum nvme_cmd_get_log_lid.
@@ -99,7 +122,7 @@ int nvme_get_log_page(int fd, __u32 nsid, __u8 log_id, bool rae,
99122 * @data: User address of at least &data_len to store the log.
100123 *
101124 * Calls nvme_get_log_page() with a default 4k transfer length, as that is
102- * guarnateed by the protocol to be a safe transfer size.
125+ * guaranteed by the protocol to be a safe transfer size.
103126 *
104127 * Return: The nvme command status if a response was received (see
105128 * &enum nvme_status_field) or -1 with errno set otherwise.
@@ -133,6 +156,9 @@ int nvme_get_logical_block_size(int fd, __u32 nsid, int *blksize);
133156 * @fd: File descriptor of the nvme device
134157 * @rae: Retain asynchronous events
135158 * @log: On success, set to the value of the allocated and retreived log.
159+ *
160+ * Return: The nvme command status if a response was received (see
161+ * &enum nvme_status_field) or -1 with errno set otherwise.
136162 */
137163int nvme_get_lba_status_log (int fd , bool rae , struct nvme_lba_status_log * * log );
138164
@@ -190,7 +216,7 @@ enum nvme_hmac_alg {
190216 * nvme_gen_dhchap_key() - DH-HMAC-CHAP key generation
191217 * @hostnqn: Host NVMe Qualified Name
192218 * @hmac: HMAC algorithm
193- * @key_len: Output key lenght
219+ * @key_len: Output key length
194220 * @secret: Secret to used for digest
195221 * @key: Generated DH-HMAC-CHAP key
196222 *
0 commit comments