lib/src/ioc_routines.h File Reference

#include <acbdef.h>
#include <adpdef.h>
#include <busarraydef.h>
#include <ccbdef.h>
#include <cdrpdef.h>
#include <config_table.h>
#include <crabdef.h>
#include <cramdef.h>
#include <crctxdef.h>
#include <crbdef.h>
#include <ddbdef.h>
#include <ddtdef.h>
#include <diobmdef.h>
#include <dptdef.h>
#include <dtndef.h>
#include <far_pointers.h>
#include <fdtdef.h>
#include <idbdef.h>
#include <irpdef.h>
#include <iosbdef.h>
#include <kpbdef.h>
#include <mtldef.h>
#include <pcbdef.h>
#include <ptedef.h>
#include <sbdef.h>
#include <scqdef.h>
#include <ucbdef.h>
#include <wcbdef.h>
#include <scsidef.h>
#include <wwiddef.h>

Go to the source code of this file.

Functions

int ioc_add_adp (struct _adp *parent_adp, struct _adp *new_adp, int ba_index)
int ioc_add_device_type (const char *, const int32, struct _ucb *, struct _dtn **)
int ioc_allocate_ccb (int16 *chan_p, struct _ccb **ccb_p)
int ioc_allocate_cram (struct _cram **cram_p, struct _idb *idb, struct _ucb *ucb, struct _adp *adp)
int ioc_alloc_adp (long long *adp, int adptype, int hose, int bustype, int nodecount)
int ioc_alloc_cnt_res (struct _crab *crab, struct _crctx *crctx, long long cntxt1, long long cntxt2, long long cntxt3)
int ioc_alloc_crab (int itemcnt, int gran, struct _crab **crab_p)
int ioc_alloc_crctx (struct _crab *crab, struct _crctx **crctx_p, int flck)
void ioc_std_altreqcom (int iost1, int iost2, struct _cdrp *cdrp, struct _irp **irp_p, struct _ucb **ucb_p)
int ioc_std_ascwwid_to_binwwid (char *strptr, int len, char *result, int *reslen)
int ioc_std_binwwid_to_ascwwid (struct _wwid *wwid_ptr, char *wwid_string, int inlen, int *retlen)
int ioc_std_broadcast (int msglen, void *msg_p, struct _ucb *ucb)
void ioc_std_bufpost (struct _pcb *pcb, struct _irp *irp)
void ioc_std_cancelio (int chan, struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb)
int ioc_cancel_cnt_res (struct _crab *crab, struct _crctx *crctx, int resume)
int ioc_cancel_cnt_res_nosync (struct _crab *crab, struct _crctx *crctx, int resume)
int ioc_change_device_type (const char *, const int32, struct _ucb *, struct _dtn **)
int ioc_chan_to_ccb (int16 chan, struct _ccb **ccb_p)
int ioc_std_check_hwm (struct _irp *irp)
int ioc_std_chkmbxquota (struct _pcb *pcb, struct _ucb *ucb, int quo)
int ioc_std_chkucbquota (struct _pcb *pcb, struct _ucb *ucb)
int ioc_std_clone_ucb (struct _ucb *tmpl_ucb, struct _ucb **new_ucb)
 clone a template ucb - see 5.2 21.5.2.2.2
void ioc_std_closebufwind (struct _ucb *ucb)
int ioc_std_conbrdcst (int msglen, void *msg_p)
int ioc_std_copy_ucb (struct _ucb *src_ucb, struct _ucb **new_ucb)
 copy ucb
