mirror of
https://github.com/wiiu-env/libiosuhax.git
synced 2024-11-30 13:04:16 +01:00
Add support for reading the seeprom.
This commit is contained in:
parent
fbfbd3ef7c
commit
9faa95af56
2
Makefile
2
Makefile
@ -11,7 +11,7 @@ TOPDIR ?= $(CURDIR)
|
|||||||
include $(DEVKITPRO)/wut/share/wut_rules
|
include $(DEVKITPRO)/wut/share/wut_rules
|
||||||
|
|
||||||
export VER_MAJOR := 1
|
export VER_MAJOR := 1
|
||||||
export VER_MINOR := 0
|
export VER_MINOR := 1
|
||||||
export VER_PATCH := 0
|
export VER_PATCH := 0
|
||||||
|
|
||||||
VERSION := $(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)
|
VERSION := $(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)
|
||||||
|
@ -72,6 +72,8 @@ int IOSUHAX_kern_read32(uint32_t address, uint32_t *out_buffer, uint32_t count);
|
|||||||
|
|
||||||
int IOSUHAX_read_otp(uint8_t * out_buffer, uint32_t size);
|
int IOSUHAX_read_otp(uint8_t * out_buffer, uint32_t size);
|
||||||
|
|
||||||
|
int IOSUHAX_read_seeprom(uint8_t * out_buffer, uint32_t offset, uint32_t size);
|
||||||
|
|
||||||
int IOSUHAX_ODM_GetDiscKey(uint8_t * discKey);
|
int IOSUHAX_ODM_GetDiscKey(uint8_t * discKey);
|
||||||
|
|
||||||
int IOSUHAX_SVC(uint32_t svc_id, uint32_t *args, uint32_t arg_cnt);
|
int IOSUHAX_SVC(uint32_t svc_id, uint32_t *args, uint32_t arg_cnt);
|
||||||
|
@ -199,6 +199,37 @@ int IOSUHAX_read_otp(uint8_t * out_buffer, uint32_t size) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int bspRead(const char*, uint32_t, const char*, uint32_t, uint16_t*);
|
||||||
|
|
||||||
|
int IOSUHAX_read_seeprom(uint8_t * out_buffer, uint32_t offset, uint32_t size) {
|
||||||
|
if(out_buffer == NULL || offset > 0x200 || offset & 0x01) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t sizeInShorts = size >> 1;
|
||||||
|
uint32_t offsetInShorts = offset >> 1;
|
||||||
|
int32_t maxReadCount = 0x100 - offsetInShorts;
|
||||||
|
|
||||||
|
if(maxReadCount <= 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t count = sizeInShorts > maxReadCount ? maxReadCount : sizeInShorts;
|
||||||
|
uint16_t *ptr = (uint16_t *) out_buffer;
|
||||||
|
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
|
for(int i = 0; i < count; i++) {
|
||||||
|
if(bspRead("EE", offsetInShorts + i, "access", 2, ptr) != 0) {
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
res += 2;
|
||||||
|
ptr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
int IOSUHAX_kern_read32(uint32_t address, uint32_t *out_buffer, uint32_t count) {
|
int IOSUHAX_kern_read32(uint32_t address, uint32_t *out_buffer, uint32_t count) {
|
||||||
if (iosuhaxHandle < 0)
|
if (iosuhaxHandle < 0)
|
||||||
return iosuhaxHandle;
|
return iosuhaxHandle;
|
||||||
|
Loading…
Reference in New Issue
Block a user