Rtos API example
ProfilingBlockDevice Class Reference
Block device for measuring storage operations of another block device. More...
#include <ProfilingBlockDevice.h>
Inherits BlockDevice.
Public Member Functions | |
ProfilingBlockDevice (BlockDevice *bd) | |
Lifetime of the memory block device. | |
virtual | ~ProfilingBlockDevice () |
Lifetime of a block device. | |
virtual int | init () |
Initialize a block device. | |
virtual int | deinit () |
Deinitialize a block device. | |
virtual int | read (void *buffer, bd_addr_t addr, bd_size_t size) |
Read blocks from a block device. | |
virtual int | program (const void *buffer, bd_addr_t addr, bd_size_t size) |
Program blocks to a block device. | |
virtual int | erase (bd_addr_t addr, bd_size_t size) |
Erase blocks on a block device. | |
virtual bd_size_t | get_read_size () const |
Get the size of a readable block. | |
virtual bd_size_t | get_program_size () const |
Get the size of a programable block. | |
virtual bd_size_t | get_erase_size () const |
Get the size of a eraseable block. | |
virtual bd_size_t | size () const |
Get the total size of the underlying device. | |
void | reset () |
Reset the current profile counts to zero. | |
bd_size_t | get_read_count () const |
Get number of bytes that have been read from the block device. | |
bd_size_t | get_program_count () const |
Get number of bytes that have been programed to the block device. | |
bd_size_t | get_erase_count () const |
Get number of bytes that have been erased from the block device. | |
virtual int | trim (bd_addr_t addr, bd_size_t size) |
Mark blocks as no longer in use. | |
bool | is_valid_read (bd_addr_t addr, bd_size_t size) const |
Convenience function for checking block read validity. | |
bool | is_valid_program (bd_addr_t addr, bd_size_t size) const |
Convenience function for checking block program validity. | |
bool | is_valid_erase (bd_addr_t addr, bd_size_t size) const |
Convenience function for checking block erase validity. |
Detailed Description
Block device for measuring storage operations of another block device.
#include "mbed.h" #include "HeapBlockDevice.h" #include "ProfilingBlockDevice.h" // Create a heap block device and profiling block device HeapBlockDevice mem(64*512, 512); ProfilingBlockDevice profiler(&mem); // do block device work.... printf("read count: %lld\n", profiler.get_read_count()); printf("program count: %lld\n", profiler.get_program_count()); printf("erase count: %lld\n", profiler.get_erase_count());
Definition at line 47 of file ProfilingBlockDevice.h.
Constructor & Destructor Documentation
ProfilingBlockDevice | ( | BlockDevice * | bd ) |
Lifetime of the memory block device.
- Parameters:
-
bd Block device to back the ProfilingBlockDevice
Definition at line 20 of file ProfilingBlockDevice.cpp.
virtual ~ProfilingBlockDevice | ( | ) | [virtual] |
Lifetime of a block device.
Definition at line 58 of file ProfilingBlockDevice.h.
Member Function Documentation
int deinit | ( | ) | [virtual] |
Deinitialize a block device.
- Returns:
- 0 on success or a negative error code on failure
- Note:
- The init and deinit functions do not effect profile counts
Implements BlockDevice.
Definition at line 33 of file ProfilingBlockDevice.cpp.
int erase | ( | bd_addr_t | addr, |
bd_size_t | size | ||
) | [virtual] |
Erase blocks on a block device.
The state of an erased block is undefined until it has been programmed
- Parameters:
-
addr Address of block to begin erasing size Size to erase in bytes, must be a multiple of erase block size
- Returns:
- 0 on success, negative error code on failure
Reimplemented from BlockDevice.
Definition at line 56 of file ProfilingBlockDevice.cpp.
bd_size_t get_erase_count | ( | ) | const |
Get number of bytes that have been erased from the block device.
- Returns:
- The number of bytes that have been erased from the block device
Definition at line 102 of file ProfilingBlockDevice.cpp.
bd_size_t get_erase_size | ( | ) | const [virtual] |
Get the size of a eraseable block.
- Returns:
- Size of a eraseable block in bytes
- Note:
- Must be a multiple of the program size
Reimplemented from BlockDevice.
Definition at line 75 of file ProfilingBlockDevice.cpp.
bd_size_t get_program_count | ( | ) | const |
Get number of bytes that have been programed to the block device.
- Returns:
- The number of bytes that have been programed to the block device
Definition at line 97 of file ProfilingBlockDevice.cpp.
bd_size_t get_program_size | ( | ) | const [virtual] |
Get the size of a programable block.
- Returns:
- Size of a programable block in bytes
- Note:
- Must be a multiple of the read size
Implements BlockDevice.
Definition at line 70 of file ProfilingBlockDevice.cpp.
bd_size_t get_read_count | ( | ) | const |
Get number of bytes that have been read from the block device.
- Returns:
- The number of bytes that have been read from the block device
Definition at line 92 of file ProfilingBlockDevice.cpp.
bd_size_t get_read_size | ( | ) | const [virtual] |
Get the size of a readable block.
- Returns:
- Size of a readable block in bytes
Implements BlockDevice.
Definition at line 65 of file ProfilingBlockDevice.cpp.
int init | ( | ) | [virtual] |
Initialize a block device.
- Returns:
- 0 on success or a negative error code on failure
- Note:
- The init and deinit functions do not effect profile counts
Implements BlockDevice.
Definition at line 28 of file ProfilingBlockDevice.cpp.
bool is_valid_erase | ( | bd_addr_t | addr, |
bd_size_t | size | ||
) | const [inherited] |
Convenience function for checking block erase validity.
- Parameters:
-
addr Address of block to begin erasing size Size to erase in bytes
- Returns:
- True if erase is valid for underlying block device
Definition at line 178 of file BlockDevice.h.
bool is_valid_program | ( | bd_addr_t | addr, |
bd_size_t | size | ||
) | const [inherited] |
Convenience function for checking block program validity.
- Parameters:
-
addr Address of block to begin writing to size Size to write in bytes
- Returns:
- True if program is valid for underlying block device
Definition at line 164 of file BlockDevice.h.
bool is_valid_read | ( | bd_addr_t | addr, |
bd_size_t | size | ||
) | const [inherited] |
Convenience function for checking block read validity.
- Parameters:
-
addr Address of block to begin reading from size Size to read in bytes
- Returns:
- True if read is valid for underlying block device
Definition at line 150 of file BlockDevice.h.
int program | ( | const void * | buffer, |
bd_addr_t | addr, | ||
bd_size_t | size | ||
) | [virtual] |
Program blocks to a block device.
The blocks must have been erased prior to being programmed
- Parameters:
-
buffer Buffer of data to write to blocks addr Address of block to begin writing to size Size to write in bytes, must be a multiple of program block size
- Returns:
- 0 on success, negative error code on failure
Implements BlockDevice.
Definition at line 47 of file ProfilingBlockDevice.cpp.
int read | ( | void * | buffer, |
bd_addr_t | addr, | ||
bd_size_t | size | ||
) | [virtual] |
Read blocks from a block device.
- Parameters:
-
buffer Buffer to read blocks into addr Address of block to begin reading from size Size to read in bytes, must be a multiple of read block size
- Returns:
- 0 on success, negative error code on failure
Implements BlockDevice.
Definition at line 38 of file ProfilingBlockDevice.cpp.
void reset | ( | void | ) |
Reset the current profile counts to zero.
Definition at line 85 of file ProfilingBlockDevice.cpp.
bd_size_t size | ( | ) | const [virtual] |
Get the total size of the underlying device.
- Returns:
- Size of the underlying device in bytes
Implements BlockDevice.
Definition at line 80 of file ProfilingBlockDevice.cpp.
virtual int trim | ( | bd_addr_t | addr, |
bd_size_t | size | ||
) | [virtual, inherited] |
Mark blocks as no longer in use.
This function provides a hint to the underlying block device that a region of blocks is no longer in use and may be erased without side effects. Erase must still be called before programming, but trimming allows flash-translation-layers to schedule erases when the device is not busy.
- Parameters:
-
addr Address of block to mark as unused size Size to mark as unused in bytes, must be a multiple of erase block size
- Returns:
- 0 on success, negative error code on failure
Definition at line 110 of file BlockDevice.h.
Generated on Sun Jul 17 2022 08:25:42 by 1.7.2