int ioc_cram_cmd (int cmdidx, int byteoffset, struct _adp *adp, struct _cram *cram, unsigned long long *iohandle)
int ioc_cram_io (struct _cram *cram)
int ioc_cram_queue (struct _cram *cram)
int ioc_cram_wait (struct _cram *cram)
int ioc_create_ccb_table (int num_chan)
int ioc_std_create_diobm (const struct _pte_PQ va_pte, const uint32 pte_count, const uint32 flags, struct _pte **svapte_p, struct _diobm **diobm_p)
int ioc_std_create_ucb (struct _pcb *pcb, struct _ucb *ucb, struct _ucb **new_ucb_p)
void ioc_std_credit_ucb (struct _ucb *ucb)
int ioc_ctrl_init (struct _crb *crb, struct _ddb *ddb)
void ioc_std_cvtlogphy (int lbn, struct _irp *irp, struct _ucb *ucb)
int ioc_std_cvt_devnam (int buflen, char *buf, int form, struct _ucb *ucb, int32 *outlen_p)
int ioc_std_dalloc_dev (struct _pcb *pcb, struct _ucb *ucb)
int ioc_std_dalloc_dmt (struct _pcb *pcb, struct _ucb *ucb)
void ioc_std_ddt_cancel_intercept (int chan, struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb, int reason)
int ioc_deallocate_ccb (struct _ccb *ccb)
int ioc_deallocate_cram (struct _cram *cram)
int ioc_dealloc_cnt_res (struct _crab *crab, struct _crctx *crctx)
int ioc_dealloc_cnt_res_nosync (struct _crab *crab, struct _crctx *crctx)
int ioc_dealloc_crab (struct _crab *crab)
int ioc_dealloc_crctx (struct _crctx *crctx)
void ioc_std_debit_ucb (struct _ucb *ucb, struct _pcb *pcb)
void ioc_std_delete_ucb (struct _ucb *ucb)
void ioc_std_diagbufill (int driver_param, struct _ucb *ucb)
int ioc_std_dismount (int flags, struct _pcb *pcb, struct _mtl *mtl)
int ioc_std_errcnt_value (struct _ucb *ucb)
int ioc_std_fill_diobm (struct _diobm *const diobm, const struct _pte_PQ va_pte, const uint32 pte_count, const uint32 flags, struct _pte **svapte_p)
void * ioc_std_filspt (struct _ucb *ucb)
void ioc_std_free_ucb (struct _ucb *ucb)
int ioc_std_getbyte (void *sva, struct _ucb *ucb, void **sva_p)
int ioc_get_device_type (struct _ucb *, struct _dtn **)
int ioc_get_page80_wwid (struct _inquiry_data *inq_data, struct _page80 *pg80_data, struct _sn_wwid *wwid)
int ioc_get_page83_wwid (struct _page83 *pg83_data, struct _wwid *wwid)
int ioc_get_udid (struct _devid *devid_data, int *udid_p)
void ioc_std_hwm_end (struct _pcb *pcb, struct _irp *irp)
void * ioc_std_initbufwind (struct _ucb *ucb)
int ioc_init_cram (struct _adp *adp, struct _cram *cram)
int ioc_init_crctx (struct _crab *crab, struct _crctx *crctx, int flck)
void ioc_std_initiate (struct _irp *irp, struct _ucb *ucb)
void ioc_std_initiate_lck_rel (struct _irp *irp, struct _ucb *ucb)
void ioc_std_initiate_new_io (struct _irp *irp, struct _ucb *ucb)
int ioc_kp_reqchan (struct _kpb *kpb, int pri)
int ioc_kp_wfikpch (struct _kpb *kpb, int tmo, int newipl)
int ioc_kp_wfirlch (struct _kpb *kpb, int tmo, int newipl)
void ioc_std_last_chan (int chan, struct _pcb *pcb, struct _ucb *ucb)
void ioc_std_last_chan_ambx (struct _pcb *pcb, struct _ucb *ucb)
int ioc_std_link_ucb (struct _ucb *ucb)
 link ucb into ddb list
