forked from archshift/Decrypt9
-
Notifications
You must be signed in to change notification settings - Fork 59
/
common.h
54 lines (47 loc) · 1.31 KB
/
common.h
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#pragma once
#include <inttypes.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
#define u64 uint64_t
#define vu8 volatile u8
#define vu16 volatile u16
#define vu32 volatile u32
#define vu64 volatile u64
#define max(a,b) \
(((a) > (b)) ? (a) : (b))
#define min(a,b) \
(((a) < (b)) ? (a) : (b))
#define getbe16(d) \
((((u8*)d)[0]<<8) | ((u8*)d)[1])
#define getbe32(d) \
((((u32) getbe16(d))<<16) | ((u32) getbe16(d+2)))
#define getbe64(d) \
((((u64) getbe32(d))<<32) | ((u64) getbe32(d+4)))
#define getle16(d) \
((((u8*)d)[1]<<8) | ((u8*)d)[0])
#define getle32(d) \
((((u32) getle16(d+2))<<16) | ((u32) getle16(d)))
#define getle64(d) \
((((u64) getle32(d+4))<<32) | ((u64) getle32(d)))
#define align(v,a) \
(((v) % (a)) ? ((v) + (a) - ((v) % (a))) : (v))
// standard work area, size must be a multiple of 0x200 (512)
#define BUFFER_ADDRESS ((u8*) 0x21000000)
#define BUFFER_MAX_SIZE ((u32) (1 * 1024 * 1024))
// log file name
#define LOG_FILE "Decrypt9.log"
static inline u32 strchrcount(const char* str, char symbol) {
u32 count = 0;
for (u32 i = 0; str[i] != '\0'; i++) {
if (str[i] == symbol)
count++;
}
return count;
}