mirror of
https://github.com/zhigang1992/OS-X-Voodoo-PS2-Controller.git
synced 2026-01-12 22:49:23 +08:00
54 lines
1.1 KiB
C++
Executable File
54 lines
1.1 KiB
C++
Executable File
//
|
|
// new_kext.cpp
|
|
//
|
|
// Created by RehabMan on 2/3/13.
|
|
// Copyright (c) 2013 rehabman. All rights reserved.
|
|
//
|
|
// Full complement of operator new/delete for use within kext environment.
|
|
//
|
|
|
|
#include "new_kext.h"
|
|
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
void* operator_new(size_t size)
|
|
{
|
|
size_t* p = (size_t*)IOMallocAligned(sizeof(size_t) + size, sizeof(void*));
|
|
if (p)
|
|
*p++ = size;
|
|
return p;
|
|
}
|
|
|
|
void operator_delete(void* p)
|
|
{
|
|
assert(p);
|
|
if (p)
|
|
{
|
|
size_t* t = (size_t*)p-1;
|
|
IOFreeAligned(t, *t);
|
|
}
|
|
}
|
|
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
void* operator_new_array(size_t size)
|
|
{
|
|
size_t* p = (size_t*)IOMallocAligned(sizeof(size_t) + size, sizeof(void*));
|
|
if (p)
|
|
*p++ = size;
|
|
return p;
|
|
}
|
|
|
|
void operator_delete_array(void* p)
|
|
{
|
|
assert(p);
|
|
if (p)
|
|
{
|
|
size_t* t = (size_t*)p-1;
|
|
IOFreeAligned(t, *t);
|
|
}
|
|
}
|
|
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|