*/
#include <openssl/async.h>
+#include <openssl/crypto.h>
-typedef struct async_ctx_st ASYNC_CTX;
+typedef struct async_ctx_st async_ctx;
#include "arch/async_win.h"
#include "arch/async_posix.h"
#include "arch/async_null.h"
struct async_ctx_st {
- ASYNC_FIBRE dispatcher;
+ async_fibre dispatcher;
ASYNC_JOB *currjob;
};
struct async_job_st {
- ASYNC_FIBRE fibrectx;
+ async_fibre fibrectx;
int (*func) (void *);
void *funcargs;
int ret;
int status;
+ int wake_set;
+ int wait_fd;
+ int wake_fd;
};
-void ASYNC_start_func(void);
+DECLARE_STACK_OF(ASYNC_JOB)
+
+void async_start_func(void);
+STACK_OF(ASYNC_JOB) *async_get_pool(void);
+int async_set_pool(STACK_OF(ASYNC_JOB) *poolin, size_t curr_size,
+ size_t max_size);
+void async_increment_pool_size(void);
+void async_release_job_to_pool(ASYNC_JOB *job);
+size_t async_pool_max_size(void);
+void async_release_pool(void);
+int async_pool_can_grow(void);
+int async_pipe(int *pipefds);
+int async_write1(int fd, const void *buf);
+int async_read1(int fd, void *buf);