mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-07-03 22:06:20 +12:00
Remove cryptoppwin submodule (#754)
Some checks failed
Android Build / x64 (release) (push) Has been cancelled
Android Build / arm64 (release) (push) Has been cancelled
HTTP Server Build / build (push) Has been cancelled
Hydra Core Build / Windows (push) Has been cancelled
Hydra Core Build / MacOS (push) Has been cancelled
Hydra Core Build / Linux (push) Has been cancelled
Hydra Core Build / Android-x64 (push) Has been cancelled
Hydra Core Build / ARM-Libretro (push) Has been cancelled
Linux AppImage Build / build (push) Has been cancelled
Linux Build / build (push) Has been cancelled
MacOS Build / MacOS-arm64 (push) Has been cancelled
MacOS Build / MacOS-x86_64 (push) Has been cancelled
MacOS Build / MacOS-Universal (push) Has been cancelled
Qt Build / Windows (push) Has been cancelled
Qt Build / MacOS-arm64 (push) Has been cancelled
Qt Build / MacOS-x86_64 (push) Has been cancelled
Qt Build / MacOS-Universal (push) Has been cancelled
Qt Build / Linux (push) Has been cancelled
Windows Build / build (push) Has been cancelled
iOS Simulator Build / build (push) Has been cancelled
Some checks failed
Android Build / x64 (release) (push) Has been cancelled
Android Build / arm64 (release) (push) Has been cancelled
HTTP Server Build / build (push) Has been cancelled
Hydra Core Build / Windows (push) Has been cancelled
Hydra Core Build / MacOS (push) Has been cancelled
Hydra Core Build / Linux (push) Has been cancelled
Hydra Core Build / Android-x64 (push) Has been cancelled
Hydra Core Build / ARM-Libretro (push) Has been cancelled
Linux AppImage Build / build (push) Has been cancelled
Linux Build / build (push) Has been cancelled
MacOS Build / MacOS-arm64 (push) Has been cancelled
MacOS Build / MacOS-x86_64 (push) Has been cancelled
MacOS Build / MacOS-Universal (push) Has been cancelled
Qt Build / Windows (push) Has been cancelled
Qt Build / MacOS-arm64 (push) Has been cancelled
Qt Build / MacOS-x86_64 (push) Has been cancelled
Qt Build / MacOS-Universal (push) Has been cancelled
Qt Build / Linux (push) Has been cancelled
Windows Build / build (push) Has been cancelled
iOS Simulator Build / build (push) Has been cancelled
This commit is contained in:
parent
5591606177
commit
6182d4cfe9
198 changed files with 51291 additions and 4 deletions
128
third_party/cryptoppwin/include/cryptopp/ossig.h
vendored
Normal file
128
third_party/cryptoppwin/include/cryptopp/ossig.h
vendored
Normal file
|
@ -0,0 +1,128 @@
|
|||
// ossig.h - written and placed in the public domain by Jeffrey Walton
|
||||
//
|
||||
/// \file ossig.h
|
||||
/// \brief Utility class for trapping OS signals.
|
||||
/// \since Crypto++ 5.6.5
|
||||
|
||||
#ifndef CRYPTOPP_OS_SIGNAL_H
|
||||
#define CRYPTOPP_OS_SIGNAL_H
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#if defined(UNIX_SIGNALS_AVAILABLE)
|
||||
# include <signal.h>
|
||||
#endif
|
||||
|
||||
NAMESPACE_BEGIN(CryptoPP)
|
||||
|
||||
// ************** Unix and Linux compatibles ***************
|
||||
|
||||
#if defined(UNIX_SIGNALS_AVAILABLE) || defined(CRYPTOPP_DOXYGEN_PROCESSING)
|
||||
|
||||
/// \brief Signal handler function pointer
|
||||
/// \details SignalHandlerFn is provided as a stand alone function pointer with external "C" linkage
|
||||
/// \sa SignalHandler, NullSignalHandler
|
||||
extern "C" {
|
||||
typedef void (*SignalHandlerFn) (int);
|
||||
}
|
||||
|
||||
/// \brief Null signal handler function
|
||||
/// \param unused the signal number
|
||||
/// \details NullSignalHandler is provided as a stand alone function with external "C" linkage
|
||||
/// and not a static member function due to the member function's implicit
|
||||
/// external "C++" linkage.
|
||||
/// \sa SignalHandler, SignalHandlerFn
|
||||
extern "C" {
|
||||
inline void NullSignalHandler(int unused) {CRYPTOPP_UNUSED(unused);}
|
||||
}
|
||||
|
||||
/// Signal handler for Linux and Unix compatibles
|
||||
/// \tparam S Signal number
|
||||
/// \tparam O Flag indicating if an existing handler should be overwritten
|
||||
/// \details SignalHandler() can be used to install a signal handler with the signature
|
||||
/// <tt>void handler_fn(int)</tt>. If <tt>SignalHandlerFn</tt> is not <tt>NULL</tt>, then
|
||||
/// the sigaction is set to the function and the sigaction flags is set to the flags.
|
||||
/// If <tt>SignalHandlerFn</tt> is <tt>NULL</tt>, then a default handler is installed
|
||||
/// using sigaction flags set to 0. The default handler only returns from the call.
|
||||
/// \details Upon destruction the previous signal handler is restored if the former signal handler
|
||||
/// was replaced.
|
||||
/// \details On Cygwin systems using Newlib, you should define <tt>_XOPEN_SOURCE=700</tt> or
|
||||
/// <tt>_GNU_SOURCE</tt>; or use <tt>-std=gnu++03</tt>, <tt>-std=gnu++11</tt>, or similar. If
|
||||
/// you compile with <tt>-std=c++03</tt>, <tt>-std=c++11</tt> or similar, then define
|
||||
/// <tt>_XOPEN_SOURCE=700</tt>.
|
||||
/// \warning Do not use SignalHandler in a code block that uses <tt>setjmp</tt> or <tt>longjmp</tt>
|
||||
/// because the destructor may not run.
|
||||
/// \since Crypto++ 5.6.5
|
||||
/// \sa NullSignalHandler, SignalHandlerFn, \ref CRYPTOPP_ASSERT "CRYPTOPP_ASSERT", DebugTrapHandler
|
||||
template <int S, bool O=false>
|
||||
struct SignalHandler
|
||||
{
|
||||
/// \brief Construct a signal handler
|
||||
/// \param pfn Pointer to a signal handler function
|
||||
/// \param flags Flags to use with the signal handler
|
||||
/// \details SignalHandler() installs a signal handler with the signature
|
||||
/// <tt>void handler_fn(int)</tt>. If <tt>SignalHandlerFn</tt> is not <tt>NULL</tt>, then
|
||||
/// the sigaction is set to the function and the sigaction flags is set to the flags.
|
||||
/// If <tt>SignalHandlerFn</tt> is <tt>NULL</tt>, then a default handler is installed
|
||||
/// using sigaction flags set to 0. The default handler only returns from the call.
|
||||
/// \details Upon destruction the previous signal handler is restored if the former signal handler
|
||||
/// was overwritten.
|
||||
/// \details On Cygwin systems using Newlib, you should define <tt>_XOPEN_SOURCE=700</tt> or
|
||||
/// <tt>_GNU_SOURCE</tt>; or use <tt>-std=gnu++03</tt>, <tt>-std=gnu++11</tt>, or similar. If
|
||||
/// you compile with <tt>-std=c++03</tt>, <tt>-std=c++11</tt> or similar, then define
|
||||
/// <tt>_XOPEN_SOURCE=700</tt>.
|
||||
/// \warning Do not use SignalHandler in a code block that uses <tt>setjmp</tt> or <tt>longjmp</tt>
|
||||
/// because the destructor may not run. <tt>setjmp</tt> is why cpu.cpp does not use SignalHandler
|
||||
/// during CPU feature testing.
|
||||
/// \since Crypto++ 5.6.5
|
||||
SignalHandler(SignalHandlerFn pfn = NULLPTR, int flags = 0) : m_installed(false)
|
||||
{
|
||||
// http://pubs.opengroup.org/onlinepubs/007908799/xsh/sigaction.html
|
||||
struct sigaction new_handler;
|
||||
|
||||
do
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
ret = sigaction (S, 0, &m_old);
|
||||
if (ret != 0) break; // Failed
|
||||
|
||||
// Don't step on another's handler if Overwrite=false
|
||||
if (m_old.sa_handler != 0 && !O) break;
|
||||
|
||||
// Cygwin/Newlib requires -D_XOPEN_SOURCE=700
|
||||
ret = sigemptyset (&new_handler.sa_mask);
|
||||
if (ret != 0) break; // Failed
|
||||
|
||||
new_handler.sa_handler = (pfn ? pfn : &NullSignalHandler);
|
||||
new_handler.sa_flags = (pfn ? flags : 0);
|
||||
|
||||
// Install it
|
||||
ret = sigaction (S, &new_handler, 0);
|
||||
if (ret != 0) break; // Failed
|
||||
|
||||
m_installed = true;
|
||||
|
||||
} while(0);
|
||||
}
|
||||
|
||||
~SignalHandler()
|
||||
{
|
||||
if (m_installed)
|
||||
sigaction (S, &m_old, 0);
|
||||
}
|
||||
|
||||
private:
|
||||
struct sigaction m_old;
|
||||
bool m_installed;
|
||||
|
||||
private:
|
||||
// Not copyable
|
||||
SignalHandler(const SignalHandler &);
|
||||
void operator=(const SignalHandler &);
|
||||
};
|
||||
#endif
|
||||
|
||||
NAMESPACE_END
|
||||
|
||||
#endif // CRYPTOPP_OS_SIGNAL_H
|
Loading…
Add table
Add a link
Reference in a new issue