int ioc_load_map (struct _adp *adp, struct _crctx *crctx, struct _pte *svapte, int boff, void **dma_addr_p)
int ioc_std_lock_dev (int lockmode, void *lock_val_p, struct _pcb *pcb, struct _ucb *ucb, int32 *lockid_p)
int ioc_map_io (struct _adp *adp, int node, unsigned long long *phys_offset, int num_bytes, int attr, unsigned long long *iohandle)
int ioc_std_mapvblk (unsigned int vbn, unsigned int numbytes, struct _wcb *wcb, struct _irp *irp, struct _ucb *ucb, uint32 *lbn_p, uint32 *notmapped_p, struct _ucb **new_ucb_p)
void ioc_std_mntver (struct _irp *irp, struct _ucb *ucb)
void * ioc_std_movfruser (void *sysbuf, int numbytes, struct _ucb *ucb, void **sysbuf_p)
void * ioc_std_movfruser1 (void *sysbuf, int numbytes, struct _ucb *ucb, void *sva, void **sysbuf_p)
void * ioc_std_movfruser2 (void *sysbuf, int numbytes, struct _ucb *ucb, void *sva, void **sysbuf_p)
void * ioc_std_movtouser (void *sysbuf, int numbytes, struct _ucb *ucb, void **sysbuf_p)
void * ioc_std_movtouser1 (void *sysbuf, int numbytes, struct _ucb *ucb, void *sva, void **sysbuf_p)
void * ioc_std_movtouser2 (void *sysbuf, int numbytes, struct _ucb *ucb, void *sva, void **sysbuf_p)
int ioc_node_data (struct _crb *crb, int func, void *buf_p)
int ioc_node_function (struct _crb *crb, int func,...)
int ioc_std_opcnt_value (struct _ucb *ucb)
int ioc_std_parsdevnam (int devnamlen, char *devnam, int flags, int32 *unit_p, int32 *scslen_p, int32 *devnamlen_p, char **devnam_p, int32 *flags_p)
void ioc_std_post_irp (struct _irp *irp)
int ioc_std_pre_simreqcom (int pri, int efn, struct _acb *acb)
int ioc_std_primitive_reqchanh (struct _irp *irp, struct _ucb *ucb, struct _idb **idb_p)
int ioc_std_primitive_reqchanl (struct _irp *irp, struct _ucb *ucb, struct _idb **idb_p)
void ioc_std_primitive_wfikpch (struct _irp *irp, long long fr4, struct _ucb *ucb, int tmo, int restore_ipl)
void ioc_std_primitive_wfirlch (struct _irp *irp, long long fr4, struct _ucb *ucb, int tmo, int restore_ipl)
int ioc_std_ptetopfn (struct _pte *pte)
void * ioc_std_putbyte (void *sva, char data, struct _ucb *ucb)
int ioc_std_q_internal_irp (struct _irp *irp, struct _ucb *ucb, IOSB_PQ iosb, VOID_PQ mbz)
void ioc_std_qnxtseg (struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb, struct _ucb **ucb_p)
void ioc_std_qnxtseg1 (int vbn, int bcnt, struct _wcb *wcb, struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb, struct _ucb **ucb_p)
int ioc_read_io (struct _adp *adp, unsigned long long *iohandle, int offset, int length, void *data_p)
int ioc_read_pci_config (struct _adp *adp, int pci_node, int offset, int length, int *data_p)
int ioc_reallocate_ccb (int16 chan, struct _ccb **ccb_p)
void ioc_std_relchan (struct _ucb *ucb)
int ioc_std_release_diobm (struct _diobm *const diobm)
int ioc_remove_device_type (struct _ucb *ucb)
void ioc_std_reqcom (int iost1, int iost2, struct _ucb *ucb)
void ioc_std_reqcom_local (struct _cdrp *cdrp)
int ioc_reserve_scb (int count, int min_vec, int max_vec, int align, int32 *resvec_p)
void ioc_return (void)
int ioc_return_success (void)
int ioc_return_unsupported (void)
int ioc_scan_ccb (int32 **context_p, struct _ccb **ccb_p)
int ioc_std_scan_iodb (struct _ucb *ucb, struct _ddb *ddb, struct _ucb **ucb_p, struct _ddb **ddb_p)
int ioc_std_scan_iodb_2p (int path, struct _ucb *ucb, struct _ddb *ddb, int32 *path_p, struct _ucb **ucb_p, struct _ddb **ddb_p)
int ioc_std_scan_iodb_usrctx (int ctx, int unit, struct _ucb *ucb, struct _ddb *ddb, int32 *ctx_p, int32 *unit_p, struct _ucb **ucb_p, struct _ddb **ddb_p)
int ioc_scsipath_connect (struct _scq *scq)
int ioc_std_search (VOID_PQ descr_p, int flags, void *lock_val_p, struct _ucb **ucb_p, struct _ddb **ddb_p, struct _sb **sb_p)
int ioc_std_searchall (VOID_PQ descr_p, struct _ucb **ucb_p, struct _ddb **ddb_p, struct _sb **sb_p)
int ioc_std_searchcont (int unit, int scslen, struct _ucb *ucb, struct _ddb *ddb, struct _sb *sb, int devnamlen, char *devnam, int flags, struct _ucb **ucb_p, struct _ddb **ddb_p, struct _sb **sb_p, void **lock_val_p)
int ioc_std_searchdev (VOID_PQ descr_p, struct _ucb **ucb_p, struct _ddb **ddb_p, struct _sb **sb_p)
int ioc_std_searchint (int unit, int scslen, int devnamlen, char *devnam, int flags, struct _ucb **ucb_p, struct _ddb **ddb_p, struct _sb **sb_p, void **lock_val_p)
int ioc_search_device_type (const char *, const int32, struct _dtn **)
int ioc_std_sensedisk (struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb, struct _ccb *ccb)
void ioc_setup_ucb_dipl (struct _ucb *ucb)
void ioc_std_sever_ucb (struct _ucb *ucb)
int ioc_std_simreqcom (VOID_PQ iosb, int pri, int efn, int32 iost[2], struct _acb *acb, int acmode)
int ioc_sndopcfao (unsigned int opc_msg_code, unsigned int opc_class_mask,...)
long long ioc_sva_to_pa (void *svapte, long long *pa, int buflen, int32 *retlen_p)
int ioc_std_svapte_in_buf (struct _irp *irp, VOID_PQ va, struct _pte **svapte_p)
long long ioc_svapte_to_pa (void *svapte, int boff, long long *pa, int buflen, int32 *retlen_p, void **nxtsvapte_p)
int ioc_std_testunit (int unit, int devtype, struct _ucb *ucb, int flags, void *lock_val_p, struct _ucb **ucb_p, int32 *flags_p)
void ioc_std_threadcrb (struct _crb *crb)
int ioc_std_trandevnam (VOID_PQ descr_p, int flags, char *buf, int32 *outlen, void **out_p)
 translate eventual device name logical
struct _adpioc_tr_to_adp (int tr)
int ioc_unit_init (struct _ucb *ucb)
int ioc_std_unlock_dev (struct _ucb *ucb)
int ioc_unmap_io (struct _adp *adp, unsigned long long *iohandle)
int ioc_unreserve_scb (int count, int32 vector_list[])
int ioc_std_update_dev_wwid_list (struct _wwid *wwid_ptr, char *devnam)
VOID_PQ ioc_std_va_to_pa (VOID_PQ va, VOID_PPQ pa_p)
int ioc_verify_chan (unsigned short int chan, struct _ccb **ccb_p)
 verify that the chann is legal - see 5.2 21.5.3
