mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-08-17 17:05:50 +00:00
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include "Platform.h"
|
|
|
|
#define BYTE_ORDER_LITTLE 1
|
|
#define BYTE_ORDER_BIG 2
|
|
|
|
#ifndef HTONLL
|
|
#define HTONLL(x) \
|
|
((((x) & 0xff00000000000000ull) >> 56) \
|
|
| (((x) & 0x00ff000000000000ull) >> 40) \
|
|
| (((x) & 0x0000ff0000000000ull) >> 24) \
|
|
| (((x) & 0x000000ff00000000ull) >> 8) \
|
|
| (((x) & 0x00000000ff000000ull) << 8) \
|
|
| (((x) & 0x0000000000ff0000ull) << 24) \
|
|
| (((x) & 0x000000000000ff00ull) << 40) \
|
|
| (((x) & 0x00000000000000ffull) << 56))
|
|
#endif
|
|
|
|
typedef struct _BYTE_BUFFER {
|
|
char* buffer;
|
|
unsigned int offset;
|
|
unsigned int length;
|
|
unsigned int position;
|
|
unsigned int byteOrder;
|
|
} BYTE_BUFFER, *PBYTE_BUFFER;
|
|
|
|
void BbInitializeWrappedBuffer(PBYTE_BUFFER buff, char* data, int offset, int length, int byteOrder);
|
|
|
|
int BbGet(PBYTE_BUFFER buff, char *c);
|
|
int BbGetShort(PBYTE_BUFFER buff, short *s);
|
|
int BbGetInt(PBYTE_BUFFER buff, int *i);
|
|
int BbGetLong(PBYTE_BUFFER buff, long long *l);
|
|
|
|
int BbPutInt(PBYTE_BUFFER buff, int i);
|
|
int BbPutShort(PBYTE_BUFFER buff, short s);
|
|
int BbPut(PBYTE_BUFFER buff, char c);
|
|
int BbPutLong(PBYTE_BUFFER buff, long long l);
|