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
|
use super::c_void;
pub const SYSTEM_REGISTRY: [u8; 7] = *b"/system";
pub const REG_KEYNAME_SIZE: u32 = 27;
#[repr(transparent)]
#[allow(missing_copy_implementations)]
pub struct Handle(u32);
#[repr(C)]
#[derive(Copy, Clone)]
pub struct Key {
pub key_type: KeyType,
pub name: [u8; 256usize],
pub name_len: u32,
pub unk2: u32,
pub unk3: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub enum KeyType {
Directory = 1,
Integer = 2,
String = 3,
Bytes = 4,
}
extern "C" {
pub fn sceRegOpenRegistry(
reg: *mut Key,
mode: i32,
handle: *mut Handle,
) -> i32;
pub fn sceRegFlushRegistry(handle: Handle) -> i32;
pub fn sceRegCloseRegistry(handle: Handle) -> i32;
pub fn sceRegOpenCategory(
handle: Handle,
name: *const u8,
mode: i32,
dir_handle: *mut Handle,
) -> i32;
pub fn sceRegRemoveCategory(
handle: Handle,
name: *const u8,
) -> i32;
pub fn sceRegCloseCategory(dir_handle: Handle) -> i32;
pub fn sceRegFlushCategory(dir_handle: Handle) -> i32;
pub fn sceRegGetKeyInfo(
dir_handle: Handle,
name: *const u8,
key_handle: *mut Handle,
type_: *mut KeyType,
size: *mut usize,
) -> i32;
pub fn sceRegGetKeyInfoByName(
dir_handle: Handle,
name: *const u8,
type_: *mut KeyType,
size: *mut usize,
) -> i32;
pub fn sceRegGetKeyValue(
dir_handle: Handle,
key_handle: Handle,
buf: *mut c_void,
size: usize,
) -> i32;
pub fn sceRegGetKeyValueByName(
dir_handle: Handle,
name: *const u8,
buf: *mut c_void,
size: usize,
) -> i32;
pub fn sceRegSetKeyValue(
dir_handle: Handle,
name: *const u8,
buf: *const c_void,
size: usize,
) -> i32;
pub fn sceRegGetKeysNum(
dir_handle: Handle,
num: *mut i32,
) -> i32;
pub fn sceRegGetKeys(
dir_handle: Handle,
buf: *mut u8,
num: i32,
) -> i32;
pub fn sceRegCreateKey(
dir_handle: Handle,
name: *const u8,
type_: i32,
size: usize,
) -> i32;
pub fn sceRegRemoveRegistry(key: *mut Key) -> i32;
}
|