mirror of https://github.com/RPCS3/rpcs3.git
Merge branch 'master' of https://github.com/DHrpcs3/rpcs3
This commit is contained in:
commit
aed250d3b0
|
@ -1,5 +1,6 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "Emu/SysCalls/ErrorCodes.h"
|
#include "Emu/SysCalls/ErrorCodes.h"
|
||||||
|
#include "Emu/SysCalls/SysCalls.h"
|
||||||
#include "Utilities/Log.h"
|
#include "Utilities/Log.h"
|
||||||
#include "Emu/Memory/Memory.h"
|
#include "Emu/Memory/Memory.h"
|
||||||
#include "Emu/System.h"
|
#include "Emu/System.h"
|
||||||
|
@ -285,8 +286,8 @@ void _se_translator(unsigned int u, EXCEPTION_POINTERS* pExp)
|
||||||
// TODO: allow recovering from a page fault
|
// TODO: allow recovering from a page fault
|
||||||
//GetCurrentPPUThread().Stop();
|
//GetCurrentPPUThread().Stop();
|
||||||
Emu.Pause();
|
Emu.Pause();
|
||||||
throw fmt::Format("Access violation: addr = 0x%x (last_syscall=0x%llx)",
|
throw fmt::Format("Access violation: addr = 0x%x (last_syscall=0x%llx (%s))",
|
||||||
(u32)addr, (u64)GetCurrentCPUThread()->m_last_syscall);
|
(u32)addr, (u64)GetCurrentCPUThread()->m_last_syscall, SysCalls::GetHLEFuncName((u64)GetCurrentCPUThread()->m_last_syscall).c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -266,13 +266,13 @@ public:
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
m_base_addr = nullptr;
|
m_base_addr = nullptr;
|
||||||
LOG_ERROR(MEMORY, "Initialing memory failed");
|
LOG_ERROR(MEMORY, "Initializing memory failed");
|
||||||
assert(0);
|
assert(0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG_NOTICE(MEMORY, "Initialing memory: m_base_addr = 0x%llx", (u64)m_base_addr);
|
LOG_NOTICE(MEMORY, "Initializing memory: m_base_addr = 0x%llx", (u64)m_base_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(type)
|
switch(type)
|
||||||
|
|
|
@ -471,7 +471,7 @@ int cellSpursEventFlagGetClearMode(mem_ptr_t<CellSpursEventFlag> eventFlag, mem3
|
||||||
|
|
||||||
int cellSpursEventFlagGetTasksetAddress(mem_ptr_t<CellSpursEventFlag> eventFlag, mem_ptr_t<CellSpursTaskset> taskset)
|
int cellSpursEventFlagGetTasksetAddress(mem_ptr_t<CellSpursEventFlag> eventFlag, mem_ptr_t<CellSpursTaskset> taskset)
|
||||||
{
|
{
|
||||||
cellSpurs->Todo("cellSpursEventFlagTryWait(eventFlag_addr=0x%x, taskset_addr=0x%x)", eventFlag.GetAddr(), taskset.GetAddr());
|
cellSpurs->Todo("cellSpursEventFlagGetTasksetAddress(eventFlag_addr=0x%x, taskset_addr=0x%x)", eventFlag.GetAddr(), taskset.GetAddr());
|
||||||
|
|
||||||
if (eventFlag.GetAddr() % 128 != 0)
|
if (eventFlag.GetAddr() % 128 != 0)
|
||||||
{
|
{
|
||||||
|
@ -716,9 +716,23 @@ int cellSpursTasksetAttributeSetName()
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _cellSpursTasksetAttribute2Initialize()
|
int _cellSpursTasksetAttribute2Initialize(mem_ptr_t<CellSpursTasksetAttribute2> attribute, u32 revision)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED_FUNC(cellSpurs);
|
cellSpurs->Warning("_cellSpursTasksetAttribute2Initialize(attribute_addr=0x%x, revision=%d)", attribute.GetAddr(), revision);
|
||||||
|
|
||||||
|
attribute->revision = revision;
|
||||||
|
attribute->name_addr = NULL;
|
||||||
|
attribute->argTaskset = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
attribute->priority[i] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
attribute->maxContention = 8;
|
||||||
|
attribute->enableClearLs = 0;
|
||||||
|
attribute->CellSpursTaskNameBuffer_addr = 0;
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -770,9 +784,26 @@ int cellSpursTaskAttributeSetExitCodeContainer()
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _cellSpursTaskAttribute2Initialize()
|
int _cellSpursTaskAttribute2Initialize(mem_ptr_t<CellSpursTaskAttribute2> attribute, u32 revision)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED_FUNC(cellSpurs);
|
cellSpurs->Warning("_cellSpursTaskAttribute2Initialize(attribute_addr=0x%x, revision=%d)", attribute.GetAddr(), revision);
|
||||||
|
|
||||||
|
attribute->revision = revision;
|
||||||
|
attribute->sizeContext = 0;
|
||||||
|
attribute->eaContext = NULL;
|
||||||
|
|
||||||
|
for (int c = 0; c < 4; c++)
|
||||||
|
{
|
||||||
|
attribute->lsPattern.u32[c] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
attribute->lsPattern.u64[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
attribute->name_addr = 0;
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,8 @@ enum
|
||||||
CELL_SPURS_TASK_ERROR_PERM = 0x80410909,
|
CELL_SPURS_TASK_ERROR_PERM = 0x80410909,
|
||||||
CELL_SPURS_TASK_ERROR_BUSY = 0x8041090A,
|
CELL_SPURS_TASK_ERROR_BUSY = 0x8041090A,
|
||||||
CELL_SPURS_TASK_ERROR_FAULT = 0x8041090D,
|
CELL_SPURS_TASK_ERROR_FAULT = 0x8041090D,
|
||||||
CELL_SPURS_TASK_ERROR_STAT = 0x8041090F,
|
|
||||||
CELL_SPURS_TASK_ERROR_ALIGN = 0x80410910,
|
CELL_SPURS_TASK_ERROR_ALIGN = 0x80410910,
|
||||||
|
CELL_SPURS_TASK_ERROR_STAT = 0x8041090F,
|
||||||
CELL_SPURS_TASK_ERROR_NULL_POINTER = 0x80410911,
|
CELL_SPURS_TASK_ERROR_NULL_POINTER = 0x80410911,
|
||||||
CELL_SPURS_TASK_ERROR_FATAL = 0x80410914,
|
CELL_SPURS_TASK_ERROR_FATAL = 0x80410914,
|
||||||
CELL_SPURS_TASK_ERROR_SHUTDOWN = 0x80410920,
|
CELL_SPURS_TASK_ERROR_SHUTDOWN = 0x80410920,
|
||||||
|
@ -214,7 +214,7 @@ struct CellSpursTaskAttribute2
|
||||||
be_t<u32> revision;
|
be_t<u32> revision;
|
||||||
be_t<u32> sizeContext;
|
be_t<u32> sizeContext;
|
||||||
be_t<u64> eaContext;
|
be_t<u64> eaContext;
|
||||||
CellSpursTaskLsPattern lsPattern; //???
|
CellSpursTaskLsPattern lsPattern;
|
||||||
be_t<u32> name_addr;
|
be_t<u32> name_addr;
|
||||||
//be_t<u32> __reserved__[];
|
//be_t<u32> __reserved__[];
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue