mirror of https://github.com/bsnes-emu/bsnes.git
v106.224
This commit is contained in:
parent
ef1d4b592a
commit
0d87e92a10
|
@ -59,10 +59,6 @@ static void co_init() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "aarch64";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
||||||
return co_active_handle;
|
return co_active_handle;
|
||||||
|
@ -102,6 +98,10 @@ void co_switch(cothread_t handle) {
|
||||||
co_swap(co_active_handle = handle, co_previous_handle);
|
co_swap(co_active_handle = handle, co_previous_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
8
amd64.c
8
amd64.c
|
@ -115,10 +115,6 @@ static void crash() {
|
||||||
assert(0); /* called only if cothread_t entrypoint returns */
|
assert(0); /* called only if cothread_t entrypoint returns */
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "amd64";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
||||||
return co_active_handle;
|
return co_active_handle;
|
||||||
|
@ -158,6 +154,10 @@ void co_switch(cothread_t handle) {
|
||||||
co_swap(co_active_handle = handle, co_previous_handle);
|
co_swap(co_active_handle = handle, co_previous_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
8
arm.c
8
arm.c
|
@ -35,10 +35,6 @@ static void co_init() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "arm";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
||||||
return co_active_handle;
|
return co_active_handle;
|
||||||
|
@ -77,6 +73,10 @@ void co_switch(cothread_t handle) {
|
||||||
co_swap(co_active_handle = handle, co_previous_handle);
|
co_swap(co_active_handle = handle, co_previous_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
8
fiber.c
8
fiber.c
|
@ -16,10 +16,6 @@ static void __stdcall co_thunk(void* coentry) {
|
||||||
((void (*)(void))coentry)();
|
((void (*)(void))coentry)();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "fiber";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_) {
|
if(!co_active_) {
|
||||||
ConvertThreadToFiber(0);
|
ConvertThreadToFiber(0);
|
||||||
|
@ -50,6 +46,10 @@ void co_switch(cothread_t cothread) {
|
||||||
SwitchToFiber(cothread);
|
SwitchToFiber(cothread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
2
libco.h
2
libco.h
|
@ -13,12 +13,12 @@ extern "C" {
|
||||||
|
|
||||||
typedef void* cothread_t;
|
typedef void* cothread_t;
|
||||||
|
|
||||||
const char* co_method();
|
|
||||||
cothread_t co_active();
|
cothread_t co_active();
|
||||||
cothread_t co_derive(void*, unsigned int, void (*)(void));
|
cothread_t co_derive(void*, unsigned int, void (*)(void));
|
||||||
cothread_t co_create(unsigned int, void (*)(void));
|
cothread_t co_create(unsigned int, void (*)(void));
|
||||||
void co_delete(cothread_t);
|
void co_delete(cothread_t);
|
||||||
void co_switch(cothread_t);
|
void co_switch(cothread_t);
|
||||||
|
int co_serializable();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
8
ppc.c
8
ppc.c
|
@ -413,10 +413,6 @@ static void co_init_(void) {
|
||||||
co_active_handle = co_create_(state_size, (uintptr_t)&co_switch);
|
co_active_handle = co_create_(state_size, (uintptr_t)&co_switch);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "ppc";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_handle) co_init_();
|
if(!co_active_handle) co_init_();
|
||||||
|
|
||||||
|
@ -429,3 +425,7 @@ void co_switch(cothread_t t) {
|
||||||
|
|
||||||
CO_SWAP_ASM(t, old);
|
CO_SWAP_ASM(t, old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -221,10 +221,6 @@ __asm__(
|
||||||
".size swap_context, .-swap_context\n"
|
".size swap_context, .-swap_context\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "ppc64v2";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_handle) {
|
if(!co_active_handle) {
|
||||||
co_active_handle = (struct ppc64_context*)malloc(MIN_STACK + sizeof(struct ppc64_context));
|
co_active_handle = (struct ppc64_context*)malloc(MIN_STACK + sizeof(struct ppc64_context));
|
||||||
|
@ -274,6 +270,10 @@ void co_switch(cothread_t to) {
|
||||||
swap_context((struct ppc64_context*)to, from);
|
swap_context((struct ppc64_context*)to, from);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
8
sjlj.c
8
sjlj.c
|
@ -33,10 +33,6 @@ static void springboard(int ignored) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "sjlj";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_running) co_running = &co_primary;
|
if(!co_running) co_running = &co_primary;
|
||||||
return (cothread_t)co_running;
|
return (cothread_t)co_running;
|
||||||
|
@ -140,6 +136,10 @@ void co_switch(cothread_t cothread) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,10 +26,6 @@ extern "C" {
|
||||||
static thread_local ucontext_t co_primary;
|
static thread_local ucontext_t co_primary;
|
||||||
static thread_local ucontext_t* co_running = 0;
|
static thread_local ucontext_t* co_running = 0;
|
||||||
|
|
||||||
const char* co_module() {
|
|
||||||
return "ucontext";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_running) co_running = &co_primary;
|
if(!co_running) co_running = &co_primary;
|
||||||
return (cothread_t)co_running;
|
return (cothread_t)co_running;
|
||||||
|
@ -81,6 +77,10 @@ void co_switch(cothread_t cothread) {
|
||||||
swapcontext(old_thread, co_running);
|
swapcontext(old_thread, co_running);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
8
x86.c
8
x86.c
|
@ -69,10 +69,6 @@ static void crash() {
|
||||||
assert(0); /* called only if cothread_t entrypoint returns */
|
assert(0); /* called only if cothread_t entrypoint returns */
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* co_method() {
|
|
||||||
return "x86";
|
|
||||||
}
|
|
||||||
|
|
||||||
cothread_t co_active() {
|
cothread_t co_active() {
|
||||||
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
if(!co_active_handle) co_active_handle = &co_active_buffer;
|
||||||
return co_active_handle;
|
return co_active_handle;
|
||||||
|
@ -112,6 +108,10 @@ void co_switch(cothread_t handle) {
|
||||||
co_swap(co_active_handle = handle, co_previous_handle);
|
co_swap(co_active_handle = handle, co_previous_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int co_serializable() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue