blob: 1b7dd4299cce4f71ba6a893f3d1d0c38f147ef74 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// SPDX-License-Identifier: Unlicense OR MIT
//go:build linux && (arm64 || arm || amd64)
// +build linux
// +build arm64 arm amd64
#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
#include "abi.h"
#include "runtime.h"
static void *malloc_align(size_t alignment, size_t size) {
void *ptr;
int ret = posix_memalign(&ptr, alignment, size);
assert(ret == 0);
return ptr;
}
ATTR_HIDDEN void *coroutine_alloc_frame(size_t size) {
void *ptr = malloc_align(16, size);
return ptr;
}
ATTR_HIDDEN void coroutine_free_frame(void *ptr) {
free(ptr);
}
|