提交 2ceeaa4f 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

x

上级 eab5dac8
...@@ -52,6 +52,7 @@ public: ...@@ -52,6 +52,7 @@ public:
void dump(); void dump();
static void* operator new(unsigned long); static void* operator new(unsigned long);
static void operator delete(void*);
private: private:
work *steal(int c); work *steal(int c);
......
...@@ -12,6 +12,12 @@ allocwq(unsigned long nbytes) ...@@ -12,6 +12,12 @@ allocwq(unsigned long nbytes)
} }
static inline void static inline void
freewq(void* p)
{
ksfree(slab_wq, p);
}
static inline void
wqlock_acquire(wqlock_t *lock) wqlock_acquire(wqlock_t *lock)
{ {
acquire(lock); acquire(lock);
......
...@@ -14,6 +14,12 @@ allocwq(unsigned long nbytes) ...@@ -14,6 +14,12 @@ allocwq(unsigned long nbytes)
return malloc(nbytes); return malloc(nbytes);
} }
static inline void
freewq(void* p)
{
free(p);
}
static inline uwq_ipcbuf* static inline uwq_ipcbuf*
allocipc(void) allocipc(void)
{ {
......
...@@ -2,7 +2,7 @@ $(O)/lib/%.S: CFLAGS:=$(CFLAGS) -DXV6_USER ...@@ -2,7 +2,7 @@ $(O)/lib/%.S: CFLAGS:=$(CFLAGS) -DXV6_USER
$(O)/lib/%.S: CXXFLAGS:=$(CXXFLAGS) -DXV6_USER $(O)/lib/%.S: CXXFLAGS:=$(CXXFLAGS) -DXV6_USER
ULIB = ulib.o usys.o printf.o umalloc.o uthread.o fmt.o stream.o ipc.o \ ULIB = ulib.o usys.o printf.o umalloc.o uthread.o fmt.o stream.o ipc.o \
threads.o crt.o wqlib.o wquser.o perf.o wqalloc.o threads.o crt.o wqlib.o wquser.o perf.o wqalloc.o rt.o
ULIB := $(addprefix $(O)/lib/, $(ULIB)) ULIB := $(addprefix $(O)/lib/, $(ULIB))
.PRECIOUS: $(O)/lib/%.o .PRECIOUS: $(O)/lib/%.o
......
#include "types.h"
#include "user.h"
void
abort(void)
{
char* p = (char*) 1;
*p = 1;
exit();
}
int
dl_iterate_phdr(void)
{
return -1;
}
...@@ -19,6 +19,12 @@ wq::operator new(unsigned long nbytes) ...@@ -19,6 +19,12 @@ wq::operator new(unsigned long nbytes)
return allocwq(nbytes); return allocwq(nbytes);
} }
void
wq::operator delete(void* p)
{
freewq(p);
}
wq::wq(void) wq::wq(void)
{ {
int i; int i;
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论