1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (C) 2008-2012 Daisuke Aoyama <aoyama@peach.ne.jp>. 3 * Copyright (C) 2016 Intel Corporation. 4 * All rights reserved. 5 */ 6 7 #ifndef SPDK_ISCSI_PARAM_H 8 #define SPDK_ISCSI_PARAM_H 9 10 #include "spdk/stdinc.h" 11 12 struct spdk_iscsi_conn; 13 14 enum iscsi_param_type { 15 ISPT_INVALID = -1, 16 ISPT_NOTSPECIFIED = 0, 17 ISPT_LIST, 18 ISPT_NUMERICAL_MIN, 19 ISPT_NUMERICAL_MAX, 20 ISPT_NUMERICAL_DECLARATIVE, 21 ISPT_DECLARATIVE, 22 ISPT_BOOLEAN_OR, 23 ISPT_BOOLEAN_AND, 24 }; 25 26 struct iscsi_param { 27 struct iscsi_param *next; 28 char *key; 29 char *val; 30 char *list; 31 int type; 32 int state_index; 33 }; 34 35 void iscsi_param_free(struct iscsi_param *params); 36 struct iscsi_param * 37 iscsi_param_find(struct iscsi_param *params, const char *key); 38 int iscsi_param_del(struct iscsi_param **params, const char *key); 39 int iscsi_param_add(struct iscsi_param **params, const char *key, 40 const char *val, const char *list, int type); 41 int iscsi_param_set(struct iscsi_param *params, const char *key, 42 const char *val); 43 int iscsi_param_set_int(struct iscsi_param *params, const char *key, uint32_t val); 44 int iscsi_parse_params(struct iscsi_param **params, const uint8_t *data, 45 int len, bool cbit_enabled, char **partial_parameter); 46 char *iscsi_param_get_val(struct iscsi_param *params, const char *key); 47 int iscsi_param_eq_val(struct iscsi_param *params, const char *key, 48 const char *val); 49 50 int iscsi_negotiate_params(struct spdk_iscsi_conn *conn, 51 struct iscsi_param **params_p, uint8_t *data, 52 int alloc_len, int data_len); 53 int iscsi_copy_param2var(struct spdk_iscsi_conn *conn); 54 55 int iscsi_conn_params_init(struct iscsi_param **params); 56 int iscsi_sess_params_init(struct iscsi_param **params); 57 58 #endif /* SPDK_ISCSI_PARAM_H */ 59