void ioc_std_wakacp (struct _ucb *ucb, struct _irp *irp)
int ioc_write_io (struct _adp *adp, unsigned long long *iohandle, int offset, int length, void *data_p)
int ioc_write_pci_config (struct _adp *adp, int pci_node, int offset, int length, int wdata)
int ioc_std_getsyi_cpu_specific (int getsyi_code, unsigned char *buffer, int *buffer_length)
void ioc_reqcom (int iosb1, int iosb2, struct _ucb *u)
 i/o request complete - see 5.2 22.3.4
 ioc_bufpost (struct _irp *i)
void ioc_initiate (struct _irp *i, struct _ucb *u)
 initiate i/o for unit's irp - see 5.2 22.2.1
int ioc_searchdev (struct return_values *r, void *devnam)
int ioc_search (struct return_values *r, void *devnam)
 search for device - see 5.2 21.4.1
int ioc_ffchan (unsigned short int *chan)
 find first free i/o channel - see 5.2 21.5.2.1
int ioc_scan_iodb_usrctx (struct _ddb **d)
void ioc_wfikpch (void *nextfunc, void *timeoutfunc, struct _irp *i, unsigned long fr4, struct _ucb *u, int timeout, int oldipl)
 waiting for the device interrupt - see 5.2 22.3.2
int ioc_std_clone_mscp_ucb (struct _ucb *tmpl_ucb, struct _ucb **new_ucb)
int ioc_delete_ucb ()


Function Documentation

int ioc_add_adp ( struct _adp parent_adp,
struct _adp new_adp,
int  ba_index 
)

int ioc_add_device_type ( const char *  ,
const   int32,
struct _ucb ,
struct _dtn **   
)

int ioc_alloc_adp ( long long *  adp,
int  adptype,
int  hose,
int  bustype,
int  nodecount 
)

int ioc_alloc_cnt_res ( struct _crab crab,
struct _crctx crctx,
long long  cntxt1,
long long  cntxt2,
long long  cntxt3 
)

int ioc_alloc_crab ( int  itemcnt,
int  gran,
struct _crab **  crab_p 
)

int ioc_alloc_crctx ( struct _crab crab,
struct _crctx **  crctx_p,
int  flck 
)

int ioc_allocate_ccb ( int16 chan_p,
struct _ccb **  ccb_p 
)

int ioc_allocate_cram ( struct _cram **  cram_p,
struct _idb idb,
struct _ucb ucb,
struct _adp adp 
)

ioc_bufpost ( struct _irp i  ) 

needed by end of file system dispatcher

Definition at line 333 of file iociopost.c.

References bufpost(), _irp::irp_b_rmod, _irp::irp_l_astprm, and _irp::irp_l_wind.

Referenced by ioc_iopost().

int ioc_cancel_cnt_res ( struct _crab crab,
struct _crctx crctx,
int  resume 
)

int ioc_cancel_cnt_res_nosync ( struct _crab crab,
struct _crctx crctx,
int  resume 
)

int ioc_chan_to_ccb ( int16  chan,
struct _ccb **  ccb_p 
)

int ioc_change_device_type ( const char *  ,
const   int32,
struct _ucb ,
struct _dtn **   
)

int ioc_cram_cmd ( int  cmdidx,
int  byteoffset,
struct _adp adp,
struct _cram cram,
unsigned long long *  iohandle 
)

int ioc_cram_io ( struct _cram cram  ) 

int ioc_cram_queue ( struct _cram cram  ) 

int ioc_cram_wait ( struct _cram cram  ) 

int ioc_create_ccb_table ( int  num_chan  ) 

int ioc_ctrl_init ( struct _crb crb,
struct _ddb ddb 
)

Definition at line 242 of file iosubnpag.c.

References _ddb::ddb_l_ddt, and _ddt::ddt_ps_ctrlinit_2.

int ioc_dealloc_cnt_res ( struct _crab crab,
struct _crctx crctx 
)

int ioc_dealloc_cnt_res_nosync ( struct _crab crab,
struct _crctx crctx 
)

int ioc_dealloc_crab ( struct _crab crab  ) 

int ioc_dealloc_crctx ( struct _crctx crctx  ) 

int ioc_deallocate_ccb ( struct _ccb ccb  ) 

int ioc_deallocate_cram ( struct _cram cram  ) 

int ioc_delete_ucb (  ) 

Definition at line 203 of file ucbcredel.c.

int ioc_ffchan ( unsigned short int *  chan  ) 

find first free i/o channel - see 5.2 21.5.2.1

Parameters:
chan return value

Definition at line 36 of file iosubpagd.c.

References CHANNELCNT, ctl_gl_ccbbase, SS__NOIOCHAN, and SS__NORMAL.

Referenced by exe_assign(), and exe_crembx().

int ioc_get_device_type ( struct _ucb ,
struct _dtn **   
)

int ioc_get_page80_wwid ( struct _inquiry_data inq_data,
struct _page80 pg80_data,
struct _sn_wwid wwid 
)

int ioc_get_page83_wwid ( struct _page83 pg83_data,
struct _wwid wwid 
)

int ioc_get_udid ( struct _devid devid_data,
int *  udid_p 
)

int ioc_init_cram ( struct _adp adp,
struct _cram cram 
)

int ioc_init_crctx ( struct _crab crab,
struct _crctx crctx,
int  flck 
)

void ioc_initiate ( struct _irp i,
struct _ucb u 
)

