sys/src/sysassign.c File Reference

QIO assign channel - TODO still more doc. More...

#include <linux/config.h>
#include <starlet.h>
#include <iodef.h>
#include <ssdef.h>
#include <misc.h>
#include <irpdef.h>
#include <ucbdef.h>
#include <ccbdef.h>
#include <ddtdef.h>
#include <system_data_cells.h>
#include <ioc_routines.h>
#include <linux/linkage.h>
#include <sch_routines.h>
#include <descrip.h>
#include <ipl.h>

Go to the source code of this file.

Functions

asmlinkage int exe_assign (void *devnam, unsigned short int *chan, unsigned int acmode, void *mbxnam, int flags)
 assign i/o channel system service - see 5.2 21.5.2


Detailed Description

QIO assign channel - TODO still more doc.

Author:
Roar Thronęs

Definition in file sysassign.c.


Function Documentation

asmlinkage int exe_assign ( void *  devnam,
unsigned short int *  chan,
unsigned int  acmode,
void *  mbxnam,
int  flags 
)

assign i/o channel system service - see 5.2 21.5.2

Parameters:
devnam device name
chan return channel value
acmode access mode
mbxnam mailbox name
flags misc flags - TODO not yet used

21.5.2.1

probe chan writeable - MISSING

probe mbxnam readable - MISSING

probe devnam readable - MISSING

handle acmode - MISSING

lock i/o db

find free channel

if error return

TODO maybe also unlock i/o db

search for an eventual mbxnam

search for devnam

if error unlock i/o db and return

21.5.2.2

if network dev, test for NETMBX priv - MISSING

ucb quota check - MISSING

invoke ucb cloning

store uic in its orb - MISSING

set deleteucb bit - MISSING

if template is a mailbox, set delmbx - MISSING

clear refc - MISSING

invoke ioc_debit_ucb - MISSING

invoke ddt cloneucb routine

handle error return - MISSING

if nonshared device set ucb pid - MISSING

21.5.2.2.3 associated mbx processing - MISSING

21.5.2.2.4 local device final processing

if appropiate, invoke ioc_lock_dev - MISSING

if nonshared and nonowned, set pid - MISSING

set ccb ucb

increase ucb ref count

set ccb amod - MISSING

set ccb sts - MISSING

chan was previously written

unlock i/o db and return normal?

21.5.2.3 assign non-local - MISSING

it might have worked once, but clustering etc is non-working now

Definition at line 40 of file sysassign.c.

References _ccb::ccb_b_amod, _ccb::ccb_l_ucb, ctl_gl_ccbbase, _ddt::ddt_l_cloneducb, ioc_ffchan(), ioc_search(), ioc_searchdev(), ioc_std_clone_ucb(), sch_iolockw(), sch_iounlock(), SS__NORMAL, _ucb::ucb_l_amb, _ucb::ucb_l_ddt, _ucb::ucb_l_sts, and return_values::val1.


Generated on Fri Oct 9 10:26:02 2009 for FreeVMS by  doxygen 1.5.5