2023-09-30 15:02:30 +03:00
|
|
|
#ifndef __STEAMCLIENT_UNIXLIB_H
|
|
|
|
#define __STEAMCLIENT_UNIXLIB_H
|
|
|
|
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stddef.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
|
|
|
|
#include <windef.h>
|
|
|
|
#include <winbase.h>
|
2023-09-30 14:08:49 +03:00
|
|
|
#include <winternl.h>
|
2023-09-30 15:02:30 +03:00
|
|
|
|
2023-10-02 11:51:14 +03:00
|
|
|
#include "steamclient_structs.h"
|
|
|
|
|
2023-09-30 14:08:49 +03:00
|
|
|
#include "wine/unixlib.h"
|
|
|
|
|
2023-09-30 15:02:30 +03:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C"
|
|
|
|
{
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
unsigned int steamclient_unix_path_to_dos_path( bool api_result, const char *src, char *dst,
|
|
|
|
uint32_t dst_bytes, int is_url );
|
|
|
|
|
|
|
|
extern const char *steamclient_dos_to_unix_path( const char *src, int is_url );
|
|
|
|
extern void steamclient_free_path( const char *path_array );
|
|
|
|
extern const char **steamclient_dos_to_unix_path_array( const char **src_array );
|
|
|
|
extern void steamclient_free_path_array( const char **path_array );
|
|
|
|
|
|
|
|
#define PATH_MAX 4096
|
|
|
|
extern char g_tmppath[PATH_MAX];
|
|
|
|
|
2023-10-19 12:07:32 +03:00
|
|
|
struct steamclient_init_params
|
|
|
|
{
|
|
|
|
const char *steam_app_id;
|
|
|
|
bool steam_app_id_unset;
|
|
|
|
const char *ignore_child_processes;
|
|
|
|
bool ignore_child_processes_unset;
|
|
|
|
};
|
|
|
|
|
2023-09-30 15:02:30 +03:00
|
|
|
enum callback_type
|
|
|
|
{
|
2023-10-02 16:27:37 +03:00
|
|
|
SOCKETS_DEBUG_OUTPUT = 1,
|
|
|
|
WARNING_MESSAGE_HOOK,
|
2023-09-30 15:02:30 +03:00
|
|
|
};
|
|
|
|
|
2023-10-02 16:27:37 +03:00
|
|
|
struct callback
|
2023-09-30 15:02:30 +03:00
|
|
|
{
|
|
|
|
enum callback_type type;
|
2023-10-02 16:27:37 +03:00
|
|
|
uint32_t size;
|
|
|
|
|
2023-09-30 15:02:30 +03:00
|
|
|
union
|
|
|
|
{
|
|
|
|
struct
|
|
|
|
{
|
2023-10-02 16:27:37 +03:00
|
|
|
void (*W_STDCALL pfnFunc)( uint32_t, const char * );
|
|
|
|
uint32_t type;
|
|
|
|
const char msg[1];
|
|
|
|
} sockets_debug_output;
|
|
|
|
|
2023-09-30 15:02:30 +03:00
|
|
|
struct
|
|
|
|
{
|
2023-10-02 16:27:37 +03:00
|
|
|
void (*W_CDECL pFunction)( int32_t, const char * );
|
|
|
|
int32_t severity;
|
|
|
|
const char msg[1];
|
|
|
|
} warning_message_hook;
|
2023-09-30 15:02:30 +03:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-10-19 12:07:32 +03:00
|
|
|
extern bool unix_steamclient_init( struct steamclient_init_params *params );
|
2023-10-02 16:27:37 +03:00
|
|
|
extern bool unix_steamclient_next_callback( struct callback *callback, uint32_t *length );
|
2023-10-19 12:07:32 +03:00
|
|
|
extern void *unix_CreateInterface( const char *name, int *return_code );
|
2023-10-01 11:30:01 +03:00
|
|
|
extern bool unix_Steam_GetAPICallResult( int32_t pipe, uint64_t call, void *w_callback,
|
|
|
|
int w_callback_len, int id, bool *failed );
|
2023-10-01 11:32:08 +03:00
|
|
|
extern bool unix_Steam_BGetCallback( uint32_t pipe, w_CallbackMsg_t *w_msg, int32_t *ignored, u_CallbackMsg_t *u_msg );
|
|
|
|
extern void unix_callback_message_receive( u_CallbackMsg_t *u_msg, w_CallbackMsg_t *w_msg );
|
|
|
|
extern bool unix_Steam_FreeLastCallback( uint32_t pipe );
|
2023-10-19 12:07:32 +03:00
|
|
|
extern void unix_Steam_ReleaseThreadLocalMemory( int thread_exit );
|
|
|
|
extern bool unix_Steam_IsKnownInterface( const char *version );
|
|
|
|
extern void unix_Steam_NotifyMissingInterface( int32_t pipe, const char *version );
|
2023-10-01 11:32:08 +03:00
|
|
|
|
2023-10-02 11:51:14 +03:00
|
|
|
struct networking_message_pool;
|
|
|
|
struct networking_message
|
|
|
|
{
|
|
|
|
struct networking_message_pool *pool;
|
|
|
|
void **p_data;
|
|
|
|
uint32_t *p_size;
|
|
|
|
|
2023-10-02 11:52:15 +03:00
|
|
|
union
|
|
|
|
{
|
|
|
|
u_SteamNetworkingMessage_t_144 *u_msg_144;
|
|
|
|
u_SteamNetworkingMessage_t_147 *u_msg_147;
|
2023-10-02 15:50:49 +03:00
|
|
|
u_SteamNetworkingMessage_t_153a *u_msg_153a;
|
2023-10-02 11:52:15 +03:00
|
|
|
};
|
|
|
|
union
|
|
|
|
{
|
|
|
|
w_SteamNetworkingMessage_t_144 w_msg_144;
|
|
|
|
w_SteamNetworkingMessage_t_147 w_msg_147;
|
2023-10-02 15:50:49 +03:00
|
|
|
w_SteamNetworkingMessage_t_153a w_msg_153a;
|
2023-10-02 11:52:15 +03:00
|
|
|
};
|
2023-10-02 11:51:14 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
extern void unix_networking_messages_receive_144( uint32_t count, w_SteamNetworkingMessage_t_144 **w_msgs );
|
2023-10-02 11:52:15 +03:00
|
|
|
extern void unix_networking_messages_receive_147( uint32_t count, w_SteamNetworkingMessage_t_147 **w_msgs );
|
2023-10-02 15:50:49 +03:00
|
|
|
extern void unix_networking_messages_receive_153a( uint32_t count, w_SteamNetworkingMessage_t_153a **w_msgs );
|
2023-10-02 11:52:15 +03:00
|
|
|
extern void unix_networking_message_release_147( w_SteamNetworkingMessage_t_147 *w_msg );
|
2023-10-02 15:50:49 +03:00
|
|
|
extern void unix_networking_message_release_153a( w_SteamNetworkingMessage_t_153a *w_msg );
|
2023-10-02 11:51:14 +03:00
|
|
|
|
2023-09-30 14:08:49 +03:00
|
|
|
typedef NTSTATUS (*unixlib_entry_t)( void *args );
|
|
|
|
extern const unixlib_entry_t __wine_unix_call_funcs[];
|
|
|
|
|
|
|
|
#define STEAMCLIENT_CALL( code, args ) __wine_unix_call_funcs[unix_ ## code]( args )
|
|
|
|
|
2023-09-30 15:02:30 +03:00
|
|
|
#ifdef __cplusplus
|
|
|
|
} /* extern "C" */
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
2023-09-30 14:08:49 +03:00
|
|
|
#include "unixlib_generated.h"
|
|
|
|
|
2023-09-30 15:02:30 +03:00
|
|
|
#endif /* __STEAMCLIENT_UNIXLIB_H */
|