|
Packit |
eace71 |
/*
|
|
Packit |
eace71 |
* iSCSI sysfs
|
|
Packit |
eace71 |
*
|
|
Packit |
eace71 |
* Copyright (C) 2006 Mike Christie
|
|
Packit |
eace71 |
* Copyright (C) 2006 Red Hat, Inc. All rights reserved.
|
|
Packit |
eace71 |
*
|
|
Packit |
eace71 |
* This program is free software; you can redistribute it and/or modify
|
|
Packit |
eace71 |
* it under the terms of the GNU General Public License as published
|
|
Packit |
eace71 |
* by the Free Software Foundation; either version 2 of the License, or
|
|
Packit |
eace71 |
* (at your option) any later version.
|
|
Packit |
eace71 |
*
|
|
Packit |
eace71 |
* This program is distributed in the hope that it will be useful, but
|
|
Packit |
eace71 |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
eace71 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
eace71 |
* General Public License for more details.
|
|
Packit |
eace71 |
*/
|
|
Packit |
eace71 |
#ifndef ISCSI_SYSFS_H
|
|
Packit |
eace71 |
#define ISCSI_SYSFS_H
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#include <sys/types.h>
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#include "sysfs.h"
|
|
Packit |
eace71 |
#include "types.h"
|
|
Packit |
eace71 |
#include "iscsi_proto.h"
|
|
Packit |
eace71 |
#include "config.h"
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
struct session_info;
|
|
Packit |
eace71 |
struct host_info;
|
|
Packit |
eace71 |
struct iscsi_session;
|
|
Packit |
eace71 |
struct iscsi_conn;
|
|
Packit |
eace71 |
struct iscsi_session_operational_config;
|
|
Packit |
eace71 |
struct iscsi_conn_operational_config;
|
|
Packit |
eace71 |
struct iscsi_auth_config;
|
|
Packit |
eace71 |
struct flashnode_rec;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#define SCSI_MAX_STATE_VALUE 32
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
extern void free_transports(void);
|
|
Packit |
eace71 |
extern char *iscsi_sysfs_get_iscsi_kernel_version(void);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_sessioninfo_by_id(struct session_info *info,
|
|
Packit |
eace71 |
char *sys_session);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_session_has_leadconn(uint32_t sid);
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
typedef int (iscsi_sysfs_session_op_fn)(void *, struct session_info *);
|
|
Packit |
eace71 |
typedef int (iscsi_sysfs_host_op_fn)(void *, struct host_info *);
|
|
Packit |
eace71 |
typedef int (iscsi_sysfs_flashnode_op_fn)(void *, struct flashnode_rec *,
|
|
Packit |
eace71 |
uint32_t, uint32_t);
|
|
Packit |
eace71 |
typedef int (iscsi_sysfs_iface_op_fn)(void *, struct iface_rec *);
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
extern int iscsi_sysfs_for_each_iface_on_host(void *data, uint32_t host_no,
|
|
Packit |
eace71 |
int *nr_found,
|
|
Packit |
eace71 |
iscsi_sysfs_iface_op_fn *fn);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_for_each_session(void *data, int *nr_found,
|
|
Packit |
eace71 |
iscsi_sysfs_session_op_fn *fn,
|
|
Packit |
eace71 |
int in_parallel);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_count_sessions(void);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_for_each_host(void *data, int *nr_found,
|
|
Packit |
eace71 |
iscsi_sysfs_host_op_fn *fn);
|
|
Packit |
eace71 |
extern uint32_t iscsi_sysfs_get_host_no_from_sid(uint32_t sid, int *err);
|
|
Packit |
eace71 |
extern uint32_t iscsi_sysfs_get_host_no_from_hwinfo(struct iface_rec *iface,
|
|
Packit |
eace71 |
int *rc);
|
|
Packit |
eace71 |
extern uint32_t iscsi_sysfs_get_host_no_from_hwaddress(char *hwaddress, int *rc);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_hostinfo_by_host_no(struct host_info *hinfo);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_for_each_flashnode(void *data, uint32_t host_no,
|
|
Packit |
eace71 |
int *nr_found,
|
|
Packit |
eace71 |
iscsi_sysfs_flashnode_op_fn *fn);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_flashnode_info(struct flashnode_rec *fnode,
|
|
Packit |
eace71 |
uint32_t host_no,
|
|
Packit |
eace71 |
uint32_t flashnode_id);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_update_flashnode_param(uint32_t host_no,
|
|
Packit |
eace71 |
uint32_t flashnode_id,
|
|
Packit |
eace71 |
char *name, char *val);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_create_flashnode(uint32_t host_no, char *ipver);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_del_flashnode(uint32_t host_no, uint32_t flashnode_id);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_login_flashnode(uint32_t host_no, uint32_t flashnode_id);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_logout_flashnode(uint32_t host_no,
|
|
Packit |
eace71 |
uint32_t flashnode_id);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_sid_from_path(char *session);
|
|
Packit |
eace71 |
extern char *iscsi_sysfs_get_blockdev_from_lun(int hostno, int target, int sid);
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
static inline int is_valid_operational_value(int value)
|
|
Packit |
eace71 |
{
|
|
Packit |
eace71 |
return value != -1;
|
|
Packit |
eace71 |
}
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
extern void iscsi_sysfs_get_auth_conf(int sid, struct iscsi_auth_config *conf);
|
|
Packit |
eace71 |
extern void iscsi_sysfs_get_negotiated_session_conf(int sid,
|
|
Packit |
eace71 |
struct iscsi_session_operational_config *conf);
|
|
Packit |
eace71 |
extern void iscsi_sysfs_get_negotiated_conn_conf(int sid,
|
|
Packit |
eace71 |
struct iscsi_conn_operational_config *conf);
|
|
Packit |
eace71 |
extern pid_t iscsi_sysfs_scan_host(int hostno, int async, int autoscan);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_session_state(char *state, int sid);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_host_state(char *state, int host_no);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_device_state(char *state, int host_no, int target,
|
|
Packit |
eace71 |
int lun);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_get_exp_statsn(int sid);
|
|
Packit |
eace71 |
extern void iscsi_sysfs_set_queue_depth(void *data, int hostno, int target,
|
|
Packit |
eace71 |
int lun);
|
|
Packit |
eace71 |
extern void iscsi_sysfs_set_device_online(void *data, int hostno, int target,
|
|
Packit |
eace71 |
int lun);
|
|
Packit |
eace71 |
extern void iscsi_sysfs_rescan_device(void *data, int hostno, int target,
|
|
Packit |
eace71 |
int lun);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_for_each_device(void *data, int host_no, uint32_t sid,
|
|
Packit |
eace71 |
void (* fn)(void *, int host_no, int target,
|
|
Packit |
eace71 |
int lun));
|
|
Packit |
eace71 |
extern struct iscsi_transport *iscsi_sysfs_get_transport_by_hba(uint32_t host_no);
|
|
Packit |
eace71 |
extern struct iscsi_transport *iscsi_sysfs_get_transport_by_session(char *sys_session);
|
|
Packit |
eace71 |
extern struct iscsi_transport *iscsi_sysfs_get_transport_by_sid(uint32_t sid);
|
|
Packit |
eace71 |
extern struct iscsi_transport *iscsi_sysfs_get_transport_by_name(char *transport_name);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_is_transport_loaded(char *transport_name);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_session_supports_nop(int sid);
|
|
Packit |
eace71 |
extern int iscsi_sysfs_session_user_created(int sid);
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
extern struct list_head transports;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#endif
|