mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-28 20:16:58 +03:00
rt: Remove upcall_shared_malloc/free/realloc
This commit is contained in:
@@ -318,81 +318,6 @@ upcall_validate_box(rust_opaque_box* ptr) {
|
||||
}
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* Allocate an object in the exchange heap.
|
||||
*/
|
||||
|
||||
struct s_shared_malloc_args {
|
||||
uintptr_t retval;
|
||||
size_t nbytes;
|
||||
};
|
||||
|
||||
extern "C" CDECL void
|
||||
upcall_s_shared_malloc(s_shared_malloc_args *args) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG_UPCALL_ENTRY(task);
|
||||
|
||||
LOG(task, mem, "upcall shared_malloc(%" PRIdPTR ")", args->nbytes);
|
||||
void *p = task->kernel->malloc(args->nbytes, "shared malloc");
|
||||
memset(p, '\0', args->nbytes);
|
||||
LOG(task, mem, "upcall shared_malloc(%" PRIdPTR ") = 0x%" PRIxPTR,
|
||||
args->nbytes, (uintptr_t)p);
|
||||
args->retval = (uintptr_t) p;
|
||||
}
|
||||
|
||||
extern "C" CDECL uintptr_t
|
||||
upcall_shared_malloc(size_t nbytes) {
|
||||
s_shared_malloc_args args = {0, nbytes};
|
||||
UPCALL_SWITCH_STACK(&args, upcall_s_shared_malloc);
|
||||
return args.retval;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* Called whenever an object in the exchange heap is freed.
|
||||
*/
|
||||
|
||||
struct s_shared_free_args {
|
||||
void *ptr;
|
||||
};
|
||||
|
||||
extern "C" CDECL void
|
||||
upcall_s_shared_free(s_shared_free_args *args) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG_UPCALL_ENTRY(task);
|
||||
|
||||
rust_sched_loop *sched_loop = task->sched_loop;
|
||||
DLOG(sched_loop, mem,
|
||||
"upcall shared_free(0x%" PRIxPTR")",
|
||||
(uintptr_t)args->ptr);
|
||||
task->kernel->free(args->ptr);
|
||||
}
|
||||
|
||||
extern "C" CDECL void
|
||||
upcall_shared_free(void* ptr) {
|
||||
s_shared_free_args args = {ptr};
|
||||
UPCALL_SWITCH_STACK(&args, upcall_s_shared_free);
|
||||
}
|
||||
|
||||
struct s_shared_realloc_args {
|
||||
void *retval;
|
||||
void *ptr;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
extern "C" CDECL void
|
||||
upcall_s_shared_realloc(s_shared_realloc_args *args) {
|
||||
rust_task *task = rust_get_current_task();
|
||||
LOG_UPCALL_ENTRY(task);
|
||||
args->retval = task->kernel->realloc(args->ptr, args->size);
|
||||
}
|
||||
|
||||
extern "C" CDECL void *
|
||||
upcall_shared_realloc(void *ptr, size_t size) {
|
||||
s_shared_realloc_args args = {NULL, ptr, size};
|
||||
UPCALL_SWITCH_STACK(&args, upcall_s_shared_realloc);
|
||||
return args.retval;
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
struct s_str_new_uniq_args {
|
||||
|
||||
Reference in New Issue
Block a user