File size: 2,383 Bytes
d46f4a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*

 * Copyright (c) 2024 lax1dude. All Rights Reserved.

 * 

 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND

 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.

 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,

 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR

 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE

 * POSSIBILITY OF SUCH DAMAGE.

 * 

 */

#ifndef _INCLUDED_IMPORTS_H
#define _INCLUDED_IMPORTS_H

#include "stdint.h"

struct epw_load_result_epk {
	uint32_t epkData;
	uint32_t epkName;
	uint32_t epkPath;
};

struct epw_load_result {
	uint32_t eagruntimeJSData;
	uint32_t classesWASMData;
	uint32_t classesDeobfTEADBGData;
	uint32_t classesDeobfWASMData;
	uint32_t pressAnyKeyImgData;
	uint32_t pressAnyKeyImgMIME;
	uint32_t crashImgData;
	uint32_t crashImgMIME;
	uint32_t faviconImgData;
	uint32_t faviconImgMIME;
	uint32_t numEPKs;
	struct epw_load_result_epk epkData[];
};

struct jspi_unsupported_load_result {
	uint32_t crashImgData;
	uint32_t crashImgMIME;
	uint32_t markup;
};

#define LOAD_RESULT_SIZE(numEPKs) (sizeof(struct epw_load_result) + sizeof(struct epw_load_result_epk) * (numEPKs))

extern uint8_t getJSPISupported();

extern uint32_t getEPWLength();
extern void memcpyFromEPW(void* dest, uint32_t off, uint32_t len);
extern uint32_t initResult(uint32_t bufLen);
extern void memcpyToResult(uint32_t bufId, const void* src, uint32_t off, uint32_t len);
extern void memcpyFromEPWToResult(uint32_t bufId, uint32_t dest, uint32_t off, uint32_t len);
extern uint32_t initEPWStringResult(uint32_t off, uint32_t len);

extern void resultFailed(const char* msg);
extern void resultSuccess(const struct epw_load_result* result);
extern void resultJSPIUnsupported(struct jspi_unsupported_load_result* result);

extern void dbgLog(const char* msg);
extern void dbgErr(const char* msg);

#endif