static int __init i810_probe(pci_dev_t pci_dev, const struct pci_device_id *pci_id) __attribute__((no_throw))
*call*
    	only once at module_init, by pci interface
*alloc*
	allocates struct i810_card *card
*alias*
	links card onto the global card list ref'd by global:dev 
	sets card in pci->driver_data
*free*
	drops local ref to alloc'd card, failure case drops all refs


static void __init i810_configure_clocking (void)
*call*
	called from i810_probe, used to tune clocking global based on io-latency measurement of card
*alloc*
	card->states[0]
*alias*
	none
*free*
	card->states[0]

static int i810_open(struct inode *inode, file_state_t file) __attribute__((no_throw))	
*call*
	called by application file interface, (file_operations i810_audio_fops)
*alloc*
	finds a free state (states[i]==0) from the set of hardware channels, and allocs a state for it 
*alias*
	uses card from global devs variable, makes and drops for local ref



static int i810_release(struct inode *inode, file_state_t file) __attribute__((no_throw))	
*call*
	called when closing file
*alloc*
	none
*alias*
	local alias state = file->priv, card = state->card
*free* 
	free state -- needs to drop all refptrs 
	

static ssize_t i810_read(file_state_t file, char *{valueof(`i)} @nozeroterm  buffer, tag_t<`i> bufsize, loff_t *ppos)
*call*
	recording mode
*alloc*
	none
*alias* 
	local aliases only: state from file->priv, card from state->card
*free* 
	drops local aliases only


static ssize_t i810_write(file_state_t file, char *{valueof(`i)} @nozeroterm  buffer, tag_t<`i> bufsize, loff_t *ppos)
*call*
	playback mode
*alloc*
	none
*alias* 
	local aliases only: state from file->priv, card from state->card
*free* 
	drops local aliases only
	

static void i810_interrupt(int irq, struct i810_card *`RC incard, struct pt_regs *regs) __attribute__((no_throw))
*call*
	interrupt handler
*alloc*
	none
*alias*
	local alias of incard
*free*
	none

static void i810_channel_interrupt(struct i810_card *`r::TR card) 	
*call*
	called by interrupt handler i810_interrupt, 
	examines each hw channel (struct i810_state)
*alloc*
	none
*alias*
	local alias of incard, local alias of each card->states[i]
*free*
	none

static int prog_dmabuf(struct i810_state *`r::TR state, unsigned rec)
*call*
	i810_read, i810_write, i810_ioctl
*alloc*

*alias*
	local alias state, state->card,
*free* 


static int alloc_dmabuf(struct i810_state *`r::TR state)
*call*
	prog_dmabuf
*alloc*
	(allocates dma_buf pci_alloc_array)
*alias*
	local alias of state
*free* 
	none

static void dealloc_dmabuf(struct i810_state *`r::TR state)
*call*
	i810_release, i810_configure_clocking
*alloc*
	none
*alias*
	local alias of state
*free* 
	(pci free of state->dmabuf)


static inline unsigned i810_get_dma_addr(struct i810_state *`r::TR state, int rec)
*call*
	multiple, called with spin-locks held
*alloc*
	none
*alias*
	none
*free* 
	none

static unsigned int i810_poll(file_state_t file, struct poll_table_struct *wait) __attribute__((no_throw))
*call*
	file operation
*alloc*
	none
*alias*
	local alias of state = file->priv, card = state->card
*free* 
	none

