summaryrefslogtreecommitdiff
path: root/include/user/vshbridge.h
blob: 9d1b43414edd9c3b1c30cf6148b87ad9a94d0ed0 (plain) (blame)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
	Vita Development Suite Libraries
*/

#ifndef _VDSUITE_USER_VSHBRIDGE_H
#define _VDSUITE_USER_VSHBRIDGE_H

#include <kernel/modulemgr.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Gets real system firmware information.
 *
 * @param[out] data - firmware information.
 */
int _vshSblGetSystemSwVersion(SceKernelFwInfo *data);

/**
 * Gets factory (minimum) firmware version.
 *
 * @param[out] minver - factory firmware version.
 */
int _vshSblAimgrGetSMI(int *minver);

int _vshSblAimgrGetConsoleId(char CID[32]);

int _vshIoMount(int id, const char *path, int permission, void *extra);

/**
 * @param[in] id - Mount point ID
 * @param[in] path - Block device path. Can be NULL.
 * @param[in] permission - 1/RO 2/RW
 * @param     a4 - Unknown, set to 0
 * @param     a5 - Unknown, set to 0
 * @param     a6 - Unknown, set to 0
 *
 * @return 0 >= on success, < 0 on error.
 */
static inline int vshIoMount(int id, const char *path, int permission, int a4, int a5, int a6)
{
	struct {
		int a4;
		int a5;
		int a6;
		int unused[3];
	} extra = {a4, a5, a6, 0, 0, 0};
	return _vshIoMount(id, path, permission, &extra);
}

/**
 * @param[in] id - Mount point ID
 * @param[in] force - Set to 1 to force umount
 * @param[in] unk2 - Unknown, set 0
 * @param[in] unk3 - Unknown, set 0
 *
 * @return 0 >= on success, < 0 on error.
 */
int vshIoUmount(int id, int force, int unk2, int unk3);

int vshIdStorageIsDirty(void);
int vshIdStorageIsFormatted(void);
int vshIdStorageIsReadOnly(void);

/**
 * @param[in] leafnum - 0x0 ~ 0x80 / leafnum > 0x80 = error
 * @param[out] buf    - Leaf data, size is 512 byte
 *
 * @return 0 on success, < 0 on error.
 */
int vshIdStorageReadLeaf(SceSize leafnum, void *buf);

/**
 * @param[in] leafnum - 0x0 ~ 0x80 / leafnum > 0x80 = error
 * @param[in] buf     - Leaf data, size is 512 byte
 *
 * @return 0 on success, < 0 on error.
 */
int vshIdStorageWriteLeaf(SceSize leafnum, const void *buf);

/**
 * Sets the PS button hold time for showing the quick menu.
 *
 * @param time - Time in microseconds.
 *
 * @return 0 always
 */
int vshPowerSetPsButtonPushTime(int time);

int vshSblAimgrIsCEX(void);
int vshSblAimgrIsDEX(void);
int vshSblAimgrIsVITA(void);
int vshSblAimgrIsGenuineVITA(void);
int vshSblAimgrIsDolce(void);
int vshSblAimgrIsGenuineDolce(void);
int vshSblAimgrIsTest(void);
int vshSblAimgrIsTool(void);
int vshSblSsIsDevelopmentMode(void);

int vshSysconHasWWAN(void);

int vshSysconIsDownLoaderMode(void);
int vshSysconIsIduMode(void);
int vshSysconIsMCEmuCapable(void);
int vshSysconIsShowMode(void);

int vshSysconIduModeSet(void);
int vshSysconIduModeClear(void);

int vshSysconShowModeSet(void);
int vshSysconShowModeClear(void);

int vshMemoryCardGetCardInsertState(void);
int vshRemovableMemoryGetCardInsertState(void);

#ifdef __cplusplus
}
#endif

#endif /* _VDSUITE_USER_VSHBRIDGE_H */