Remove long-since obsolete hb:HB code
This commit is contained in:
parent
33a570b1c3
commit
24dded1c79
@ -72,7 +72,6 @@ extern "C" {
|
||||
#include <3ds/services/loader.h>
|
||||
#include <3ds/services/y2r.h>
|
||||
#include <3ds/services/mcuhwc.h>
|
||||
#include <3ds/services/hb.h>
|
||||
|
||||
#include <3ds/gpu/gx.h>
|
||||
#include <3ds/gpu/gpu.h>
|
||||
|
@ -1,38 +0,0 @@
|
||||
/**
|
||||
* @file hb.h
|
||||
* @brief HB (Homebrew) service.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
// WARNING ! THIS FILE PROVIDES AN INTERFACE TO A NON-OFFICIAL SERVICE PROVIDED BY NINJHAX
|
||||
// BY USING COMMANDS FROM THIS SERVICE YOU WILL LIKELY MAKE YOUR APPLICATION INCOMPATIBLE WITH OTHER HOMEBREW LAUNCHING METHODS
|
||||
// A GOOD WAY TO COPE WITH THIS IS TO CHECK THE OUTPUT OF hbInit FOR ERRORS
|
||||
|
||||
#include <3ds/types.h>
|
||||
|
||||
/// Initializes HB.
|
||||
Result hbInit(void);
|
||||
|
||||
/// Exits HB.
|
||||
void hbExit(void);
|
||||
|
||||
/// Flushes/invalidates the entire data/instruction cache.
|
||||
Result HB_FlushInvalidateCache(void);
|
||||
|
||||
/**
|
||||
* @brief Fetches the address for Ninjhax 1.x bootloader addresses.
|
||||
* @param load3dsx void (*callBootloader)(Handle hb, Handle file);
|
||||
* @param setArgv void (*setArgs)(u32* src, u32 length);
|
||||
*/
|
||||
Result HB_GetBootloaderAddresses(void** load3dsx, void** setArgv);
|
||||
|
||||
/**
|
||||
* @brief Changes the permissions of a given number of pages at address addr to mode.
|
||||
* Should it fail, the appropriate kernel error code will be returned and *reprotectedPages (if not NULL)
|
||||
* will be set to the number of sequential pages which were successfully reprotected + 1
|
||||
* @param addr Address to reprotect.
|
||||
* @param pages Number of pages to reprotect.
|
||||
* @param mode Mode to reprotect to.
|
||||
* @param reprotectedPages Number of successfully reprotected pages, on failure.
|
||||
*/
|
||||
Result HB_ReprotectMemory(u32* addr, u32 pages, u32 mode, u32* reprotectedPages);
|
@ -1,77 +0,0 @@
|
||||
#include <3ds/types.h>
|
||||
#include <3ds/result.h>
|
||||
#include <3ds/svc.h>
|
||||
#include <3ds/srv.h>
|
||||
#include <3ds/synchronization.h>
|
||||
#include <3ds/env.h>
|
||||
#include <3ds/ipc.h>
|
||||
|
||||
static Handle hbHandle;
|
||||
static int hbRefCount;
|
||||
|
||||
Result hbInit(void)
|
||||
{
|
||||
Result res=0;
|
||||
if (AtomicPostIncrement(&hbRefCount)) return 0;
|
||||
Handle temp = envGetHandle("hb:HB");
|
||||
res = temp ? svcDuplicateHandle(&hbHandle, temp) : MAKERESULT(RL_STATUS,RS_NOTFOUND,RM_APPLICATION,RD_NOT_FOUND);
|
||||
if (R_FAILED(res)) AtomicDecrement(&hbRefCount);
|
||||
return res;
|
||||
}
|
||||
|
||||
void hbExit(void)
|
||||
{
|
||||
if (AtomicDecrement(&hbRefCount)) return;
|
||||
svcCloseHandle(hbHandle);
|
||||
}
|
||||
|
||||
Result HB_FlushInvalidateCache(void)
|
||||
{
|
||||
Result ret = 0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x1,1,2); // 0x10042
|
||||
cmdbuf[1] = 0x00000000;
|
||||
cmdbuf[2] = IPC_Desc_SharedHandles(1);
|
||||
cmdbuf[3] = CUR_PROCESS_HANDLE;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(hbHandle))) return ret;
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result HB_GetBootloaderAddresses(void** load3dsx, void** setArgv)
|
||||
{
|
||||
Result ret = 0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x6,0,0); // 0x60000
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(hbHandle))) return ret;
|
||||
|
||||
if(load3dsx)*load3dsx=(void*)cmdbuf[2];
|
||||
if(setArgv)*setArgv=(void*)cmdbuf[3];
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result HB_ReprotectMemory(u32* addr, u32 pages, u32 mode, u32* reprotectedPages)
|
||||
{
|
||||
Result ret = 0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x9,3,0); // 0x900C0
|
||||
cmdbuf[1] = (u32)addr;
|
||||
cmdbuf[2] = pages;
|
||||
cmdbuf[3] = mode;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(hbHandle))) return ret;
|
||||
|
||||
if(reprotectedPages)
|
||||
{
|
||||
if(R_SUCCEEDED(ret))*reprotectedPages=(u32)cmdbuf[2];
|
||||
else *reprotectedPages=0;
|
||||
}
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
Loading…
Reference in New Issue
Block a user