mirror of
https://github.com/ksherlock/mpw.git
synced 2024-11-22 00:32:44 +00:00
add gestaltOSAttr support for multifinder/temp memory
This commit is contained in:
parent
de50c3d796
commit
97f7e734bb
@ -32,6 +32,7 @@
|
|||||||
#include <deque>
|
#include <deque>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
#include <sys/xattr.h>
|
#include <sys/xattr.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@ -55,6 +56,8 @@
|
|||||||
|
|
||||||
using ToolBox::Log;
|
using ToolBox::Log;
|
||||||
|
|
||||||
|
#define FOUR_CHAR_CODE(x) x
|
||||||
|
|
||||||
namespace OS {
|
namespace OS {
|
||||||
|
|
||||||
enum
|
enum
|
||||||
@ -65,9 +68,45 @@ namespace OS {
|
|||||||
gestaltLocationErr = -5553,
|
gestaltLocationErr = -5553,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
gestaltOSAttr = FOUR_CHAR_CODE('os '), /* o/s attributes */
|
||||||
|
gestaltSysZoneGrowable = 0, /* system heap is growable */
|
||||||
|
gestaltLaunchCanReturn = 1, /* can return from launch */
|
||||||
|
gestaltLaunchFullFileSpec = 2, /* can launch from full file spec */
|
||||||
|
gestaltLaunchControl = 3, /* launch control support available */
|
||||||
|
gestaltTempMemSupport = 4, /* temp memory support */
|
||||||
|
gestaltRealTempMemory = 5, /* temp memory handles are real */
|
||||||
|
gestaltTempMemTracked = 6, /* temporary memory handles are tracked */
|
||||||
|
gestaltIPCSupport = 7, /* IPC support is present */
|
||||||
|
gestaltSysDebuggerSupport = 8, /* system debugger support is present */
|
||||||
|
gestaltNativeProcessMgrBit = 19 /* the process manager itself is native */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template<unsigned...>
|
||||||
|
struct make_bitmask;
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct make_bitmask<> : public std::integral_constant<uint32_t, 0>
|
||||||
|
{};
|
||||||
|
|
||||||
|
template<unsigned First, unsigned... Rest>
|
||||||
|
struct make_bitmask<First, Rest...> :
|
||||||
|
public std::integral_constant<uint32_t, (1 << First) | make_bitmask<Rest...>::value >
|
||||||
|
{};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
std::map<uint32_t, uint32_t> GestaltMap = {
|
std::map<uint32_t, uint32_t> GestaltMap = {
|
||||||
{'alis', 1}, // Alias Manager
|
{'alis', 1}, // Alias Manager
|
||||||
{'tmgr', 2}, // Time Manager (2 = revised, 3 = extended.)
|
{'tmgr', 2}, // Time Manager (2 = revised, 3 = extended.)
|
||||||
|
{
|
||||||
|
// enable temp memory for codewarrior
|
||||||
|
gestaltOSAttr,
|
||||||
|
make_bitmask<gestaltTempMemSupport, gestaltRealTempMemory, gestaltTempMemTracked>::value
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
uint16_t Gestalt(uint16_t trap)
|
uint16_t Gestalt(uint16_t trap)
|
||||||
|
Loading…
Reference in New Issue
Block a user