Print this page
*** NO COMMENTS ***


 151 
 152 typedef struct {
 153         stmf_data_buf_t         *pbuf_stmf_buf;
 154         boolean_t               pbuf_is_immed;
 155         stmf_ic_msg_t           *pbuf_immed_msg;
 156 } pppt_buf_t;
 157 
 158 typedef enum {
 159         PTS_INIT = 0,
 160         PTS_ACTIVE,
 161         PTS_DONE,
 162         PTS_SENT_STATUS,
 163         PTS_ABORTED
 164 } pppt_task_state_t;
 165 
 166 typedef struct {
 167         pppt_sess_t             *pt_sess;
 168         avl_node_t              pt_sess_ln;
 169         int                     pt_refcnt;
 170         kmutex_t                pt_mutex;
 171         kcondvar_t              pt_cv;
 172         stmf_ic_msgid_t         pt_task_id;
 173         uint8_t                 pt_lun_id[16];
 174         pppt_task_state_t       pt_state;
 175         scsi_task_t             *pt_stmf_task;
 176         pppt_buf_t              *pt_immed_data;
 177         pppt_buf_t              *pt_read_buf;
 178         stmf_ic_msgid_t         pt_read_xfer_msgid;
 179 } pppt_task_t;
 180 
 181 /*
 182  * Error statistics
 183  */
 184 typedef struct {
 185         uint64_t                es_tgt_reg_svc_disabled;
 186         uint64_t                es_tgt_reg_duplicate;
 187         uint64_t                es_tgt_reg_create_fail;
 188         uint64_t                es_tgt_dereg_svc_disabled;
 189         uint64_t                es_tgt_dereg_not_found;
 190         uint64_t                es_sess_destroy_no_session;
 191         uint64_t                es_sess_lookup_no_session;


 279 
 280 void pppt_msg_rx(stmf_ic_msg_t *msg);
 281 
 282 void pppt_msg_tx_status(stmf_ic_msg_t *orig_msg, stmf_status_t status);
 283 
 284 pppt_tgt_t *pppt_tgt_lookup(scsi_devid_desc_t *tgt_devid);
 285 
 286 pppt_tgt_t *pppt_tgt_lookup_locked(scsi_devid_desc_t *tgt_devid);
 287 
 288 pppt_tgt_t *pppt_tgt_create(stmf_ic_reg_port_msg_t *reg_port,
 289     stmf_status_t *errcode);
 290 
 291 void pppt_tgt_async_delete(pppt_tgt_t *tgt);
 292 
 293 void pppt_tgt_destroy(pppt_tgt_t *tgt);
 294 
 295 int pppt_tgt_avl_compare(const void *void_tgt1, const void *void_tgt2);
 296 
 297 void pppt_tgt_sm_ctl(stmf_local_port_t *lport, int cmd, void *arg);
 298 


 299 #ifdef  __cplusplus
 300 }
 301 #endif
 302 
 303 #endif  /* _PPPT_H */


 151 
 152 typedef struct {
 153         stmf_data_buf_t         *pbuf_stmf_buf;
 154         boolean_t               pbuf_is_immed;
 155         stmf_ic_msg_t           *pbuf_immed_msg;
 156 } pppt_buf_t;
 157 
 158 typedef enum {
 159         PTS_INIT = 0,
 160         PTS_ACTIVE,
 161         PTS_DONE,
 162         PTS_SENT_STATUS,
 163         PTS_ABORTED
 164 } pppt_task_state_t;
 165 
 166 typedef struct {
 167         pppt_sess_t             *pt_sess;
 168         avl_node_t              pt_sess_ln;
 169         int                     pt_refcnt;
 170         kmutex_t                pt_mutex;

 171         stmf_ic_msgid_t         pt_task_id;
 172         uint8_t                 pt_lun_id[16];
 173         pppt_task_state_t       pt_state;
 174         scsi_task_t             *pt_stmf_task;
 175         pppt_buf_t              *pt_immed_data;
 176         pppt_buf_t              *pt_read_buf;
 177         stmf_ic_msgid_t         pt_read_xfer_msgid;
 178 } pppt_task_t;
 179 
 180 /*
 181  * Error statistics
 182  */
 183 typedef struct {
 184         uint64_t                es_tgt_reg_svc_disabled;
 185         uint64_t                es_tgt_reg_duplicate;
 186         uint64_t                es_tgt_reg_create_fail;
 187         uint64_t                es_tgt_dereg_svc_disabled;
 188         uint64_t                es_tgt_dereg_not_found;
 189         uint64_t                es_sess_destroy_no_session;
 190         uint64_t                es_sess_lookup_no_session;


 278 
 279 void pppt_msg_rx(stmf_ic_msg_t *msg);
 280 
 281 void pppt_msg_tx_status(stmf_ic_msg_t *orig_msg, stmf_status_t status);
 282 
 283 pppt_tgt_t *pppt_tgt_lookup(scsi_devid_desc_t *tgt_devid);
 284 
 285 pppt_tgt_t *pppt_tgt_lookup_locked(scsi_devid_desc_t *tgt_devid);
 286 
 287 pppt_tgt_t *pppt_tgt_create(stmf_ic_reg_port_msg_t *reg_port,
 288     stmf_status_t *errcode);
 289 
 290 void pppt_tgt_async_delete(pppt_tgt_t *tgt);
 291 
 292 void pppt_tgt_destroy(pppt_tgt_t *tgt);
 293 
 294 int pppt_tgt_avl_compare(const void *void_tgt1, const void *void_tgt2);
 295 
 296 void pppt_tgt_sm_ctl(stmf_local_port_t *lport, int cmd, void *arg);
 297 
 298 pppt_status_t pppt_task_hold(pppt_task_t *);
 299 
 300 #ifdef  __cplusplus
 301 }
 302 #endif
 303 
 304 #endif  /* _PPPT_H */