From ad43fbba8230cb65cd37bf256b934a1f37813b50 Mon Sep 17 00:00:00 2001 From: Tyler Dauwalder Date: Mon, 28 Apr 2003 22:51:12 +0000 Subject: [PATCH] Borrowed straight up from bfs. These will disappear when I get off my butt and move them to /headers/os/drivers and /src/kernel/core or wherever we agreed to consolidate them. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3115 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/udf/cpp.cpp | 16 ++++++ src/add-ons/kernel/file_systems/udf/cpp.h | 56 +++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/add-ons/kernel/file_systems/udf/cpp.cpp create mode 100644 src/add-ons/kernel/file_systems/udf/cpp.h diff --git a/src/add-ons/kernel/file_systems/udf/cpp.cpp b/src/add-ons/kernel/file_systems/udf/cpp.cpp new file mode 100644 index 0000000000..7278f4b57d --- /dev/null +++ b/src/add-ons/kernel/file_systems/udf/cpp.cpp @@ -0,0 +1,16 @@ +/* cpp - C++ in the kernel +** +** Initial version by Axel Dörfler, axeld@pinc-software.de +** This file may be used under the terms of the OpenBeOS License. +*/ + + +#include "cpp.h" + + +extern "C" void +__pure_virtual() +{ + //printf("pure virtual function call"); +} + diff --git a/src/add-ons/kernel/file_systems/udf/cpp.h b/src/add-ons/kernel/file_systems/udf/cpp.h new file mode 100644 index 0000000000..f0e8aaa709 --- /dev/null +++ b/src/add-ons/kernel/file_systems/udf/cpp.h @@ -0,0 +1,56 @@ +#ifndef CPP_H +#define CPP_H +/* cpp - C++ in the kernel +** +** Initial version by Axel Dörfler, axeld@pinc-software.de +** This file may be used under the terms of the OpenBeOS License. +*/ + + +#include +#include + + +// Oh no! C++ in the kernel! Are you nuts? +// +// - no exceptions +// - (almost) no virtuals (well, the Query code now uses them) +// - it's basically only the C++ syntax, and type checking +// - since one tend to encapsulate everything in classes, it has a slightly +// higher memory overhead +// - nicer code +// - easier to maintain + + +inline void * +operator new(size_t size) +{ + return malloc(size); +} + + +inline void * +operator new[](size_t size) +{ + return malloc(size); +} + + +inline void +operator delete(void *ptr) +{ + free(ptr); +} + + +inline void +operator delete[](void *ptr) +{ + free(ptr); +} + +// we're using virtuals +extern "C" void __pure_virtual(); + + +#endif /* CPP_H */