#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 _adp * | ioc_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 () |
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_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_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 | ) |
Definition at line 242 of file iosubnpag.c.
References _ddb::ddb_l_ddt, and _ddt::ddt_ps_ctrlinit_2.
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
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_page80_wwid | ( | struct _inquiry_data * | inq_data, | |
struct _page80 * | pg80_data, | |||
struct _sn_wwid * | wwid | |||
) |
int ioc_get_udid | ( | struct _devid * | devid_data, | |
int * | udid_p | |||
) |
initiate i/o for unit's irp - see 5.2 22.2.1
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_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
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_iodb_usrctx | ( | struct _ddb ** | d | ) |
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
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 | |||
) |
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 | |||
) |
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 | |||
) |
Definition at line 185 of file ucbcredel.c.
References ioc_std_copy_mscp_ucb(), ioc_std_link_ucb(), SS__NORMAL, _ucb::ucb_w_unit, and _ucb::ucb_w_unit_seed.
clone a template ucb - see 5.2 21.5.2.2.2
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 | |||
) |
copy ucb
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 | |||
) |
void ioc_std_credit_ucb | ( | 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_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_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 | |||
) |
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 | |||
) |
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 | |||
) |
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_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 | ) |
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 | |||
) |
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 | ) |
Definition at line 249 of file iosubnpag.c.
References _ddb::ddb_ps_dpt, _ddt::ddt_l_unitinit, _dpt::dpt_ps_init_pd, _dpt::dpt_ps_reinit_pd, _ucb::ucb_l_ddb, and _ucb::ucb_l_ddt.
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
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
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 | |||
) |