initiate i/o for unit's irp - see 5.2 22.2.1

Parameters:
i irp
u unit

smp affinity check yet - MISSING

save irp address in unit

copy some irp content to unit

clear TIMOUT and CANCEL

diagnostic buf - MISSING

locate ddt_l_start

call it

Definition at line 40 of file iosubnpag.c.

References _ddt::ddt_l_start, _ucb::ucb_l_bcnt, _ucb::ucb_l_boff, _ucb::ucb_l_ddt, _ucb::ucb_l_irp, _ucb::ucb_l_sts, and _ucb::ucb_l_svapte.

Referenced by exe_insioq(), ioc_reqcom(), and ioc_std_initiate().

int ioc_kp_reqchan ( struct _kpb kpb,
int  pri 
)

int ioc_kp_wfikpch ( struct _kpb kpb,
int  tmo,
int  newipl 
)

int ioc_kp_wfirlch ( struct _kpb kpb,
int  tmo,
int  newipl 
)

int ioc_load_map ( struct _adp adp,
struct _crctx crctx,
struct _pte svapte,
int  boff,
void **  dma_addr_p 
)

int ioc_map_io ( struct _adp adp,
int  node,
unsigned long long *  phys_offset,
int  num_bytes,
int  attr,
unsigned long long *  iohandle 
)

int ioc_node_data ( struct _crb crb,
int  func,
void *  buf_p 
)

int ioc_node_function ( struct _crb crb,
int  func,
  ... 
)

int ioc_read_io ( struct _adp adp,
unsigned long long *  iohandle,
int  offset,
int  length,
void *  data_p 
)

int ioc_read_pci_config ( struct _adp adp,
int  pci_node,
int  offset,
int  length,
int *  data_p 
)

int ioc_reallocate_ccb ( int16  chan,
struct _ccb **  ccb_p 
)

int ioc_remove_device_type ( struct _ucb ucb  ) 

void ioc_reqcom ( int  iosb1,
int  iosb2,
struct _ucb u 
)

i/o request complete - see 5.2 22.3.4

Parameters:
iosb1 value status
iosb2 value status
u ucb

if error log do error stuff and erl_releasemb - MISSING

increase ucb i/o count - MISSING

store final i/o status values

if tape device ... - MISSING

if error completion and is disk or tape, check mount verification - MISSING

some more work if tape errors - MISSING

test and save current ipl, and maybe raise ipl

spinlock, interlocking

insert irp in the interlocked systemwide i/o postprocessing queue

spinunlock

if first element, do

if primary cpu, request iopost softint

send interprocessor interrupt to do it on primary cpu

restore saved ipl

if mount verification ... - MISSING

if the unit has pending i/o requests

remove one from queue

initiate i/o on it

if no pending i/o request, clear bsy flag

enter ioc_relchan - MISSING

Definition at line 83 of file iosubnpag.c.

References CPU_M_IOPOST, exe_gl_abstim_tics, ioc_gq_postiq, ioc_initiate(), IPL__IOPOST, _irp::irp_l_iost1, _irp::irp_l_iost2, _irp::irp_l_pid, _irp::irp_w_empty, reqcom, reqcomc, smp_gl_primid, smp_send_work(), SPIN_IOPOST, _ucb::ucb_l_ioqfl, _ucb::ucb_l_irp, and _ucb::ucb_l_sts.

Referenced by ioc_std_reqcom().

int ioc_reserve_scb ( int  count,
int  min_vec,
int  max_vec,
int  align,
int32 resvec_p 
)

void ioc_return ( void   ) 

int ioc_return_success ( void   ) 

int ioc_return_unsupported ( void   ) 

int ioc_scan_ccb ( int32 **  context_p,
struct _ccb **  ccb_p 
)

int ioc_scan_iodb_usrctx ( struct _ddb **  d  ) 

Definition at line 221 of file iosubnpag.c.

Referenced by exe_device_scan().

int ioc_scsipath_connect ( struct _scq scq  ) 

int ioc_search ( struct return_values r,
void *  devnam 
)

search for device - see 5.2 21.4.1

Parameters:
r struct for return ddb etc
devnam device name

translate devnam argument to device

search i/o db for name

access check - MISSING

if cluster device, do ioc_lock_dev - MISSING

Definition at line 70 of file iosubpagd.c.

References _ddb::ddb_ps_link, _ddb::ddb_ps_sb, _ddb::ddb_ps_ucb, _ddb::ddb_t_name, dsc_strtol(), ioc_gl_devlist, ioc_std_trandevnam(), _sb::sb_t_nodename, SS__NORMAL, SS__NOSUCHDEV, _ucb::ucb_l_link, _ucb::ucb_w_unit, and return_values::val1.

Referenced by exe_assign(), exe_getdvi(), and ioc_searchdev().

int ioc_search_device_type ( const char *  ,
const   int32,
struct _dtn **   
)

int ioc_searchdev ( struct return_values r,
void *  devnam 
)

Definition at line 47 of file iosubpagd.c.

References ioc_search().

Referenced by exe_assign().

void ioc_setup_ucb_dipl ( struct _ucb ucb  ) 

