diff options
| author | Jeff Garzik <jeff@garzik.org> | 2006-04-20 18:36:05 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-04-20 18:36:05 -0400 |
| commit | 857c68f733eea07f11a061caea43a38fed61adb7 (patch) | |
| tree | 4567a9e91f717b22143ac1ccb0fb5323ac15afd3 /arch/um/os-Linux/skas/process.c | |
| parent | 4741c336d27dec3ea68a35659abb8dc82b142388 (diff) | |
| parent | 402a26f0c040077ed6f941eefac5a6971f0d5f40 (diff) | |
Merge branch 'master'
Diffstat (limited to 'arch/um/os-Linux/skas/process.c')
| -rw-r--r-- | arch/um/os-Linux/skas/process.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index 045ae0037456..0776bc18ca85 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c | |||
| @@ -434,7 +434,7 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr, | |||
| 434 | void (*handler)(int)) | 434 | void (*handler)(int)) |
| 435 | { | 435 | { |
| 436 | unsigned long flags; | 436 | unsigned long flags; |
| 437 | sigjmp_buf switch_buf, fork_buf; | 437 | jmp_buf switch_buf, fork_buf; |
| 438 | int enable; | 438 | int enable; |
| 439 | 439 | ||
| 440 | *switch_buf_ptr = &switch_buf; | 440 | *switch_buf_ptr = &switch_buf; |
| @@ -450,7 +450,7 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr, | |||
| 450 | */ | 450 | */ |
| 451 | flags = get_signals(); | 451 | flags = get_signals(); |
| 452 | block_signals(); | 452 | block_signals(); |
| 453 | if(UML_SIGSETJMP(&fork_buf, enable) == 0) | 453 | if(UML_SETJMP(&fork_buf, enable) == 0) |
| 454 | new_thread_proc(stack, handler); | 454 | new_thread_proc(stack, handler); |
| 455 | 455 | ||
| 456 | remove_sigstack(); | 456 | remove_sigstack(); |
| @@ -466,35 +466,35 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr, | |||
| 466 | 466 | ||
| 467 | void thread_wait(void *sw, void *fb) | 467 | void thread_wait(void *sw, void *fb) |
| 468 | { | 468 | { |
| 469 | sigjmp_buf buf, **switch_buf = sw, *fork_buf; | 469 | jmp_buf buf, **switch_buf = sw, *fork_buf; |
| 470 | int enable; | 470 | int enable; |
| 471 | 471 | ||
| 472 | *switch_buf = &buf; | 472 | *switch_buf = &buf; |
| 473 | fork_buf = fb; | 473 | fork_buf = fb; |
| 474 | if(UML_SIGSETJMP(&buf, enable) == 0) | 474 | if(UML_SETJMP(&buf, enable) == 0) |
| 475 | siglongjmp(*fork_buf, INIT_JMP_REMOVE_SIGSTACK); | 475 | siglongjmp(*fork_buf, INIT_JMP_REMOVE_SIGSTACK); |
| 476 | } | 476 | } |
| 477 | 477 | ||
| 478 | void switch_threads(void *me, void *next) | 478 | void switch_threads(void *me, void *next) |
| 479 | { | 479 | { |
| 480 | sigjmp_buf my_buf, **me_ptr = me, *next_buf = next; | 480 | jmp_buf my_buf, **me_ptr = me, *next_buf = next; |
| 481 | int enable; | 481 | int enable; |
| 482 | 482 | ||
| 483 | *me_ptr = &my_buf; | 483 | *me_ptr = &my_buf; |
| 484 | if(UML_SIGSETJMP(&my_buf, enable) == 0) | 484 | if(UML_SETJMP(&my_buf, enable) == 0) |
| 485 | UML_SIGLONGJMP(next_buf, 1); | 485 | UML_LONGJMP(next_buf, 1); |
| 486 | } | 486 | } |
| 487 | 487 | ||
| 488 | static sigjmp_buf initial_jmpbuf; | 488 | static jmp_buf initial_jmpbuf; |
| 489 | 489 | ||
| 490 | /* XXX Make these percpu */ | 490 | /* XXX Make these percpu */ |
| 491 | static void (*cb_proc)(void *arg); | 491 | static void (*cb_proc)(void *arg); |
| 492 | static void *cb_arg; | 492 | static void *cb_arg; |
| 493 | static sigjmp_buf *cb_back; | 493 | static jmp_buf *cb_back; |
| 494 | 494 | ||
| 495 | int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) | 495 | int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) |
| 496 | { | 496 | { |
| 497 | sigjmp_buf **switch_buf = switch_buf_ptr; | 497 | jmp_buf **switch_buf = switch_buf_ptr; |
| 498 | int n, enable; | 498 | int n, enable; |
| 499 | 499 | ||
| 500 | set_handler(SIGWINCH, (__sighandler_t) sig_handler, | 500 | set_handler(SIGWINCH, (__sighandler_t) sig_handler, |
| @@ -502,7 +502,7 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) | |||
| 502 | SIGVTALRM, -1); | 502 | SIGVTALRM, -1); |
| 503 | 503 | ||
| 504 | *fork_buf_ptr = &initial_jmpbuf; | 504 | *fork_buf_ptr = &initial_jmpbuf; |
| 505 | n = UML_SIGSETJMP(&initial_jmpbuf, enable); | 505 | n = UML_SETJMP(&initial_jmpbuf, enable); |
| 506 | switch(n){ | 506 | switch(n){ |
| 507 | case INIT_JMP_NEW_THREAD: | 507 | case INIT_JMP_NEW_THREAD: |
| 508 | new_thread_proc((void *) stack, new_thread_handler); | 508 | new_thread_proc((void *) stack, new_thread_handler); |
| @@ -512,7 +512,7 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) | |||
| 512 | break; | 512 | break; |
| 513 | case INIT_JMP_CALLBACK: | 513 | case INIT_JMP_CALLBACK: |
| 514 | (*cb_proc)(cb_arg); | 514 | (*cb_proc)(cb_arg); |
| 515 | UML_SIGLONGJMP(cb_back, 1); | 515 | UML_LONGJMP(cb_back, 1); |
| 516 | break; | 516 | break; |
| 517 | case INIT_JMP_HALT: | 517 | case INIT_JMP_HALT: |
| 518 | kmalloc_ok = 0; | 518 | kmalloc_ok = 0; |
| @@ -523,12 +523,12 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) | |||
| 523 | default: | 523 | default: |
| 524 | panic("Bad sigsetjmp return in start_idle_thread - %d\n", n); | 524 | panic("Bad sigsetjmp return in start_idle_thread - %d\n", n); |
| 525 | } | 525 | } |
| 526 | UML_SIGLONGJMP(*switch_buf, 1); | 526 | UML_LONGJMP(*switch_buf, 1); |
| 527 | } | 527 | } |
| 528 | 528 | ||
| 529 | void initial_thread_cb_skas(void (*proc)(void *), void *arg) | 529 | void initial_thread_cb_skas(void (*proc)(void *), void *arg) |
| 530 | { | 530 | { |
| 531 | sigjmp_buf here; | 531 | jmp_buf here; |
| 532 | int enable; | 532 | int enable; |
| 533 | 533 | ||
| 534 | cb_proc = proc; | 534 | cb_proc = proc; |
| @@ -536,8 +536,8 @@ void initial_thread_cb_skas(void (*proc)(void *), void *arg) | |||
| 536 | cb_back = &here; | 536 | cb_back = &here; |
| 537 | 537 | ||
| 538 | block_signals(); | 538 | block_signals(); |
| 539 | if(UML_SIGSETJMP(&here, enable) == 0) | 539 | if(UML_SETJMP(&here, enable) == 0) |
| 540 | UML_SIGLONGJMP(&initial_jmpbuf, INIT_JMP_CALLBACK); | 540 | UML_LONGJMP(&initial_jmpbuf, INIT_JMP_CALLBACK); |
| 541 | unblock_signals(); | 541 | unblock_signals(); |
| 542 | 542 | ||
| 543 | cb_proc = NULL; | 543 | cb_proc = NULL; |
| @@ -548,13 +548,13 @@ void initial_thread_cb_skas(void (*proc)(void *), void *arg) | |||
| 548 | void halt_skas(void) | 548 | void halt_skas(void) |
| 549 | { | 549 | { |
| 550 | block_signals(); | 550 | block_signals(); |
| 551 | UML_SIGLONGJMP(&initial_jmpbuf, INIT_JMP_HALT); | 551 | UML_LONGJMP(&initial_jmpbuf, INIT_JMP_HALT); |
| 552 | } | 552 | } |
| 553 | 553 | ||
| 554 | void reboot_skas(void) | 554 | void reboot_skas(void) |
| 555 | { | 555 | { |
| 556 | block_signals(); | 556 | block_signals(); |
| 557 | UML_SIGLONGJMP(&initial_jmpbuf, INIT_JMP_REBOOT); | 557 | UML_LONGJMP(&initial_jmpbuf, INIT_JMP_REBOOT); |
| 558 | } | 558 | } |
| 559 | 559 | ||
| 560 | void switch_mm_skas(struct mm_id *mm_idp) | 560 | void switch_mm_skas(struct mm_id *mm_idp) |
