Fix the usual myriad of Linux compilation errors.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2064 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-10-23 21:05:32 +00:00
parent efc35405f8
commit aa2e053366
4 changed files with 15 additions and 15 deletions

View File

@ -70,7 +70,7 @@ protected:
typedef typename ListenerList::const_iterator ConstIterator;
ListenerList m_listeners;
// This is a cached copy of the listener list used to handle standard dispatching, which
// allows for self-modification of the EventSource's listener list by the listeners.
// Translation: The dispatcher uses this copy instead, to avoid iterator invalidation.
@ -129,7 +129,7 @@ public:
}
protected:
__forceinline void _DispatchRaw( ConstIterator& iter, const ConstIterator& iend, EvtType& evt )
__forceinline void _DispatchRaw( ConstIterator iter, const ConstIterator& iend, EvtType& evt )
{
while( iter != iend )
{

View File

@ -18,23 +18,24 @@
#include <sys/mman.h>
#include <signal.h>
#include "Common.h"
#include "System/PageFaultSource.h"
extern void SignalExit(int sig);
static const uptr m_pagemask = getpagesize()-1;
// Linux implementation of SIGSEGV handler. Bind it using sigaction().
static void SysPageFaultSignalFilter( int signal, siginfo_t *info, void * )
static void SysPageFaultSignalFilter( int signal, siginfo_t *siginfo, void * )
{
// Note: Use of most stdio functions isn't safe here. Avoid console logs,
// assertions, file logs, or just about anything else useful.
PageFaultInfo info( (uptr)info->si_addr & ~m_pagemask );
Source_AccessViolation.DispatchException( info );
PageFaultInfo pfinfo( (uptr)siginfo->si_addr & ~m_pagemask );
Source_PageFault.DispatchException( pfinfo );
// resumes execution right where we left off (re-executes instruction that
// caused the SIGSEGV).
if( info.handled ) return;
if( pfinfo.handled ) return;
// Bad mojo! Completely invalid address.
// Instigate a trap if we're in a debugger, and if not then do a SIGKILL.
@ -53,4 +54,4 @@ void InstallSignalHandler()
sigaction(SIGSEGV, &sa, NULL);
}
void NTFS_CompressFile( const wxString& file, bool compressStatus=true ) {}
void NTFS_CompressFile( const wxString& file, bool compressStatus ) {}

View File

@ -27,7 +27,7 @@ struct PageFaultInfo
{
uptr addr;
bool handled;
PageFaultInfo( uptr address )
{
addr = address;
@ -60,8 +60,8 @@ extern void InstallSignalHandler();
#ifdef __LINUX__
# define PCSX2_PAGEFAULT_PROTECT()
# define PCSX2_PAGEFAULT_EXCEPT()
# define PCSX2_PAGEFAULT_PROTECT
# define PCSX2_PAGEFAULT_EXCEPT
#elif defined( _WIN32 )

View File

@ -25,7 +25,7 @@
#include "SamplProf.h"
#include "Dump.h"
#include "SysThreads.h"
#include "System/SysThreads.h"
#include "GS.h"
using namespace x86Emitter;
@ -40,7 +40,6 @@ static uptr hwLUT[0x10000];
#define HWADDR(mem) (hwLUT[mem >> 16] + (mem))
u32 s_nBlockCycles = 0; // cycles of current block recompiling
//u8* dyna_block_discard_recmem=0;
u32 pc; // recompiler pc
int branch; // set for branch
@ -660,7 +659,7 @@ static void recCheckExecutionState()
{
#if PCSX2_SEH
SysCoreThread::Get().StateCheckInThread();
if( eeRecIsReset )
throw Exception::ForceDispatcherReg();
#else
@ -726,14 +725,14 @@ static void recExecute()
#endif
EnterRecompiledCode();
#ifdef _WIN32
} __finally
{
// This assertion is designed to help me troubleshoot the setjmp behavior from Win32.
// If the recompiler throws an unhandled SEH exception with SEH support disabled (which
// is typically a pthread_cancel) then this will fire and let me know.
// FIXME: Doesn't work because SEH is remarkably clever and executes the _finally block
// even when I use longjmp to restart the loop. Maybe a workaround exists? :/