int ioc_sndopcfao ( unsigned int  opc_msg_code,
unsigned int  opc_class_mask,
  ... 
)

void ioc_std_altreqcom ( int  iost1,
int  iost2,
struct _cdrp cdrp,
struct _irp **  irp_p,
struct _ucb **  ucb_p 
)

int ioc_std_ascwwid_to_binwwid ( char *  strptr,
int  len,
char *  result,
int *  reslen 
)

int ioc_std_binwwid_to_ascwwid ( struct _wwid wwid_ptr,
char *  wwid_string,
int  inlen,
int *  retlen 
)

int ioc_std_broadcast ( int  msglen,
void *  msg_p,
struct _ucb ucb 
)

void ioc_std_bufpost ( struct _pcb *  pcb,
struct _irp irp 
)

void ioc_std_cancelio ( int  chan,
struct _irp irp,
struct _pcb *  pcb,
struct _ucb ucb 
)

int ioc_std_check_hwm ( struct _irp irp  ) 

int ioc_std_chkmbxquota ( struct _pcb *  pcb,
struct _ucb ucb,
int  quo 
)

int ioc_std_chkucbquota ( struct _pcb *  pcb,
struct _ucb ucb 
)

int ioc_std_clone_mscp_ucb ( struct _ucb tmpl_ucb,
struct _ucb **  new_ucb 
)

int ioc_std_clone_ucb ( struct _ucb tmpl_ucb,
struct _ucb **  new_ucb 
)

clone a template ucb - see 5.2 21.5.2.2.2

Parameters:
tmpl_ucb template ucb
new_ucb 

give unique unit number

link ucb into the ddb's device chain

Definition at line 108 of file ucbcredel.c.

References ioc_std_copy_ucb(), ioc_std_link_ucb(), SS__NORMAL, _ucb::ucb_w_unit, and _ucb::ucb_w_unit_seed.

Referenced by clone_init_ucb(), exe_assign(), and ioc_std_create_ucb().

void ioc_std_closebufwind ( struct _ucb ucb  ) 

int ioc_std_conbrdcst ( int  msglen,
void *  msg_p 
)

int ioc_std_copy_ucb ( struct _ucb src_ucb,
struct _ucb **  new_ucb 
)

copy ucb

Parameters:
ucb 
new_ucb 

set refcount 1

set device online

clear template bit

set u->ucb_l_charge - MISSING

Definition at line 54 of file ucbcredel.c.

References kmalloc(), qhead_init(), SS__NORMAL, _ucb::ucb_l_bcnt, _ucb::ucb_l_boff, _ucb::ucb_l_devsts, _ucb::ucb_l_fpc, _ucb::ucb_l_fqfl, _ucb::ucb_l_fr3, _ucb::ucb_l_fr4, _ucb::ucb_l_ioqfl, _ucb::ucb_l_mb_msgqfl, _ucb::ucb_l_opcnt, _ucb::ucb_l_refc, _ucb::ucb_l_sts, _ucb::ucb_l_svapte, _ucb::ucb_w_bufquo, and _ucb::ucb_w_size.

Referenced by ioc_std_clone_ucb().

int ioc_std_create_diobm ( const struct _pte_PQ  va_pte,
const uint32  pte_count,
const uint32  flags,
struct _pte **  svapte_p,
struct _diobm **  diobm_p 
)

int ioc_std_create_ucb ( struct _pcb *  pcb,
struct _ucb ucb,
struct _ucb **  new_ucb_p 
)

Definition at line 94 of file ucbcredel.c.

References ioc_std_clone_ucb(), and SS__NORMAL.

void ioc_std_credit_ucb ( struct _ucb ucb  ) 

int ioc_std_cvt_devnam ( int  buflen,
char *  buf,
int  form,
struct _ucb ucb,
int32 outlen_p 
)

void ioc_std_cvtlogphy ( int  lbn,
struct _irp irp,
struct _ucb ucb 
)

int ioc_std_dalloc_dev ( struct _pcb *  pcb,
struct _ucb ucb 
)

int ioc_std_dalloc_dmt ( struct _pcb *  pcb,
struct _ucb ucb 
)

void ioc_std_ddt_cancel_intercept ( int  chan,
struct _irp irp,
struct _pcb *  pcb,
struct _ucb ucb,
int  reason 
)

void ioc_std_debit_ucb ( struct _ucb ucb,
struct _pcb *  pcb 
)

void ioc_std_delete_ucb ( struct _ucb ucb  ) 

void ioc_std_diagbufill ( int  driver_param,
struct _ucb ucb 
)

int ioc_std_dismount ( int  flags,
struct _pcb *  pcb,
struct _mtl mtl 
)

int ioc_std_errcnt_value ( struct _ucb ucb  ) 

int ioc_std_fill_diobm ( struct _diobm *const   diobm,
const struct _pte_PQ  va_pte,
const uint32  pte_count,
const uint32  flags,
struct _pte **  svapte_p 
)

void* ioc_std_filspt ( struct _ucb ucb  ) 

void ioc_std_free_ucb ( struct _ucb ucb  ) 

int ioc_std_getbyte ( void *  sva,
struct _ucb ucb,
void **  sva_p 
)

