22#ifndef ZSTD_FILEIO_ASYNCIO_H
23#define ZSTD_FILEIO_ASYNCIO_H
25#if defined (__cplusplus)
36#define MAX_IO_JOBS (10)
199#if defined (__cplusplus)
unsigned long long U64
Definition lz4.c:318
Definition fileio_asyncio.h:89
void * ctx
Definition fileio_asyncio.h:91
U64 offset
Definition fileio_asyncio.h:99
size_t bufferSize
Definition fileio_asyncio.h:94
void * buffer
Definition fileio_asyncio.h:93
FILE * file
Definition fileio_asyncio.h:92
size_t usedBufferSize
Definition fileio_asyncio.h:98
Definition fileio_asyncio.h:38
int availableJobsCount
Definition fileio_asyncio.h:53
ZSTD_pthread_mutex_t ioJobsMutex
Definition fileio_asyncio.h:51
int threadPoolActive
Definition fileio_asyncio.h:41
POOL_ctx * threadPool
Definition fileio_asyncio.h:40
int totalIoJobs
Definition fileio_asyncio.h:42
size_t jobBufferSize
Definition fileio_asyncio.h:54
POOL_function poolFunction
Definition fileio_asyncio.h:44
FILE * file
Definition fileio_asyncio.h:47
const FIO_prefs_t * prefs
Definition fileio_asyncio.h:43
Definition fileio_asyncio.h:57
U64 waitingOnOffset
Definition fileio_asyncio.h:63
int reachedEof
Definition fileio_asyncio.h:61
IOPoolCtx_t base
Definition fileio_asyncio.h:58
int completedJobsCount
Definition fileio_asyncio.h:80
U8 * coalesceBuffer
Definition fileio_asyncio.h:70
size_t srcBufferLoaded
Definition fileio_asyncio.h:75
void * currentJobHeld
Definition fileio_asyncio.h:66
ZSTD_pthread_cond_t jobCompletedCond
Definition fileio_asyncio.h:81
U64 nextReadOffset
Definition fileio_asyncio.h:62
U8 * srcBuffer
Definition fileio_asyncio.h:74
Definition fileio_asyncio.h:84
IOPoolCtx_t base
Definition fileio_asyncio.h:85
unsigned storedSkips
Definition fileio_asyncio.h:86
Definition parallel_compression.c:94
md5_starts & ctx
Definition zlib_interface.c:41
uint8_t U8
Definition mem.h:33
void(* POOL_function)(void *)
Definition pool.h:61
int ZSTD_pthread_mutex_t
Definition threading.h:134
int ZSTD_pthread_cond_t
Definition threading.h:140
void AIO_WritePool_free(WritePoolCtx_t *ctx)
Definition fileio_asyncio.c:392
int AIO_supported(void)
Definition fileio_asyncio.c:134
void AIO_ReadPool_setFile(ReadPoolCtx_t *ctx, FILE *file)
Definition fileio_asyncio.c:526
void AIO_WritePool_releaseIoJob(IOJob_t *job)
Definition fileio_asyncio.c:356
int AIO_ReadPool_closeFile(ReadPoolCtx_t *ctx)
Definition fileio_asyncio.c:652
void AIO_ReadPool_free(ReadPoolCtx_t *ctx)
Definition fileio_asyncio.c:568
#define MAX_IO_JOBS
Definition fileio_asyncio.h:36
void AIO_ReadPool_consumeBytes(ReadPoolCtx_t *ctx, size_t n)
Definition fileio_asyncio.c:580
void AIO_WritePool_sparseWriteEnd(WritePoolCtx_t *ctx)
Definition fileio_asyncio.c:332
void AIO_ReadPool_setAsync(ReadPoolCtx_t *ctx, int async)
Definition fileio_asyncio.c:661
FILE * AIO_ReadPool_getFile(const ReadPoolCtx_t *ctx)
Definition fileio_asyncio.c:646
void AIO_WritePool_setAsync(WritePoolCtx_t *ctx, int async)
Definition fileio_asyncio.c:404
size_t AIO_ReadPool_fillBuffer(ReadPoolCtx_t *ctx, size_t n)
Definition fileio_asyncio.c:603
void AIO_WritePool_setFile(WritePoolCtx_t *ctx, FILE *file)
Definition fileio_asyncio.c:343
int AIO_WritePool_closeFile(WritePoolCtx_t *ctx)
Definition fileio_asyncio.c:363
IOJob_t * AIO_WritePool_acquireJob(WritePoolCtx_t *ctx)
Definition fileio_asyncio.c:315
size_t AIO_ReadPool_consumeAndRefill(ReadPoolCtx_t *ctx)
Definition fileio_asyncio.c:639
void AIO_WritePool_enqueueAndReacquireWriteJob(IOJob_t **job)
Definition fileio_asyncio.c:324
WritePoolCtx_t * AIO_WritePool_create(const FIO_prefs_t *prefs, size_t bufferSize)
Definition fileio_asyncio.c:382
ReadPoolCtx_t * AIO_ReadPool_create(const FIO_prefs_t *prefs, size_t bufferSize)
Definition fileio_asyncio.c:548
FILE * AIO_WritePool_getFile(const WritePoolCtx_t *ctx)
Definition fileio_asyncio.c:350