UbixOS V2 2.0

libcpp.cc
Go to the documentation of this file.
1 /*-
2 * Copyright (c) 2002-2018 The UbixOS Project.
3 * All rights reserved.
4 *
5 * This was developed by Christopher W. Olsen for the UbixOS Project.
6 *
7 * Redistribution and use in source and binary forms, with or without modification, are permitted
8 * provided that the following conditions are met:
9 *
10 * 1) Redistributions of source code must retain the above copyright notice, this list of
11 * conditions, the following disclaimer and the list of authors.
12 * 2) Redistributions in binary form must reproduce the above copyright notice, this list of
13 * conditions, the following disclaimer and the list of authors in the documentation and/or
14 * other materials provided with the distribution.
15 * 3) Neither the name of the UbixOS Project nor the names of its contributors may be used to
16 * endorse or promote products derived from this software without specific prior written
17 * permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
20 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29 extern "C" {
30
31 #include <lib/kmalloc.h>
32 #include <sys/video.h>
33
34 void __pure_virtual() {
35 while (1)
36 asm("nop");
37 }
38
39 void __cxa_pure_virtual() {
40 while (1)
41 asm("nop");
42 }
43
44 /* Don't plan on exiting the kernel...so do nothing. */
45 int __cxa_atexit(void (*func)(void *), void * arg, void * d) {
46 return 0;
47 }
48
49 void __dso_handle() {
50 while (1)
51 asm("nop");
52 }
53
54 }
55
56 #include <lib/libcpp.h>
57
58 void * operator new[](unsigned size) {
59 return kmalloc(size);
60 }
61
62 void operator delete[](void * ptr) {
63 kfree(ptr);
64
65 return;
66 }
67
68 void * operator new(unsigned size) {
69 void * ptr = kmalloc(size);
70 return ptr;
71 }
72
73 void operator delete(void * ptr) {
74 kfree(ptr);
75 return;
76 }
video.h
kfree
void kfree(void *baseAddr)
Definition: kmalloc.c:342
__cxa_pure_virtual
void __cxa_pure_virtual()
Definition: libcpp.cc:39
libcpp.h
__dso_handle
void __dso_handle()
Definition: libcpp.cc:49
__pure_virtual
void __pure_virtual()
Definition: libcpp.cc:34
__cxa_atexit
int __cxa_atexit(void(*func)(void *), void *arg, void *d)
Definition: libcpp.cc:45
kmalloc
void * kmalloc(uInt32 len)
Definition: kmalloc.c:241
kmalloc.h