int ioc_std_getsyi_cpu_specific ( int  getsyi_code,
unsigned char *  buffer,
int *  buffer_length 
)

void ioc_std_hwm_end ( struct _pcb *  pcb,
struct _irp irp 
)

void* ioc_std_initbufwind ( struct _ucb ucb  ) 

void ioc_std_initiate ( struct _irp irp,
struct _ucb ucb 
)

Definition at line 65 of file iosubnpag.c.

References ioc_initiate().

void ioc_std_initiate_lck_rel ( struct _irp irp,
struct _ucb ucb 
)

void ioc_std_initiate_new_io ( struct _irp irp,
struct _ucb ucb 
)

void ioc_std_last_chan ( int  chan,
struct _pcb *  pcb,
struct _ucb ucb 
)

void ioc_std_last_chan_ambx ( struct _pcb *  pcb,
struct _ucb ucb 
)

int ioc_std_link_ucb ( struct _ucb ucb  ) 

link ucb into ddb list

Definition at line 28 of file ucbcredel.c.

References SS__NORMAL, _ucb::ucb_l_crb, _ucb::ucb_l_ddb, _ucb::ucb_l_link, and _ucb::ucb_w_unit.

Referenced by ioc_std_clone_mscp_ucb(), and ioc_std_clone_ucb().

int ioc_std_lock_dev ( int  lockmode,
void *  lock_val_p,
struct _pcb *  pcb,
struct _ucb ucb,
int32 lockid_p 
)

int ioc_std_mapvblk ( unsigned int  vbn,
unsigned int  numbytes,
struct _wcb wcb,
struct _irp irp,
struct _ucb ucb,
uint32 lbn_p,
uint32 notmapped_p,
struct _ucb **  new_ucb_p 
)

void ioc_std_mntver ( struct _irp irp,
struct _ucb ucb 
)

void* ioc_std_movfruser ( void *  sysbuf,
int  numbytes,
struct _ucb ucb,
void **  sysbuf_p 
)

void* ioc_std_movfruser1 ( void *  sysbuf,
int  numbytes,
struct _ucb ucb,
void *  sva,
void **  sysbuf_p 
)

void* ioc_std_movfruser2 ( void *  sysbuf,
int  numbytes,
struct _ucb ucb,
void *  sva,
void **  sysbuf_p 
)

void* ioc_std_movtouser ( void *  sysbuf,
int  numbytes,
struct _ucb ucb,
void **  sysbuf_p 
)

void* ioc_std_movtouser1 ( void *  sysbuf,
int  numbytes,
struct _ucb ucb,
void *  sva,
void **  sysbuf_p 
)

void* ioc_std_movtouser2 ( void *  sysbuf,
int  numbytes,
struct _ucb ucb,
void *  sva,
void **  sysbuf_p 
)

int ioc_std_opcnt_value ( struct _ucb ucb  ) 

int ioc_std_parsdevnam ( int  devnamlen,
char *  devnam,
int  flags,
int32 unit_p,
int32 scslen_p,
int32 devnamlen_p,
char **  devnam_p,
int32 flags_p 
)

void ioc_std_post_irp ( struct _irp irp  ) 

int ioc_std_pre_simreqcom ( int  pri,
int  efn,
struct _acb acb 
)

int ioc_std_primitive_reqchanh ( struct _irp irp,
struct _ucb ucb,
struct _idb **  idb_p 
)

int ioc_std_primitive_reqchanl ( struct _irp irp,
struct _ucb ucb,
struct _idb **  idb_p 
)

void ioc_std_primitive_wfikpch ( struct _irp irp,
long long  fr4,
struct _ucb ucb,
int  tmo,
int  restore_ipl 
)

void ioc_std_primitive_wfirlch ( struct _irp irp,
long long  fr4,
struct _ucb ucb,
int  tmo,
int  restore_ipl 
)

int ioc_std_ptetopfn ( struct _pte pte  ) 

void* ioc_std_putbyte ( void *  sva,
char  data,
struct _ucb ucb 
)

int ioc_std_q_internal_irp ( struct _irp irp,
struct _ucb ucb,
IOSB_PQ  iosb,
VOID_PQ  mbz 
)

void ioc_std_qnxtseg ( struct _irp irp,
struct _pcb *  pcb,
struct _ucb ucb,
struct _ucb **  ucb_p 
)

void ioc_std_qnxtseg1 ( int  vbn,
int  bcnt,
struct _wcb wcb,
struct _irp irp,
struct _pcb *  pcb,
struct _ucb ucb,
struct _ucb **  ucb_p 
)

void ioc_std_relchan ( struct _ucb ucb  ) 

int ioc_std_release_diobm ( struct _diobm *const   diobm  ) 

void ioc_std_reqcom ( int  iost1,
int  iost2,
struct _ucb ucb 
)

Definition at line 190 of file iosubnpag.c.

References ioc_reqcom().

void ioc_std_reqcom_local ( struct _cdrp cdrp  ) 

int ioc_std_scan_iodb ( struct _ucb ucb,
struct _ddb ddb,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p 
)

int ioc_std_scan_iodb_2p ( int  path,
struct _ucb ucb,
struct _ddb ddb,
int32 path_p,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p 
)

