MIDAS
VME Functions (mvme_xxx)
Collaboration diagram for VME Functions (mvme_xxx):

Functions

int EXPRT mvme_open (MVME_INTERFACE **vme, int idx)
 
int EXPRT mvme_close (MVME_INTERFACE *vme)
 
int EXPRT mvme_sysreset (MVME_INTERFACE *vme)
 
int EXPRT mvme_read (MVME_INTERFACE *vme, void *dst, mvme_addr_t vme_addr, mvme_size_t n_bytes)
 
unsigned int EXPRT mvme_read_value (MVME_INTERFACE *vme, mvme_addr_t vme_addr)
 
int EXPRT mvme_write (MVME_INTERFACE *vme, mvme_addr_t vme_addr, void *src, mvme_size_t n_bytes)
 
int EXPRT mvme_write_value (MVME_INTERFACE *vme, mvme_addr_t vme_addr, unsigned int value)
 
int EXPRT mvme_set_am (MVME_INTERFACE *vme, int am)
 
int EXPRT mvme_get_am (MVME_INTERFACE *vme, int *am)
 
int EXPRT mvme_set_dmode (MVME_INTERFACE *vme, int dmode)
 
int EXPRT mvme_get_dmode (MVME_INTERFACE *vme, int *dmode)
 
int EXPRT mvme_set_blt (MVME_INTERFACE *vme, int mode)
 
int EXPRT mvme_get_blt (MVME_INTERFACE *vme, int *mode)
 
int EXPRT mvme_interrupt_generate (MVME_INTERFACE *mvme, int level, int vector, void *info)
 
int EXPRT mvme_interrupt_attach (MVME_INTERFACE *mvme, int level, int vector, void(*isr)(int, void *, void *), void *info)
 
int EXPRT mvme_interrupt_detach (MVME_INTERFACE *mvme, int level, int vector, void *info)
 
int EXPRT mvme_interrupt_enable (MVME_INTERFACE *mvme, int level, int vector, void *info)
 
int EXPRT mvme_interrupt_disable (MVME_INTERFACE *mvme, int level, int vector, void *info)
 

Detailed Description

dox


Function Documentation

◆ mvme_close()

int EXPRT mvme_close ( MVME_INTERFACE vme)

Close and release ALL the opened VME channel. See example in mvme_open()

Parameters
*vmeVME structure.
Returns
MVME_SUCCESS, MVME_ACCESS_ERROR
Here is the caller graph for this function:

◆ mvme_get_am()

int EXPRT mvme_get_am ( MVME_INTERFACE vme,
int *  am 
)

Get Address Modifier.

Parameters
*vmeVME structure
*amreturned address modifier
Returns
MVME_SUCCESS

◆ mvme_get_blt()

int EXPRT mvme_get_blt ( MVME_INTERFACE vme,
int *  mode 
)

Get current Data mode.

Parameters
*vmeVME structure
*modereturned BLT mode
Returns
MVME_SUCCESS

◆ mvme_get_dmode()

int EXPRT mvme_get_dmode ( MVME_INTERFACE vme,
int *  dmode 
)

Get current Data mode.

Parameters
*vmeVME structure
*dmodereturned address modifier
Returns
MVME_SUCCESS

◆ mvme_interrupt_attach()

int EXPRT mvme_interrupt_attach ( MVME_INTERFACE mvme,
int  level,
int  vector,
void(*)(int, void *, void *)  isr,
void *  info 
)
Here is the caller graph for this function:

◆ mvme_interrupt_detach()

int EXPRT mvme_interrupt_detach ( MVME_INTERFACE mvme,
int  level,
int  vector,
void *  info 
)

◆ mvme_interrupt_disable()

int EXPRT mvme_interrupt_disable ( MVME_INTERFACE mvme,
int  level,
int  vector,
void *  info 
)

◆ mvme_interrupt_enable()

int EXPRT mvme_interrupt_enable ( MVME_INTERFACE mvme,
int  level,
int  vector,
void *  info 
)

◆ mvme_interrupt_generate()

int EXPRT mvme_interrupt_generate ( MVME_INTERFACE mvme,
int  level,
int  vector,
void *  info 
)

◆ mvme_open()

int EXPRT mvme_open ( MVME_INTERFACE **  vme,
int  idx 
)

VME open The code below summarize the use of most of the mvme calls included in this interface.

