diff options
author | Ruslan Ermilov <ru@nginx.com> | 2015-03-20 06:43:19 +0300 |
---|---|---|
committer | Ruslan Ermilov <ru@nginx.com> | 2015-03-20 06:43:19 +0300 |
commit | c84c19f5bf9b5e93056789940e38634fdb27a5e8 (patch) | |
tree | 68e4f342df7e5c922b6059018b588c1d53057ffa /src/os/unix/rfork_thread.S | |
parent | c34368715f9e6639f11e9c1a70272668085d6886 (diff) | |
download | nginx-c84c19f5bf9b5e93056789940e38634fdb27a5e8.tar.gz nginx-c84c19f5bf9b5e93056789940e38634fdb27a5e8.zip |
Removed old FreeBSD rfork() thread implementation.
Diffstat (limited to 'src/os/unix/rfork_thread.S')
-rw-r--r-- | src/os/unix/rfork_thread.S | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/os/unix/rfork_thread.S b/src/os/unix/rfork_thread.S deleted file mode 100644 index e570349f9..000000000 --- a/src/os/unix/rfork_thread.S +++ /dev/null @@ -1,73 +0,0 @@ - -/* - * Copyright (C) Igor Sysoev - * Copyright (C) Nginx, Inc. - */ - - -#include <sys/syscall.h> -#include <machine/asm.h> - -/* - * rfork_thread(3) - rfork_thread(flags, stack, func, arg); - */ - -#define KERNCALL int $0x80 - -ENTRY(rfork_thread) - push %ebp - mov %esp, %ebp - push %esi - - mov 12(%ebp), %esi # the thread stack address - - sub $4, %esi - mov 20(%ebp), %eax # the thread argument - mov %eax, (%esi) - - sub $4, %esi - mov 16(%ebp), %eax # the thread start address - mov %eax, (%esi) - - push 8(%ebp) # rfork(2) flags - push $0 - mov $SYS_rfork, %eax - KERNCALL - jc error - - cmp $0, %edx - jne child - -parent: - add $8, %esp - pop %esi - leave - ret - -child: - mov %esi, %esp - pop %eax - call *%eax # call a thread start address ... - add $4, %esp - - push %eax - push $0 - mov $SYS_exit, %eax # ... and exit(2) after a thread would return - KERNCALL - -error: - add $8, %esp - pop %esi - leave - PIC_PROLOGUE - - /* libc's cerror: jmp PIC_PLT(HIDENAME(cerror)) */ - - push %eax - call PIC_PLT(CNAME(__error)) - pop %ecx - PIC_EPILOGUE - mov %ecx, (%eax) - mov $-1, %eax - mov $-1, %edx - ret |