1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-30 13:01:23 +03:00

Implemented the noop and native pointers

This commit is contained in:
Aris Adamantiadis
2010-09-06 16:52:14 +02:00
parent fbe102bada
commit 49f57a8d0d
6 changed files with 95 additions and 44 deletions

View File

@@ -255,8 +255,27 @@ LIBSSH_API int ssh_set_callbacks(ssh_session session, ssh_callbacks cb);
*/
typedef int (*ssh_thread_callback) (void **lock);
/**
* @brief Type of the threading solution implemented behind
* these callbacks
*/
enum ssh_threads_type_e {
/** The thread callbacks do nothing */
ssh_threads_type_noop,
/** The thread callbacks use pthread */
ssh_threads_type_pthread,
/** The thread callbacks use win32 threads */
ssh_threads_type_win32,
/** The thread callbacks use pth */
ssh_threads_type_pth,
/** The thread callbacks are unknown or different */
ssh_threads_type_other
};
typedef unsigned long (*ssh_thread_id_callback) (void);
struct ssh_threads_callbacks_struct {
enum ssh_threads_type_e type;
ssh_thread_callback mutex_init;
ssh_thread_callback mutex_destroy;
ssh_thread_callback mutex_lock;
@@ -277,7 +296,9 @@ struct ssh_threads_callbacks_struct {
LIBSSH_API int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct
*cb);
extern struct ssh_threads_callbacks_struct ssh_pthread_callbacks;
extern struct ssh_threads_callbacks_struct ssh_threads_pthread;
extern struct ssh_threads_callbacks_struct ssh_threads_noop;
extern struct ssh_threads_callbacks_struct ssh_threads_native;
/** @} */
#ifdef __cplusplus