GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> MEM / V5-8-1 > mem_base / mv2304
#include <string.h>
#include <MEM/MEM_cmddefs.h>
#include <MEM/MEM_dump.h>
#include <MEM/MEM_msgs.h>
#include <MSG/MSG_pubdefs.h>
#include <mempriv.h>
#include <PBS/MBA.h>
Classes | |
union | _mem_DumpSnap |
Memory Dump snapshot. More... | |
struct | _mem_DumpContext |
Memory Dump context. More... | |
Defines | |
#define | MEM_DUMP_KEY_VALID (0x235689ab) |
Dump info 'valid' key value. | |
Typedefs | |
typedef union _mem_DumpSnap | mem_DumpSnap |
Typedef for _mem_DumpSnap. | |
typedef struct _mem_DumpContext | mem_DumpContext |
Typedef for _mem_DumpContext. | |
Functions | |
static void * | Mem_GatherRegisterSet (void *ptr) |
Gather CPU register info. | |
static void * | Mem_GatherPciHeader (unsigned char *dest_p, MEM_Descriptor *md_p) |
Gather PCI device header info. | |
static unsigned int | mem_dumpCheckHandle (const MEM_DumpHandle handle, mem_DumpContext **context_pp) |
Validate a Memory Dump context handle. | |
static unsigned int | mem_dumpUpdateStatus (mem_DumpContext *context_p, const unsigned int status) |
Update dump context status. | |
static unsigned int | mem_dumpResetContext (mem_DumpContext *context_p) |
Reset the state of a dump context. | |
unsigned int | MEM_dumpInit (void) |
Start the Memory Dump system. | |
MEM_Status | mem_ValidateDumpDescriptor (const MEM_Descriptor *md, const mem_mapEntry **mapEntry) |
Validate arguments for memory dump. | |
unsigned int | MEM_dumpGetContext (MEM_DumpHandle *handle_p) |
Allocate a Memory Dump context. | |
unsigned int | MEM_dumpReleaseContext (MEM_DumpHandle handle) |
Release a Memory Dump context. | |
unsigned int | MEM_dumpStart (MEM_DumpHandle handle, const MEM_Descriptor *md_p) |
unsigned int | MEM_CancelDump (MEM_DumpHandle handle) |
Cancel a Memory Dump operation. | |
unsigned int | MEM_dumpGetInfo (const MEM_DumpHandle handle, MEM_DumpInfo *info_p) |
Get detailed information about a Memory Dump context. | |
unsigned int | MEM_dumpGetData (MEM_DumpHandle handle, size_t req_bytes, caddr_t *addr_p, size_t *act_bytes_p, void *dest_p) |
Read data for a Memory Dump operation. |
These functions handle Memory Dump telecommands and the resulting dump operations.
CVS $Id: memdump.c,v 1.21 2011/03/29 01:58:53 apw Exp $
Typedef for _mem_DumpContext.
The typedef for _mem_DumpContext.
Typedef for _mem_DumpSnap.
The typedef for _mem_DumpSnap.
unsigned int MEM_CancelDump | ( | MEM_DumpHandle | handle | ) |
Cancel a Memory Dump operation.
handle | Handle for dump context. |
References _MEM_Descriptor::addr, _mem_DumpContext::currentAddr, FALSE, _mem_DumpContext::md, mem_dumpCheckHandle(), mem_dumpUpdateStatus(), MEM_MSG, and _mem_DumpContext::wrapped.
unsigned int mem_dumpCheckHandle | ( | const MEM_DumpHandle | handle, | |
mem_DumpContext ** | context_pp | |||
) | [static] |
Validate a Memory Dump context handle.
Validate a Memory Dump context handle and return a pointer to the corresponding context.
handle | Handle for the context. | |
context_pp | Pointer to location to return context pointer. |
References MEM_DUMP_KEY_VALID, and _mem_DumpContext::valid_key.
Referenced by MEM_CancelDump(), MEM_dumpGetData(), MEM_dumpGetInfo(), MEM_dumpReleaseContext(), and MEM_dumpStart().
unsigned int MEM_dumpGetContext | ( | MEM_DumpHandle * | handle_p | ) |
Allocate a Memory Dump context.
Allocate a Memory Dump context. This is analogous to a constructor for a context. This function returns only a handle to a context. The details of the context are hidden from the user. The MEM_dumpGetInfo() function can be used to get detailed information about the context.
handle_p | Pointer to location to return context handle. |
References MEM_DUMP_KEY_VALID, mem_dumpResetContext(), mem_dumpUpdateStatus(), and MEM_MSG.
unsigned int MEM_dumpGetData | ( | MEM_DumpHandle | handle, | |
size_t | req_bytes, | |||
caddr_t * | addr_p, | |||
size_t * | act_bytes_p, | |||
void * | dest_p | |||
) |
Read data for a Memory Dump operation.
Read a chunk of data for the specified Memory Dump context. This function should be called repeatedly until all the data associated with the context has been dumped. It returns the address from which the dumped data was read and the actual number of bytes dumped (which may be less than the number of bytes requested).
handle | Handle for dump context. | |
req_bytes | Amount of data to dump, in bytes. | |
addr_p | Pointer to location to return address of dumped data. | |
act_bytes_p | Pointer to location to return num bytes dumped. | |
dest_p | Pointer to location to store dumped data. |
References _MEM_Descriptor::addr, _MEM_Descriptor::bytes, _mem_DumpContext::cb_ptr, _mem_DumpContext::currentAddr, _mem_DumpContext::mapEntry, _mem_DumpContext::md, mem_dumpCheckHandle(), mem_dumpUpdateStatus(), MEM_MSG, _MEM_Descriptor::memmap, _mem_mapEntry::read_cb, and _mem_DumpContext::wrapped.
unsigned int MEM_dumpGetInfo | ( | const MEM_DumpHandle | handle, | |
MEM_DumpInfo * | info_p | |||
) |
Get detailed information about a Memory Dump context.
Get information about a Memory Dump context. The information returned is a subset of the context details that are normally hidden from the user.
handle | Handle for context. | |
info_p | Pointer to location to return context info. |
References _MEM_DumpInfo::current_addr, _mem_DumpContext::currentAddr, _mem_DumpContext::md, _MEM_DumpInfo::md, mem_dumpCheckHandle(), MEM_MSG, _mem_DumpContext::status, _MEM_DumpInfo::status, _mem_DumpContext::wrapped, and _MEM_DumpInfo::wrapped.
unsigned int MEM_dumpInit | ( | void | ) |
Start the Memory Dump system.
Start the Memory Dump system. This function should be called once to initialize the internal state associated with the Memory Dump telecommand handler.
unsigned int MEM_dumpReleaseContext | ( | MEM_DumpHandle | handle | ) |
Release a Memory Dump context.
Release a Memory Dump context so that the memory associated to it can be re-allocated. This is analogous to a destructor for a context.
handle | Handle for context to release. |
References mem_dumpCheckHandle(), and MEM_MSG.
unsigned int mem_dumpResetContext | ( | mem_DumpContext * | context_p | ) | [static] |
Reset the state of a dump context.
Reset the state of a dump context.
context_p | Pointer to dump context. |
References MEM_DUMP_KEY_VALID, and _mem_DumpContext::valid_key.
Referenced by MEM_dumpGetContext(), and MEM_dumpStart().
unsigned int MEM_dumpStart | ( | MEM_DumpHandle | handle, | |
const MEM_Descriptor * | md_p | |||
) |
Start a Memory Dump operation. Updates the Memory Dump context to reflect the start of a dump operation.
handle | Handle for dump context. | |
md_p | Pointer to dump memory descriptor. |
References _MEM_Descriptor::addr, _mem_DumpContext::cb_ptr, _mem_mapEntry::context_p, _mem_DumpContext::currentAddr, _mem_DumpContext::mapEntry, _mem_DumpContext::md, mem_dumpCheckHandle(), mem_dumpResetContext(), mem_dumpUpdateStatus(), Mem_GatherPciHeader(), Mem_GatherRegisterSet(), MEM_MSG, mem_ValidateDumpDescriptor(), _MEM_Descriptor::memmap, _mem_DumpSnap::pci, _mem_DumpSnap::reg, _mem_DumpContext::values, _MEM_Descriptor::words, and _mem_DumpContext::wrapped.
unsigned int mem_dumpUpdateStatus | ( | mem_DumpContext * | context_p, | |
const unsigned int | status | |||
) | [static] |
Update dump context status.
Update a dump context with the specified status.
context_p | Pointer to dump context. | |
status | Most recent function status. |
References _mem_DumpContext::status.
Referenced by MEM_CancelDump(), MEM_dumpGetContext(), MEM_dumpGetData(), and MEM_dumpStart().
void * Mem_GatherPciHeader | ( | unsigned char * | dest_p, | |
MEM_Descriptor * | md_p | |||
) | [static] |
Gather PCI device header info.
Get a PCI Device Header dump and store it at the location defined by dest_p. Returns the sum of dest_p and the number of bytes used to dump the PCI device header.
dest_p | Pointer to location to store PCI device header dump. | |
md_p | Pointer to memory descriptor containing PCI address. |
References _MEM_Descriptor::addr, and MEM_PCI_CONFIG_BYTES.
Referenced by MEM_dumpStart().
void * Mem_GatherRegisterSet | ( | void * | ptr | ) | [static] |
Gather CPU register info.
Get a CPU register dump and store it at the location defined by ptr. Returns the sum of ptr and the number of bytes used to dump the register set.
ptr | Pointer to location to store register dump. |
Referenced by MEM_dumpStart().
MEM_Status mem_ValidateDumpDescriptor | ( | const MEM_Descriptor * | md, | |
const mem_mapEntry ** | mapEntry | |||
) |
Validate arguments for memory dump.
The code determines if a memory descriptor is valid and appropriate for a memory dump (a valid memory descriptor does not infer that it is valid for a dump operation). The address and range of the memory descriptor are checked against the memory map to ensure that the operation is valid.
This function also returns a pointer to the matching memory map entry when MEM_SUCCESS is returned.
md | Memory descriptor to validate. | |
mapEntry | Pointer to location to store matching memory map entry pointer. Only valid as a return value if MEM_SUCESS is returned. |
MEM_SUCESS | Memory descriptor valid for dump and mapEntry valid. | |
MEM_BADMAP | Memory map in descriptor not valid for memory dump. | |
MEM_OUTOFRNG | Address and/or size out of range for dump. | |
MEM_BADACC | Memory descriptor not readable or not properly 32-bit aligned. | |
MEM_UNKNOWN | Coding error encountered. |
References _MEM_Descriptor::addr, MEM_MAP_ACCESS_READ_32, MEM_MSG, Mem_ValidateMemoryRange(), _MEM_Descriptor::memmap, and _MEM_Descriptor::words.
Referenced by MEM_dumpStart().