int ioc_std_scan_iodb_usrctx ( int  ctx,
int  unit,
struct _ucb ucb,
struct _ddb ddb,
int32 ctx_p,
int32 unit_p,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p 
)

int ioc_std_search ( VOID_PQ  descr_p,
int  flags,
void *  lock_val_p,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p,
struct _sb **  sb_p 
)

Definition at line 228 of file iosubpagd.c.

int ioc_std_searchall ( VOID_PQ  descr_p,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p,
struct _sb **  sb_p 
)

int ioc_std_searchcont ( int  unit,
int  scslen,
struct _ucb ucb,
struct _ddb ddb,
struct _sb sb,
int  devnamlen,
char *  devnam,
int  flags,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p,
struct _sb **  sb_p,
void **  lock_val_p 
)

int ioc_std_searchdev ( VOID_PQ  descr_p,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p,
struct _sb **  sb_p 
)

Definition at line 232 of file iosubpagd.c.

int ioc_std_searchint ( int  unit,
int  scslen,
int  devnamlen,
char *  devnam,
int  flags,
struct _ucb **  ucb_p,
struct _ddb **  ddb_p,
struct _sb **  sb_p,
void **  lock_val_p 
)

int ioc_std_sensedisk ( struct _irp irp,
struct _pcb *  pcb,
struct _ucb ucb,
struct _ccb ccb 
)

void ioc_std_sever_ucb ( struct _ucb ucb  ) 

int ioc_std_simreqcom ( VOID_PQ  iosb,
int  pri,
int  efn,
int32  iost[2],
struct _acb acb,
int  acmode 
)

int ioc_std_svapte_in_buf ( struct _irp irp,
VOID_PQ  va,
struct _pte **  svapte_p 
)

int ioc_std_testunit ( int  unit,
int  devtype,
struct _ucb ucb,
int  flags,
void *  lock_val_p,
struct _ucb **  ucb_p,
int32 flags_p 
)

void ioc_std_threadcrb ( struct _crb crb  ) 

int ioc_std_trandevnam ( VOID_PQ  descr_p,
int  flags,
char *  buf,
int32 outlen,
void **  out_p 
)

translate eventual device name logical

check for :: - MISSING

Definition at line 170 of file iosubpagd.c.

References item_list_3::bufaddr, item_list_3::buflen, exe_trnlnm(), item_list_3::item_code, LNM__STRING, lnm_searchlog(), struct_lnm_ret::mylnmb, and item_list_3::retlenaddr.

Referenced by ioc_search().

int ioc_std_unlock_dev ( struct _ucb ucb  ) 

int ioc_std_update_dev_wwid_list ( struct _wwid wwid_ptr,
char *  devnam 
)

VOID_PQ ioc_std_va_to_pa ( VOID_PQ  va,
VOID_PPQ  pa_p 
)

void ioc_std_wakacp ( struct _ucb ucb,
struct _irp irp 
)

long long ioc_sva_to_pa ( void *  svapte,
long long *  pa,
int  buflen,
int32 retlen_p 
)

long long ioc_svapte_to_pa ( void *  svapte,
int  boff,
long long *  pa,
int  buflen,
int32 retlen_p,
void **  nxtsvapte_p 
)

struct _adp* ioc_tr_to_adp ( int  tr  )  [read]

int ioc_unit_init ( struct _ucb ucb  ) 

int ioc_unmap_io ( struct _adp adp,
unsigned long long *  iohandle 
)

int ioc_unreserve_scb ( int  count,
int32  vector_list[] 
)

int ioc_verify_chan ( unsigned short int  chan,
struct _ccb **  ccb_p 
)

verify that the chann is legal - see 5.2 21.5.3

Parameters:
chan channel
ccbp return value

TODO: need to be properly implemented

Definition at line 155 of file iosubpagd.c.

References _ccb::ccb_b_amod, ctl_gl_ccbbase, and SS__NORMAL.

Referenced by exe_dassgn().

void ioc_wfikpch ( void *  nextfunc,
void *  timeoutfunc,
struct _irp i,
unsigned long  fr4,
struct _ucb u,
int  timeout,
int  oldipl 
)

waiting for the device interrupt - see 5.2 22.3.2

Parameters:
nextfunc 
timeoutfunc 
i irp
fr4 
u 
timeout 
oldipl 

store timout + abstim in duetim

store in fr3 and fr4 TODO: check if right

store return address nextfunc in fpc, no need to adjust

clear timout

release device lock - MISSING TODO check if need be here

Definition at line 205 of file iosubnpag.c.

References _ucb::ucb_l_duetim, _ucb::ucb_l_fpc, _ucb::ucb_l_fr3, _ucb::ucb_l_fr4, and _ucb::ucb_l_sts.

int ioc_write_io ( struct _adp adp,
unsigned long long *  iohandle,
int  offset,
int  length,
void *  data_p 
)

int ioc_write_pci_config ( struct _adp adp,
int  pci_node,
int  offset,
int  length,
int  wdata 
)


Generated on Fri Oct 9 10:25:51 2009 for FreeVMS by  doxygen 1.5.5