-
Notifications
You must be signed in to change notification settings - Fork 0
/
support.c
33 lines (26 loc) · 750 Bytes
/
support.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <strings.h>
#include <limits.h>
#include <stdio.h>
#include "support.h"
unsigned long __readfsqword(int d) {
return 0x1001;
}
void *qmemcpy(void *dst, const void *src, size_t cnt) {
char *out = (char *) dst;
const char *in = (const char *) src;
while (cnt > 0) {
*out++ = *in++;
--cnt;
}
return dst;
}
unsigned short __ROL2__(unsigned short n, unsigned int c) {
const unsigned int mask = (CHAR_BIT * sizeof(n) - 1); // assumes width is a power of 2.
c &= mask;
return (n << c) | (n >> ((-c) & mask));
}
unsigned short __ROR2__(unsigned short n, unsigned int c) {
const unsigned int mask = (CHAR_BIT * sizeof(n) - 1);
c &= mask;
return (n >> c) | (n << ((-c) & mask));
}