RTEMS CPU Kit with SuperCore
4.11.3
|
RTEMS Run-Time Linker Object File Compression manages a compressed stream of data. More...
#include <rtems/rtl/rtl-obj-cache.h>
Go to the source code of this file.
Data Structures | |
struct | rtems_rtl_obj_cpmp_s |
The compressed file. More... | |
Macros | |
#define | RTEMS_RTL_DECOMP_INPUT_SIZE (256) |
The amount of input data read at a time from the file. | |
#define | RTEMS_RTL_COMP_NONE (0) |
The types of supported compression. | |
#define | RTEMS_RTL_COMP_LZ77 (1) |
Typedefs | |
typedef struct rtems_rtl_obj_cpmp_s | rtems_rtl_obj_comp_t |
The compressed file. | |
Functions | |
bool | rtems_rtl_obj_comp_open (rtems_rtl_obj_comp_t *comp, size_t size) |
Open a compressor allocating the output buffer. More... | |
void | rtems_rtl_obj_comp_close (rtems_rtl_obj_comp_t *comp) |
Close a compressor. More... | |
void | rtems_rtl_obj_comp_set (rtems_rtl_obj_comp_t *comp, rtems_rtl_obj_cache_t *cache, int fd, int compression, off_t offset) |
Set the cache and offset in the file the compressed stream starts. More... | |
bool | rtems_rtl_obj_comp_read (rtems_rtl_obj_comp_t *comp, void *buffer, size_t length) |
Read decompressed data. More... | |
RTEMS Run-Time Linker Object File Compression manages a compressed stream of data.
This is a simple interface to the object file cache to stream data from from a compressed object file. There is no ability to seek with the data from a compressed file. The module exists to allocate the output buffer when the loader starts and use the cache buffers will have been allocated.
void rtems_rtl_obj_comp_close | ( | rtems_rtl_obj_comp_t * | comp | ) |
Close a compressor.
comp | The compressor to close. |
References rtems_rtl_obj_cpmp_s::buffer, rtems_rtl_obj_cpmp_s::cache, rtems_rtl_obj_cpmp_s::compression, rtems_rtl_obj_cpmp_s::fd, rtems_rtl_alloc_del(), and RTEMS_RTL_ALLOC_OBJECT.
bool rtems_rtl_obj_comp_open | ( | rtems_rtl_obj_comp_t * | comp, |
size_t | size | ||
) |
Open a compressor allocating the output buffer.
comp | The compressor to initialise. |
size | The size of the compressor's output buffer. |
true | The compressor is open. |
false | The compressor is not open. The RTL error is set. |
bool rtems_rtl_obj_comp_read | ( | rtems_rtl_obj_comp_t * | comp, |
void * | buffer, | ||
size_t | length | ||
) |
Read decompressed data.
The length contains the amount of data that should be available in the cache and referenced by the buffer handle. It must be less than or equal to the size of the cache. This call will return the amount of data that is available. It can be less than you ask if the offset and size is past the end of the file.
comp | The compressor to read data from. |
buffer | The buffer the output is written too. |
length | The length of data to read. Can be modified to a lesser value and true is still returned so check it. |
true | The data referenced is in the cache. |
false | The read failed and the RTL error has been set. |
void rtems_rtl_obj_comp_set | ( | rtems_rtl_obj_comp_t * | comp, |
rtems_rtl_obj_cache_t * | cache, | ||
int | fd, | ||
int | compression, | ||
off_t | offset | ||
) |
Set the cache and offset in the file the compressed stream starts.
comp | The compressor to set the offset in. |
cache | The cache to read the file in by. |
fd | The file descriptor. Must be an open file. |
compression | The type of compression being streamed. |
offset | The offset in the file the compressed stream starts. |
References rtems_rtl_obj_cpmp_s::cache, rtems_rtl_obj_cpmp_s::compression, rtems_rtl_obj_cpmp_s::fd, rtems_rtl_obj_cpmp_s::level, rtems_rtl_obj_cpmp_s::offset, and rtems_rtl_obj_cpmp_s::read.
Referenced by rtems_rtl_obj_comp().