mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-05 06:21:19 +12:00
Add all the files
This commit is contained in:
parent
e3db07a16a
commit
d60742f52b
1445 changed files with 430238 additions and 0 deletions
96
src/Common/linux/platform.h
Normal file
96
src/Common/linux/platform.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
#include <shared_mutex>
|
||||
|
||||
class SlimRWLock
|
||||
{
|
||||
public:
|
||||
void LockRead()
|
||||
{
|
||||
m_sm.lock_shared();
|
||||
}
|
||||
|
||||
void UnlockRead()
|
||||
{
|
||||
m_sm.unlock_shared();
|
||||
}
|
||||
|
||||
void LockWrite()
|
||||
{
|
||||
m_sm.lock();
|
||||
}
|
||||
|
||||
void UnlockWrite()
|
||||
{
|
||||
m_sm.unlock();
|
||||
}
|
||||
|
||||
private:
|
||||
std::shared_mutex m_sm;
|
||||
};
|
||||
|
||||
inline uint32_t GetExceptionError()
|
||||
{
|
||||
return errno;
|
||||
}
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#include <X11/Xutil.h>
|
||||
#undef False
|
||||
#undef True
|
||||
#undef None
|
||||
#undef Bool
|
||||
#undef Status
|
||||
#undef Success
|
||||
#undef ClientMessage
|
||||
|
||||
// cpu id (somewhat hacky, reorganize later)
|
||||
void (__cpuid)(int __cpuVal[4], unsigned int __leaf);
|
||||
void __cpuidex (int __cpuid_info[4], int __leaf, int __subleaf);
|
||||
|
||||
// placeholder
|
||||
uint32_t GetTickCount();
|
||||
|
||||
// strcpy_s and strcat_s implementations
|
||||
template<size_t N>
|
||||
void strcpy_s(char (&dst)[N], const char* src)
|
||||
{
|
||||
if(N == 0)
|
||||
return;
|
||||
char* dstP = dst;
|
||||
const char* end = src + N - 1;
|
||||
while(src < end)
|
||||
{
|
||||
char c = *src;
|
||||
*dstP = c;
|
||||
if(c == '\0')
|
||||
return;
|
||||
dstP++;
|
||||
src++;
|
||||
c++;
|
||||
}
|
||||
*dstP = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
template<size_t N>
|
||||
void strcat_s(char (&dst)[N], const char* src)
|
||||
{
|
||||
if(N == 0)
|
||||
return;
|
||||
char* dstP = dst;
|
||||
const char* end = dstP + N - 1;
|
||||
while(dstP < end && *dstP != '\0')
|
||||
dstP++;
|
||||
while(dstP < end)
|
||||
{
|
||||
char c = *src;
|
||||
*dstP = c;
|
||||
if(c == '\0')
|
||||
return;
|
||||
dstP++;
|
||||
src++;
|
||||
c++;
|
||||
}
|
||||
*dstP = '\0';
|
||||
return;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue