summaryrefslogtreecommitdiffstats
path: root/xrdp
diff options
context:
space:
mode:
Diffstat (limited to 'xrdp')
-rw-r--r--xrdp/os_calls.c762
-rw-r--r--xrdp/parse.h299
2 files changed, 0 insertions, 1061 deletions
diff --git a/xrdp/os_calls.c b/xrdp/os_calls.c
deleted file mode 100644
index cd921f01..00000000
--- a/xrdp/os_calls.c
+++ /dev/null
@@ -1,762 +0,0 @@
-/*
- 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
-
- generic operating system calls
-
-*/
-
-#ifdef _WIN32
-#include <windows.h>
-#include <winsock.h>
-#else
-#include <unistd.h>
-#include <pthread.h>
-#include <errno.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <dlfcn.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <openssl/rc4.h>
-#include <openssl/md5.h>
-#include <openssl/sha.h>
-#include <openssl/bn.h>
-
-//#define MEMLEAK
-
-#ifdef _WIN32
-static CRITICAL_SECTION g_term_mutex;
-#else
-static pthread_mutex_t g_term_mutex = PTHREAD_MUTEX_INITIALIZER;
-#endif
-static int g_term = 0;
-
-#ifdef MEMLEAK
-#include "xrdp.h"
-#endif
-
-#ifdef MEMLEAK
-static int g_memsize = 0;
-static int g_memid = 0;
-static struct xrdp_list* g_memlist = 0;
-#endif
-
-/*****************************************************************************/
-int g_init_system(void)
-{
-#ifdef _WIN32
- WSADATA w;
-
- WSAStartup(2, &w);
- InitializeCriticalSection(&g_term_mutex);
-#endif
-#ifdef MEMLEAK
- g_memlist = xrdp_list_create();
- printf("some info\n\r");
- printf("sizeof xrdp_bitmap is %d\n\r", sizeof(struct xrdp_bitmap));
- printf("sizeof xrdp_wm is %d\n\r", sizeof(struct xrdp_wm));
- printf("sizeof stream is %d\n\r", sizeof(struct stream));
-#endif
- return 0;
-}
-
-/*****************************************************************************/
-int g_exit_system(void)
-{
-#ifdef _WIN32
- WSACleanup();
- DeleteCriticalSection(&g_term_mutex);
-#endif
-#ifdef MEMLEAK
- int i;
- struct xrdp_mem* p;
-
- for (i = 0; i < g_memlist->count; i++)
- {
- p = (struct xrdp_mem*)xrdp_list_get_item(g_memlist, i);
- g_printf("leak size %d id %d\n\r", p->size, p->id);
- }
- g_printf("mem %d\n\r", g_memsize);
- xrdp_list_delete(g_memlist);
- g_memlist = 0;
-#endif
- return 0;
-}
-
-/*****************************************************************************/
-void* g_malloc(int size, int zero)
-{
-#ifdef MEMLEAK
- char* rv;
- struct xrdp_mem* p;
-
- rv = (char*)malloc(size + sizeof(struct xrdp_mem));
- if (zero)
- memset(rv, 0, size + sizeof(struct xrdp_mem));
- g_memsize += size;
- p = (struct xrdp_mem*)rv;
- p->size = size;
- p->id = g_memid;
- if (g_memlist != 0)
- xrdp_list_add_item(g_memlist, (int)p);
- g_memid++;
- return rv + sizeof(struct xrdp_mem);
-#else
- char* rv;
-
- rv = (char*)malloc(size);
- if (zero)
- memset(rv, 0, size);
- return rv;
-#endif
-}
-
-/*****************************************************************************/
-void* g_malloc1(int size, int zero)
-{
- char* rv;
-
- rv = (char*)malloc(size);
- if (zero)
- memset(rv, 0, size);
- return rv;
-}
-
-/*****************************************************************************/
-void g_free(void* ptr)
-{
-#ifdef MEMLEAK
- struct xrdp_mem* p;
- int i;
-
- if (ptr != 0)
- {
- p = (struct xrdp_mem*)(((char*)ptr) - sizeof(struct xrdp_mem));
- g_memsize -= p->size;
- i = xrdp_list_index_of(g_memlist, (int)p);
- if (i >= 0)
- xrdp_list_remove_item(g_memlist, i);
- free(p);
- }
-#else
- if (ptr != 0)
- {
- free(ptr);
- }
-#endif
-}
-
-/*****************************************************************************/
-void g_free1(void* ptr)
-{
- if (ptr != 0)
- {
- free(ptr);
- }
-}
-
-/*****************************************************************************/
-void g_printf(char* format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- vfprintf(stdout, format, ap);
- va_end(ap);
-}
-
-/*****************************************************************************/
-/* produce a hex dump */
-void g_hexdump(char* p, int len)
-{
- unsigned char* line;
- int i;
- int thisline;
- int offset;
-
- line = (unsigned char*)p;
- offset = 0;
- while (offset < len)
- {
- printf("%04x ", offset);
- thisline = len - offset;
- if (thisline > 16)
- thisline = 16;
- for (i = 0; i < thisline; i++)
- printf("%02x ", line[i]);
- for (; i < 16; i++)
- printf(" ");
- for (i = 0; i < thisline; i++)
- printf("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.');
- printf("\n");
- offset += thisline;
- line += thisline;
- }
-}
-
-/*****************************************************************************/
-void g_memset(void* ptr, int val, int size)
-{
- memset(ptr, val, size);
-}
-
-/*****************************************************************************/
-void g_memcpy(void* d_ptr, const void* s_ptr, int size)
-{
- memcpy(d_ptr, s_ptr, size);
-}
-
-/*****************************************************************************/
-int g_getchar(void)
-{
- return getchar();
-}
-
-/*****************************************************************************/
-int g_tcp_socket(void)
-{
- int rv;
- int i;
-
- i = 1;
- rv = socket(PF_INET, SOCK_STREAM, 0);
- setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (void*)&i, sizeof(i));
- return rv;
-}
-
-/*****************************************************************************/
-int g_tcp_local_socket(void)
-{
- int rv;
-
- rv = socket(PF_LOCAL, SOCK_STREAM, 0);
- return rv;
-}
-
-/*****************************************************************************/
-void g_tcp_close(int sck)
-{
-#ifdef _WIN32
- closesocket(sck);
-#else
- close(sck);
-#endif
-}
-
-/*****************************************************************************/
-int g_tcp_connect(int sck, char* address, char* port)
-{
- struct sockaddr_in s;
- struct hostent* h;
-
- g_memset(&s, 0, sizeof(struct sockaddr_in));
- s.sin_family = AF_INET;
- s.sin_port = htons(atoi(port));
- s.sin_addr.s_addr = inet_addr(address);
- if (s.sin_addr.s_addr == INADDR_NONE)
- {
- h = gethostbyname(address);
- if (h != 0)
- if (h->h_name != 0)
- if (h->h_addr_list != 0)
- if ((*(h->h_addr_list)) != 0)
- s.sin_addr.s_addr = *((int*)(*(h->h_addr_list)));
- }
- return connect(sck, (struct sockaddr*)&s, sizeof(struct sockaddr_in));
-}
-
-/*****************************************************************************/
-int g_tcp_set_non_blocking(int sck)
-{
- unsigned long i;
-
-#ifdef _WIN32
- i = 1;
- ioctlsocket(sck, FIONBIO, &i);
-#else
- i = fcntl(sck, F_GETFL);
- i = i | O_NONBLOCK;
- fcntl(sck, F_SETFL, i);
-#endif
- return 0;
-}
-
-/*****************************************************************************/
-int g_tcp_bind(int sck, char* port)
-{
- struct sockaddr_in s;
-
- memset(&s, 0, sizeof(struct sockaddr_in));
- s.sin_family = AF_INET;
- s.sin_port = htons(atoi(port));
- s.sin_addr.s_addr = INADDR_ANY;
- return bind(sck, (struct sockaddr*)&s, sizeof(struct sockaddr_in));
-}
-
-/*****************************************************************************/
-int g_tcp_local_bind(int sck, char* port)
-{
- struct sockaddr_un s;
-
- memset(&s, 0, sizeof(struct sockaddr_un));
- s.sun_family = AF_UNIX;
- strcpy(s.sun_path, port);
- return bind(sck, (struct sockaddr*)&s, sizeof(struct sockaddr_un));
-}
-
-/*****************************************************************************/
-int g_tcp_listen(int sck)
-{
- return listen(sck, 2);
-}
-
-/*****************************************************************************/
-int g_tcp_accept(int sck)
-{
- struct sockaddr_in s;
-#ifdef _WIN32
- signed int i;
-#else
- unsigned int i;
-#endif
-
- i = sizeof(struct sockaddr_in);
- memset(&s, 0, i);
- return accept(sck, (struct sockaddr*)&s, &i);
-}
-
-/*****************************************************************************/
-int g_tcp_recv(int sck, void* ptr, int len, int flags)
-{
- return recv(sck, ptr, len, flags);
-}
-
-/*****************************************************************************/
-int g_tcp_send(int sck, void* ptr, int len, int flags)
-{
- return send(sck, ptr, len, flags);
-}
-
-/*****************************************************************************/
-int g_tcp_last_error_would_block(int sck)
-{
-#ifdef _WIN32
- return WSAGetLastError() == WSAEWOULDBLOCK;
-#else
- return errno == EWOULDBLOCK;
-#endif
-}
-
-/*****************************************************************************/
-int g_tcp_select(int sck1, int sck2)
-{
- fd_set rfds;
- struct timeval time;
- int max;
- int rv;
-
- time.tv_sec = 0;
- time.tv_usec = 0;
- FD_ZERO(&rfds);
- FD_SET(((unsigned int)sck1), &rfds);
- FD_SET(((unsigned int)sck2), &rfds);
- max = sck1;
- if (sck2 > max)
- max = sck2;
- rv = select(max + 1, &rfds, 0, 0, &time);
- if (rv > 0)
- {
- rv = 0;
- if (FD_ISSET(((unsigned int)sck1), &rfds))
- rv = rv | 1;
- if (FD_ISSET(((unsigned int)sck2), &rfds))
- rv = rv | 2;
- }
- return rv;
-}
-
-/*****************************************************************************/
-int g_is_term(void)
-{
- int rv;
-
-#ifdef _WIN32
- EnterCriticalSection(&g_term_mutex);
- rv = g_term;
- LeaveCriticalSection(&g_term_mutex);
-#else
- pthread_mutex_lock(&g_term_mutex);
- rv = g_term;
- pthread_mutex_unlock(&g_term_mutex);
-#endif
- return rv;
-}
-
-/*****************************************************************************/
-void g_set_term(int in_val)
-{
-#ifdef _WIN32
- EnterCriticalSection(&g_term_mutex);
- g_term = in_val;
- LeaveCriticalSection(&g_term_mutex);
-#else
- pthread_mutex_lock(&g_term_mutex);
- g_term = in_val;
- pthread_mutex_unlock(&g_term_mutex);
-#endif
-}
-
-/*****************************************************************************/
-void g_sleep(int msecs)
-{
-#ifdef _WIN32
- Sleep(msecs);
-#else
- usleep(msecs * 1000);
-#endif
-}
-
-/*****************************************************************************/
-#ifdef _WIN32
-int g_thread_create(unsigned long (__stdcall * start_routine)(void*), void* arg)
-{
- DWORD thread;
-
- return !CreateThread(0, 0, start_routine, arg, 0, &thread);
-}
-#else
-int g_thread_create(void* (* start_routine)(void*), void* arg)
-{
- pthread_t thread;
-
- return pthread_create(&thread, 0, start_routine, arg);
-}
-#endif
-
-/* rc4 stuff */
-
-/*****************************************************************************/
-void* g_rc4_info_create(void)
-{
- return g_malloc(sizeof(RC4_KEY), 1);;
-}
-
-/*****************************************************************************/
-void g_rc4_info_delete(void* rc4_info)
-{
- g_free(rc4_info);
-}
-
-/*****************************************************************************/
-void g_rc4_set_key(void* rc4_info, char* key, int len)
-{
- RC4_set_key((RC4_KEY*)rc4_info, len, (unsigned char*)key);
-}
-
-/*****************************************************************************/
-void g_rc4_crypt(void* rc4_info, char* data, int len)
-{
- RC4((RC4_KEY*)rc4_info, len, (unsigned char*)data, (unsigned char*)data);
-}
-
-/* sha1 stuff */
-
-/*****************************************************************************/
-void* g_sha1_info_create(void)
-{
- return g_malloc(sizeof(SHA_CTX), 1);
-}
-
-/*****************************************************************************/
-void g_sha1_info_delete(void* sha1_info)
-{
- g_free(sha1_info);
-}
-
-/*****************************************************************************/
-void g_sha1_clear(void* sha1_info)
-{
- SHA1_Init((SHA_CTX*)sha1_info);
-}
-
-/*****************************************************************************/
-void g_sha1_transform(void* sha1_info, char* data, int len)
-{
- SHA1_Update((SHA_CTX*)sha1_info, data, len);
-}
-
-/*****************************************************************************/
-void g_sha1_complete(void* sha1_info, char* data)
-{
- SHA1_Final((unsigned char*)data, (SHA_CTX*)sha1_info);
-}
-
-/* md5 stuff */
-
-/*****************************************************************************/
-void* g_md5_info_create(void)
-{
- return g_malloc(sizeof(MD5_CTX), 1);
-}
-
-/*****************************************************************************/
-void g_md5_info_delete(void* md5_info)
-{
- g_free(md5_info);
-}
-
-/*****************************************************************************/
-void g_md5_clear(void* md5_info)
-{
- MD5_Init((MD5_CTX*)md5_info);
-}
-
-/*****************************************************************************/
-void g_md5_transform(void* md5_info, char* data, int len)
-{
- MD5_Update((MD5_CTX*)md5_info, data, len);
-}
-
-/*****************************************************************************/
-void g_md5_complete(void* md5_info, char* data)
-{
- MD5_Final((unsigned char*)data, (MD5_CTX*)md5_info);
-}
-
-/*****************************************************************************/
-int g_mod_exp(char* out, char* in, char* mod, char* exp)
-{
- BN_CTX* ctx;
- BIGNUM lmod;
- BIGNUM lexp;
- BIGNUM lin;
- BIGNUM lout;
- int rv;
-
- ctx = BN_CTX_new();
- BN_init(&lmod);
- BN_init(&lexp);
- BN_init(&lin);
- BN_init(&lout);
- BN_bin2bn((unsigned char*)mod, 64, &lmod);
- BN_bin2bn((unsigned char*)exp, 64, &lexp);
- BN_bin2bn((unsigned char*)in, 64, &lin);
- BN_mod_exp(&lout, &lin, &lexp, &lmod, ctx);
- rv = BN_bn2bin(&lout, (unsigned char*)out);
- BN_free(&lin);
- BN_free(&lout);
- BN_free(&lexp);
- BN_free(&lmod);
- BN_CTX_free(ctx);
- return rv;
-}
-
-/*****************************************************************************/
-void g_random(char* data, int len)
-{
-#ifdef _WIN32
- memset(data, 0x44, len);
-#else
- int fd;
-
- memset(data, 0x44, len);
- fd = open("/dev/urandom", O_RDONLY);
- if (fd == -1)
- fd = open("/dev/random", O_RDONLY);
- if (fd != -1)
- {
- read(fd, data, len);
- close(fd);
- }
-#endif
-}
-
-/*****************************************************************************/
-int g_abs(int i)
-{
- return abs(i);
-}
-
-/*****************************************************************************/
-int g_memcmp(void* s1, void* s2, int len)
-{
- return memcmp(s1, s2, len);
-}
-
-/*****************************************************************************/
-int g_file_open(char* file_name)
-{
-#ifdef _WIN32
- return (int)CreateFile(file_name, GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
-#else
- return open(file_name, O_RDWR | O_CREAT);
-#endif
-}
-
-/*****************************************************************************/
-int g_file_close(int fd)
-{
-#ifdef _WIN32
- CloseHandle((HANDLE)fd);
-#else
- close(fd);
-#endif
- return 0;
-}
-
-/*****************************************************************************/
-/* read from file*/
-int g_file_read(int fd, char* ptr, int len)
-{
-#ifdef _WIN32
- if (ReadFile((HANDLE)fd, (LPVOID)ptr, (DWORD)len, (LPDWORD)&len, 0))
- return len;
- else
- return -1;
-#else
- return read(fd, ptr, len);
-#endif
-}
-
-/*****************************************************************************/
-/* write to file */
-int g_file_write(int fd, char* ptr, int len)
-{
-#ifdef _WIN32
- if (WriteFile((HANDLE)fd, (LPVOID)ptr, (DWORD)len, (LPDWORD)&len, 0))
- return len;
- else
- return -1;
-#else
- return write(fd, ptr, len);
-#endif
-}
-
-/*****************************************************************************/
-/* move file pointer */
-int g_file_seek(int fd, int offset)
-{
-#ifdef _WIN32
- return SetFilePointer((HANDLE)fd, offset, 0, FILE_BEGIN);
-#else
- return lseek(fd, offset, SEEK_SET);
-#endif
-}
-
-/*****************************************************************************/
-/* do a write lock on a file */
-/* return boolean */
-int g_file_lock(int fd, int start, int len)
-{
-#ifdef _WIN32
- return LockFile((HANDLE)fd, start, 0, len, 0);
-#else
- struct flock lock;
-
- lock.l_type = F_WRLCK;
- lock.l_whence = SEEK_SET;
- lock.l_start = start;
- lock.l_len = len;
- if (fcntl(fd, F_SETLK, &lock) == -1)
- return 0;
- return 1;
-#endif
-}
-
-/*****************************************************************************/
-int g_strlen(char* text)
-{
- return strlen(text);
-}
-
-/*****************************************************************************/
-char* g_strcpy(char* dest, char* src)
-{
- return strcpy(dest, src);
-}
-
-/*****************************************************************************/
-char* g_strncpy(char* dest, char* src, int len)
-{
- char* rv;
-
- rv = strncpy(dest, src, len);
- dest[len] = 0;
- return rv;
-}
-
-/*****************************************************************************/
-char* g_strcat(char* dest, char* src)
-{
- return strcat(dest, src);
-}
-
-/*****************************************************************************/
-char* g_strdup(char* in)
-{
- int len;
- char* p;
-
- if (in == 0)
- return 0;
- len = g_strlen(in);
- p = (char*)g_malloc(len + 1, 0);
- g_strcpy(p, in);
- return p;
-}
-
-/*****************************************************************************/
-int g_strcmp(char* c1, char* c2)
-{
- return strcmp(c1, c2);
-}
-
-/*****************************************************************************/
-int g_load_library(char* in)
-{
- return (int)dlopen(in, RTLD_LOCAL | RTLD_LAZY);
-}
-
-/*****************************************************************************/
-int g_free_library(int lib)
-{
- if (lib == 0)
- return 0;
- return dlclose((void*)lib);
-}
-
-/*****************************************************************************/
-/* returns NULL if not found */
-void* g_get_proc_address(int lib, char* name)
-{
- if (lib == 0)
- return 0;
- return dlsym((void*)lib, name);
-}
diff --git a/xrdp/parse.h b/xrdp/parse.h
deleted file mode 100644
index 477f35ab..00000000
--- a/xrdp/parse.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- rdesktop: A Remote Desktop Protocol client.
- Parsing primitives
- Copyright (C) Matthew Chapman 1999-2002
-
- 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.
-*/
-
-/* modified for xrdp */
-/* this is a super fast stream method, you bet */
-
-#if defined L_ENDIAN
-#elif defined B_ENDIAN
-#else
-#error Unknown endianness.
-#endif
-
-/* parser state */
-struct stream
-{
- char* p;
- char* end;
- char* data;
- int size;
- /* offsets of various headers */
- char* iso_hdr;
- char* mcs_hdr;
- char* sec_hdr;
- char* rdp_hdr;
- char* channel_hdr;
- char* next_packet;
-};
-
-/******************************************************************************/
-#define s_check(s) (s->p <= s->end)
-
-/******************************************************************************/
-#define s_check_rem(s, n) (s->p + n <= s->end)
-
-/******************************************************************************/
-#define s_check_end(s) (s->p == s->end)
-
-/******************************************************************************/
-#define make_stream(s) \
-{ \
- s = (struct stream*)g_malloc(sizeof(struct stream), 1); \
-}
-
-/******************************************************************************/
-#define init_stream(s, v) \
-{ \
- if (v > s->size) \
- { \
- g_free(s->data); \
- s->data = (char*)g_malloc(v, 0); \
- } \
- s->p = s->data; \
- s->end = s->data; \
- s->size = v; \
- s->next_packet = 0; \
-}
-
-/******************************************************************************/
-#define free_stream(s) \
-{ \
- if (s != 0) \
- g_free(s->data); \
- g_free(s); \
-} \
-
-/******************************************************************************/
-#define s_push_layer(s, h, n) \
-{ \
- s->h = s->p; \
- s->p += n; \
-}
-
-/******************************************************************************/
-#define s_pop_layer(s, h) \
-{ \
- s->p = s->h; \
-}
-
-/******************************************************************************/
-#define s_mark_end(s) \
-{ \
- s->end = s->p; \
-}
-
-/******************************************************************************/
-#define in_uint8(s, v) \
-{ \
- v = *((unsigned char*)(s->p)); \
- s->p++; \
-}
-
-/******************************************************************************/
-#if defined B_ENDIAN || defined NEED_ALIGN
-#define in_sint16_le(s, v) \
-{ \
- v = (signed short) \
- ( \
- (*((unsigned char*)(s->p + 0)) << 0) | \
- (*((unsigned char*)(s->p + 1)) << 8) \
- ); \
- s->p += 2; \
-}
-#else
-#define in_sint16_le(s, v) \
-{ \
- v = *((signed short*)(s->p)); \
- s->p += 2; \
-}
-#endif
-
-/******************************************************************************/
-#if defined B_ENDIAN || defined NEED_ALIGN
-#define in_uint16_le(s, v) \
-{ \
- v = (unsigned short) \
- ( \
- (*((unsigned char*)(s->p + 0)) << 0) | \
- (*((unsigned char*)(s->p + 1)) << 8) \
- ); \
- s->p += 2; \
-}
-#else
-#define in_uint16_le(s, v) \
-{ \
- v = *((unsigned short*)(s->p)); \
- s->p += 2; \
-}
-#endif
-
-/******************************************************************************/
-#define in_uint16_be(s, v) \
-{ \
- v = *((unsigned char*)(s->p)); \
- s->p++; \
- v = v << 8; \
- v = v | *((unsigned char*)(s->p)); \
- s->p++; \
-}
-
-/******************************************************************************/
-#if defined B_ENDIAN || defined NEED_ALIGN
-#define in_uint32_le(s, v) \
-{ \
- v = (unsigned long) \
- ( \
- (*((unsigned char*)(s->p + 0)) << 0) | \
- (*((unsigned char*)(s->p + 1)) << 8) | \
- (*((unsigned char*)(s->p + 2)) << 16) | \
- (*((unsigned char*)(s->p + 3)) << 24) \
- ); \
- s->p += 4; \
-}
-#else
-#define in_uint32_le(s, v) \
-{ \
- v = *((unsigned long*)(s->p)); \
- s->p += 4; \
-}
-#endif
-
-/******************************************************************************/
-#define in_uint32_be(s, v) \
-{ \
- v = *((unsigned char*)(s->p)); \
- s->p++; \
- v = v << 8; \
- v = v | *((unsigned char*)(s->p)); \
- s->p++; \
- v = v << 8; \
- v = v | *((unsigned char*)(s->p)); \
- s->p++; \
- v = v << 8; \
- v = v | *((unsigned char*)(s->p)); \
- s->p++; \
-}
-
-/******************************************************************************/
-#define out_uint8(s, v) \
-{ \
- *(s->p) = (unsigned char)(v); \
- s->p++; \
-}
-
-/******************************************************************************/
-#if defined B_ENDIAN || defined NEED_ALIGN
-#define out_uint16_le(s, v) \
-{ \
- *(s->p) = (unsigned char)(v); \
- s->p++; \
- *(s->p) = (unsigned char)((v) >> 8); \
- s->p++; \
-}
-#else
-#define out_uint16_le(s, v) \
-{ \
- *((unsigned short*)(s->p)) = (unsigned short)(v); \
- s->p += 2; \
-}
-#endif
-
-/******************************************************************************/
-#define out_uint16_be(s, v) \
-{ \
- *(s->p) = (unsigned char)((v) >> 8); \
- s->p++; \
- *(s->p) = (unsigned char)(v); \
- s->p++; \
-}
-
-/******************************************************************************/
-#if defined B_ENDIAN || defined NEED_ALIGN
-#define out_uint32_le(s, v) \
-{ \
- *(s->p) = (unsigned char)(v); \
- s->p++; \
- *(s->p) = (unsigned char)((v) >> 8); \
- s->p++; \
- *(s->p) = (unsigned char)((v) >> 16); \
- s->p++; \
- *(s->p) = (unsigned char)((v) >> 24); \
- s->p++; \
-}
-#else
-#define out_uint32_le(s, v) \
-{ \
- *((unsigned long*)(s->p)) = (v); \
- s->p += 4; \
-}
-#endif
-
-/******************************************************************************/
-#define out_uint32_be(s, v) \
-{ \
- *(s->p) = (unsigned char)((v) >> 24); \
- s->p++; \
- *(s->p) = (unsigned char)((v) >> 16); \
- s->p++; \
- *(s->p) = (unsigned char)((v) >> 8); \
- s->p++; \
- *(s->p) = (unsigned char)(v); \
- s->p++; \
-}
-
-/******************************************************************************/
-#define in_uint8p(s, v, n) \
-{ \
- v = s->p; \
- s->p += n; \
-}
-
-/******************************************************************************/
-#define in_uint8a(s, v, n) \
-{ \
- g_memcpy(v, s->p, n); \
- s->p += n; \
-}
-
-/******************************************************************************/
-#define in_uint8s(s, n) \
-{ \
- s->p += n; \
-}
-
-/******************************************************************************/
-#define out_uint8p(s, v, n) \
-{ \
- g_memcpy(s->p, v, n); \
- s->p += n; \
-}
-
-/******************************************************************************/
-#define out_uint8a(s, v, n) \
-{ \
- out_uint8p(s, v, n); \
-}
-
-/******************************************************************************/
-#define out_uint8s(s, n) \
-{ \
- g_memset(s->p, 0, n); \
- s->p += n; \
-}