#include "vmicvme.h" // or other VME interface driver.
int main () {
int i, status, vmeio_status, data;
// Open VME channel
// Reset VME
// Under VMIC reboot CPU!!
// status = mvme_sysreset(myvme);
// Setup AM
// Setup Data size
// Read VMEIO status
status = mvme_read(myvme, &vmeio_status, 0x78001C, 4);
printf("VMEIO status : 0x%x\n", vmeio_status);
// Write Single value
mvme_write_value(myvme, 0x780010, 0x3);
// Read Single Value
printf("Value : 0x%x\n", mvme_read_value(myvme, 0x780018));
// Write to the VMEIO in latch mode
for (i=0;i<10000;i++) {
data = 0xF;
status = mvme_write(myvme, 0x780010, &data, 4);
data = 0x0;
status = mvme_write(myvme, 0x780010, &data, 4);
}
// Close VME channel
return 1;
}
MVME_INTERFACE * myvme
Definition: fevmemodules.c:78
int EXPRT mvme_open(MVME_INTERFACE **vme, int idx)
int EXPRT mvme_read(MVME_INTERFACE *vme, void *dst, mvme_addr_t vme_addr, mvme_size_t n_bytes)
unsigned int EXPRT mvme_read_value(MVME_INTERFACE *vme, mvme_addr_t vme_addr)
int EXPRT mvme_write_value(MVME_INTERFACE *vme, mvme_addr_t vme_addr, unsigned int value)
int EXPRT mvme_set_dmode(MVME_INTERFACE *vme, int dmode)
int EXPRT mvme_write(MVME_INTERFACE *vme, mvme_addr_t vme_addr, void *src, mvme_size_t n_bytes)
int EXPRT mvme_close(MVME_INTERFACE *vme)
int EXPRT mvme_set_am(MVME_INTERFACE *vme, int am)
#define MVME_DMODE_D32
Definition: mvmestd.h:82
#define MVME_AM_A24_ND
Definition: mvmestd.h:120
int main(int argc, char *argv[])
Definition: mana.cxx:5320
void * data
Definition: mana.cxx:268
INT i
Definition: mdump.cxx:35
DWORD status
Definition: odbhist.cxx:39
Parameters
**vmeuser VME pointer to the interface
indexinterface number should be used to distingush multiple VME interface access within the same program.
Returns
status MVME_SUCCESS, MVME_NO_INTERFACE, MVME_INVALID_PARAM, MVME_ACCESS_ERROR
Here is the caller graph for this function:

◆ mvme_read()

int EXPRT mvme_read ( MVME_INTERFACE vme,
void *  dst,
mvme_addr_t  vme_addr,
mvme_size_t  n_bytes 
)

Read from VME bus. Implementation of the read can include automatic DMA transfer based on the size of the data. See example in mvme_open()

Parameters
*vmeVME structure
*dstdestination pointer
vme_addrsource address (VME location).
n_bytesrequested transfer size.
Returns
MVME_SUCCESS

◆ mvme_read_value()

unsigned int EXPRT mvme_read_value ( MVME_INTERFACE vme,
mvme_addr_t  vme_addr 
)

Read single data from VME bus. Useful for register access. See example in mvme_open()

Parameters
*vmeVME structure
vme_addrsource address (VME location).
Returns
MVME_SUCCESS
Here is the caller graph for this function:

◆ mvme_set_am()

int EXPRT mvme_set_am ( MVME_INTERFACE vme,
int  am 
)

Set Address Modifier.

Parameters
*vmeVME structure
amaddress modifier
Returns
MVME_SUCCESS
Here is the caller graph for this function:

◆ mvme_set_blt()

int EXPRT mvme_set_blt ( MVME_INTERFACE vme,
int  mode 
)

Set Block Transfer mode.

Parameters
*vmeVME structure
modeBLT mode
Returns
MVME_SUCCESS

◆ mvme_set_dmode()

int EXPRT mvme_set_dmode ( MVME_INTERFACE vme,
int  dmode 
)

Set Data mode.

Parameters
*vmeVME structure
dmodeData mode
Returns
MVME_SUCCESS
Here is the caller graph for this function:

◆ mvme_sysreset()

int EXPRT mvme_sysreset ( MVME_INTERFACE vme)

VME bus reset. Effect of the VME bus reset is dependent of the type of VME interface used. See example in mvme_open()

Parameters
*vmeVME structure.
Returns
MVME_SUCCESS, MVME_ACCESS_ERROR

◆ mvme_write()

int EXPRT mvme_write ( MVME_INTERFACE vme,
mvme_addr_t  vme_addr,
void *  src,
mvme_size_t  n_bytes 
)

Write data to VME bus. Implementation of the write can include automatic DMA transfer based on the size of the data. See example in mvme_open()

Parameters
*vmeVME structure
vme_addrsource address (VME location).
*srcsource array
n_bytessize of the array in bytes
Returns
MVME_SUCCESS

◆ mvme_write_value()

int EXPRT mvme_write_value ( MVME_INTERFACE vme,
mvme_addr_t  vme_addr,
unsigned int  value 
)

Write single data to VME bus. Useful for register access. See example in mvme_open()

Parameters
*vmeVME structure
vme_addrsource address (VME location).
valueValue to be written to the VME bus
Returns
MVME_SUCCESS
Here is the caller graph for this function: