summaryrefslogtreecommitdiffstats
path: root/vnc/vnc.h
diff options
context:
space:
mode:
Diffstat (limited to 'vnc/vnc.h')
-rw-r--r--vnc/vnc.h153
1 files changed, 153 insertions, 0 deletions
diff --git a/vnc/vnc.h b/vnc/vnc.h
new file mode 100644
index 00000000..81079b73
--- /dev/null
+++ b/vnc/vnc.h
@@ -0,0 +1,153 @@
+/*
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ xrdp: A Remote Desktop Protocol server.
+ Copyright (C) Jay Sorg 2004
+
+ libvnc
+
+*/
+
+/* check endianess */
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define L_ENDIAN
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define B_ENDIAN
+#endif
+/* check if we need to align data */
+#if defined(__sparc__) || defined(__alpha__) || defined(__hppa__) || \
+ defined(__AIX__) || defined(__PPC__) || defined(__mips__) || \
+ defined(__ia64__)
+#define NEED_ALIGN
+#endif
+/* include other h files */
+#include "parse.h"
+
+#ifdef _WIN32
+#define THREAD_RV unsigned long
+#define THREAD_CC __stdcall
+#else
+#define THREAD_RV void*
+#define THREAD_CC
+#endif
+
+void rfbEncryptBytes(unsigned char *bytes, char *passwd);
+
+/* os_calls.c */
+int g_init_system(void);
+int g_exit_system(void);
+void g_printf(char *format, ...);
+void g_hexdump(char* p, int len);
+void* g_malloc(int size, int zero);
+void* g_malloc1(int size, int zero);
+void g_free(void* ptr);
+void g_free1(void* ptr);
+void g_memset(void* ptr, int val, int size);
+void g_memcpy(void* d_ptr, const void* s_ptr, int size);
+int g_getchar(void);
+int g_tcp_socket(void);
+int g_tcp_local_socket(void);
+void g_tcp_close(int sck);
+int g_tcp_connect(int sck, char* address, char* port);
+int g_tcp_force_send(int sck, char* data, int len);
+int g_tcp_force_recv(int sck, char* data, int len);
+int g_tcp_set_non_blocking(int sck);
+int g_tcp_bind(int sck, char* port);
+int g_tcp_local_bind(int sck, char* port);
+int g_tcp_listen(int sck);
+int g_tcp_accept(int sck);
+int g_tcp_recv(int sck, void* ptr, int len, int flags);
+int g_tcp_send(int sck, void* ptr, int len, int flags);
+int g_tcp_last_error_would_block(int sck);
+int g_tcp_select(int sck1, int sck2);
+int g_is_term(void);
+void g_set_term(int in_val);
+void g_sleep(int msecs);
+int g_thread_create(THREAD_RV (THREAD_CC * start_routine)(void*), void* arg);
+void* g_rc4_info_create(void);
+void g_rc4_info_delete(void* rc4_info);
+void g_rc4_set_key(void* rc4_info, char* key, int len);
+void g_rc4_crypt(void* rc4_info, char* data, int len);
+void* g_sha1_info_create(void);
+void g_sha1_info_delete(void* sha1_info);
+void g_sha1_clear(void* sha1_info);
+void g_sha1_transform(void* sha1_info, char* data, int len);
+void g_sha1_complete(void* sha1_info, char* data);
+void* g_md5_info_create(void);
+void g_md5_info_delete(void* md5_info);
+void g_md5_clear(void* md5_info);
+void g_md5_transform(void* md5_info, char* data, int len);
+void g_md5_complete(void* md5_info, char* data);
+int g_mod_exp(char* out, char* in, char* mod, char* exp);
+void g_random(char* data, int len);
+int g_abs(int i);
+int g_memcmp(void* s1, void* s2, int len);
+int g_file_open(char* file_name);
+int g_file_close(int fd);
+int g_file_read(int fd, char* ptr, int len);
+int g_file_write(int fd, char* ptr, int len);
+int g_file_seek(int fd, int offset);
+int g_file_lock(int fd, int start, int len);
+int g_strlen(char* text);
+char* g_strcpy(char* dest, char* src);
+char* g_strncpy(char* dest, char* src, int len);
+char* g_strcat(char* dest, char* src);
+char* g_strdup(char* in);
+int g_load_library(char* in);
+int g_free_library(int lib);
+void* g_get_proc_address(int lib, char* name);
+
+#define COLOR16(r, g, b) ((((r) >> 3) << 11) | (((g) >> 2) << 5) | ((b) >> 3))
+
+struct vnc
+{
+ int size; /* size of this struct */
+ /* client functions */
+ int (*mod_start)(int handle, int w, int h, int bpp);
+ int (*mod_connect)(int handle, char* ip, char* port,
+ char* username, char* password);
+ int (*mod_event)(int handle, int msg, int param1, int param2);
+ int (*mod_signal)(int handle);
+ int (*mod_invalidate)(int handle, int x, int y, int cx, int cy);
+ int d1[95];
+ /* server functions */
+ int (*server_begin_update)(int handle);
+ int (*server_end_update)(int handle);
+ int (*server_fill_rect)(int handle, int x, int y, int cx, int cy,
+ int color);
+ int (*server_screen_blt)(int handle, int x, int y, int cx, int cy,
+ int srcx, int srcy);
+ int (*server_paint_rect)(int handle, int x, int y, int cx, int cy,
+ char* data);
+ int (*server_set_cursor)(int handle, int x, int y, char* data, char* mask);
+ int (*server_palette)(int handle, int* palette);
+ int (*server_error_popup)(int handle, char* error, char* caption);
+ int d2[92];
+ /* common */
+ int handle; /* pointer to self as int */
+ int wm;
+ int painter;
+ int sck;
+ /* mod data */
+ int server_width;
+ int server_height;
+ int server_bpp;
+ int mod_width;
+ int mod_height;
+ int mod_bpp;
+ char mod_name[256];
+ int mod_mouse_state;
+ int palette[256];
+};