Changeset 06e1e95 in mainline for kernel/generic/src
- Timestamp:
- 2006-09-14T17:09:21Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1d1f5d3
- Parents:
- e5ecc02
- Location:
- kernel/generic/src
- Files:
-
- 19 edited
-
console/chardev.c (modified) (2 diffs)
-
console/cmd.c (modified) (2 diffs)
-
console/console.c (modified) (2 diffs)
-
console/kconsole.c (modified) (2 diffs)
-
console/klog.c (modified) (2 diffs)
-
ddi/ddi.c (modified) (2 diffs)
-
debug/symtab.c (modified) (2 diffs)
-
ipc/ipcrsc.c (modified) (1 diff)
-
printf/printf.c (modified) (2 diffs)
-
printf/printf_core.c (modified) (6 diffs)
-
printf/snprintf.c (modified) (2 diffs)
-
printf/sprintf.c (modified) (2 diffs)
-
printf/vprintf.c (modified) (2 diffs)
-
printf/vsnprintf.c (modified) (2 diffs)
-
printf/vsprintf.c (modified) (2 diffs)
-
proc/scheduler.c (modified) (3 diffs)
-
security/cap.c (modified) (2 diffs)
-
synch/rwlock.c (modified) (1 diff)
-
syscall/copy.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/console/chardev.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 75 75 } 76 76 77 /** @}77 /** @} 78 78 */ 79 -
kernel/generic/src/console/cmd.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 807 807 } 808 808 809 /** @} 810 */ 811 809 /** @} 810 */ -
kernel/generic/src/console/console.c
re5ecc02 r06e1e95 28 28 */ 29 29 30 /** @addtogroup genericconsole30 /** @addtogroup genericconsole 31 31 * @{ 32 32 */ … … 166 166 } 167 167 168 /** @}168 /** @} 169 169 */ 170 -
kernel/generic/src/console/kconsole.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 627 627 } 628 628 629 /** @} 630 */ 631 629 /** @} 630 */ -
kernel/generic/src/console/klog.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericklog29 /** @addtogroup genericklog 30 30 * @{ 31 31 */ … … 106 106 } 107 107 108 /** @}108 /** @} 109 109 */ 110 -
kernel/generic/src/ddi/ddi.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericddi29 /** @addtogroup genericddi 30 30 * @{ 31 31 */ … … 206 206 } 207 207 208 /** @} 209 */ 210 208 /** @} 209 */ -
kernel/generic/src/debug/symtab.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericdebug29 /** @addtogroup genericdebug 30 30 * @{ 31 31 */ … … 198 198 } 199 199 200 /** @} 201 */ 202 200 /** @} 201 */ -
kernel/generic/src/ipc/ipcrsc.c
re5ecc02 r06e1e95 97 97 * to the calling task. All new calls through this phone 98 98 * get a EHUNGUP error code, the task is expected to 99 * send an sys_ipc_hangup after cleaning up it 's internal structures.99 * send an sys_ipc_hangup after cleaning up its internal structures. 100 100 * 101 101 * Call forwarding -
kernel/generic/src/printf/printf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 49 49 } 50 50 51 52 /** @} 51 /** @} 53 52 */ 54 -
kernel/generic/src/printf/printf_core.c
re5ecc02 r06e1e95 28 28 */ 29 29 30 /** @addtogroup generic30 /** @addtogroup generic 31 31 * @{ 32 32 */ … … 497 497 ++i; 498 498 switch (c = fmt[i]) { 499 case '#': flags |= __PRINTF_FLAG_PREFIX; break;500 case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break;501 case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break;502 case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break;503 case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break;504 default: end = 1;499 case '#': flags |= __PRINTF_FLAG_PREFIX; break; 500 case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break; 501 case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break; 502 case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break; 503 case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break; 504 default: end = 1; 505 505 }; 506 506 … … 546 546 547 547 switch (fmt[i++]) { 548 /** TODO: unimplemented qualifiers:549 * t ptrdiff_t - ISO C 99550 */551 case 'h': /* char or short */552 qualifier = PrintfQualifierShort;553 if (fmt[i] == 'h') {554 i++;555 qualifier = PrintfQualifierByte;556 }557 break;558 case 'l': /* long or long long*/559 qualifier = PrintfQualifierLong;560 if (fmt[i] == 'l') {561 i++;562 qualifier = PrintfQualifierLongLong;563 }564 break;565 case 'z': /* unative_t */566 qualifier = PrintfQualifierNative;567 break;568 default:569 qualifier = PrintfQualifierInt; /* default type */570 --i;548 /** TODO: unimplemented qualifiers: 549 * t ptrdiff_t - ISO C 99 550 */ 551 case 'h': /* char or short */ 552 qualifier = PrintfQualifierShort; 553 if (fmt[i] == 'h') { 554 i++; 555 qualifier = PrintfQualifierByte; 556 } 557 break; 558 case 'l': /* long or long long*/ 559 qualifier = PrintfQualifierLong; 560 if (fmt[i] == 'l') { 561 i++; 562 qualifier = PrintfQualifierLongLong; 563 } 564 break; 565 case 'z': /* unative_t */ 566 qualifier = PrintfQualifierNative; 567 break; 568 default: 569 qualifier = PrintfQualifierInt; /* default type */ 570 --i; 571 571 } 572 572 … … 575 575 switch (c = fmt[i]) { 576 576 577 /* 578 * String and character conversions. 579 */ 580 case 's': 581 if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) { 582 counter = -counter; 583 goto out; 584 }; 577 /* 578 * String and character conversions. 579 */ 580 case 's': 581 if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) { 582 counter = -counter; 583 goto out; 584 }; 585 586 counter += retval; 587 j = i + 1; 588 goto next_char; 589 case 'c': 590 c = va_arg(ap, unsigned int); 591 if ((retval = print_char(c, width, flags, ps)) < 0) { 592 counter = -counter; 593 goto out; 594 }; 585 595 586 counter += retval; 587 j = i + 1; 588 goto next_char; 589 case 'c': 590 c = va_arg(ap, unsigned int); 591 if ((retval = print_char(c, width, flags, ps)) < 0) { 592 counter = -counter; 593 goto out; 594 }; 595 596 counter += retval; 597 j = i + 1; 598 goto next_char; 599 600 /* 601 * Integer values 602 */ 603 case 'P': /* pointer */ 604 flags |= __PRINTF_FLAG_BIGCHARS; 605 case 'p': 606 flags |= __PRINTF_FLAG_PREFIX; 607 base = 16; 608 qualifier = PrintfQualifierPointer; 609 break; 610 case 'b': 611 base = 2; 612 break; 613 case 'o': 614 base = 8; 615 break; 616 case 'd': 617 case 'i': 618 flags |= __PRINTF_FLAG_SIGNED; 619 case 'u': 620 break; 621 case 'X': 622 flags |= __PRINTF_FLAG_BIGCHARS; 623 case 'x': 624 base = 16; 625 break; 626 /* percentile itself */ 627 case '%': 628 j = i; 629 goto next_char; 630 /* 631 * Bad formatting. 632 */ 633 default: 634 /* Unknown format 635 * now, the j is index of '%' so we will 636 * print whole bad format sequence 637 */ 638 goto next_char; 596 counter += retval; 597 j = i + 1; 598 goto next_char; 599 600 /* 601 * Integer values 602 */ 603 case 'P': /* pointer */ 604 flags |= __PRINTF_FLAG_BIGCHARS; 605 case 'p': 606 flags |= __PRINTF_FLAG_PREFIX; 607 base = 16; 608 qualifier = PrintfQualifierPointer; 609 break; 610 case 'b': 611 base = 2; 612 break; 613 case 'o': 614 base = 8; 615 break; 616 case 'd': 617 case 'i': 618 flags |= __PRINTF_FLAG_SIGNED; 619 case 'u': 620 break; 621 case 'X': 622 flags |= __PRINTF_FLAG_BIGCHARS; 623 case 'x': 624 base = 16; 625 break; 626 /* percentile itself */ 627 case '%': 628 j = i; 629 goto next_char; 630 /* 631 * Bad formatting. 632 */ 633 default: 634 /* Unknown format 635 * now, j is index of '%' so we will 636 * print whole bad format sequence 637 */ 638 goto next_char; 639 639 } 640 640 … … 643 643 /* print number */ 644 644 switch (qualifier) { 645 case PrintfQualifierByte:646 size = sizeof(unsigned char);647 number = (uint64_t)va_arg(ap, unsigned int);648 break;649 case PrintfQualifierShort:650 size = sizeof(unsigned short);651 number = (uint64_t)va_arg(ap, unsigned int);652 break;653 case PrintfQualifierInt:654 size = sizeof(unsigned int);655 number = (uint64_t)va_arg(ap, unsigned int);656 break;657 case PrintfQualifierLong:658 size = sizeof(unsigned long);659 number = (uint64_t)va_arg(ap, unsigned long);660 break;661 case PrintfQualifierLongLong:662 size = sizeof(unsigned long long);663 number = (uint64_t)va_arg(ap, unsigned long long);664 break;665 case PrintfQualifierPointer:666 size = sizeof(void *);667 number = (uint64_t)(unsigned long)va_arg(ap, void *);668 break;669 case PrintfQualifierNative:670 size = sizeof(unative_t);671 number = (uint64_t)va_arg(ap, unative_t);672 break;673 default: /* Unknown qualifier */674 counter = -counter;675 goto out;645 case PrintfQualifierByte: 646 size = sizeof(unsigned char); 647 number = (uint64_t)va_arg(ap, unsigned int); 648 break; 649 case PrintfQualifierShort: 650 size = sizeof(unsigned short); 651 number = (uint64_t)va_arg(ap, unsigned int); 652 break; 653 case PrintfQualifierInt: 654 size = sizeof(unsigned int); 655 number = (uint64_t)va_arg(ap, unsigned int); 656 break; 657 case PrintfQualifierLong: 658 size = sizeof(unsigned long); 659 number = (uint64_t)va_arg(ap, unsigned long); 660 break; 661 case PrintfQualifierLongLong: 662 size = sizeof(unsigned long long); 663 number = (uint64_t)va_arg(ap, unsigned long long); 664 break; 665 case PrintfQualifierPointer: 666 size = sizeof(void *); 667 number = (uint64_t)(unsigned long)va_arg(ap, void *); 668 break; 669 case PrintfQualifierNative: 670 size = sizeof(unative_t); 671 number = (uint64_t)va_arg(ap, unative_t); 672 break; 673 default: /* Unknown qualifier */ 674 counter = -counter; 675 goto out; 676 676 } 677 677 … … 719 719 } 720 720 721 722 /** @} 723 */ 724 721 /** @} 722 */ -
kernel/generic/src/printf/snprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 49 49 } 50 50 51 /** @}51 /** @} 52 52 */ 53 53 -
kernel/generic/src/printf/sprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 48 48 } 49 49 50 /** @}50 /** @} 51 51 */ 52 -
kernel/generic/src/printf/vprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 54 54 } 55 55 56 57 58 /** @} 56 /** @} 59 57 */ 60 -
kernel/generic/src/printf/vsnprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 101 101 } 102 102 103 /** @}103 /** @} 104 104 */ 105 -
kernel/generic/src/printf/vsprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 40 40 } 41 41 42 43 /** @} 42 /** @} 44 43 */ 45 -
kernel/generic/src/proc/scheduler.c
re5ecc02 r06e1e95 375 375 376 376 switch (THREAD->state) { 377 case Running:377 case Running: 378 378 spinlock_unlock(&THREAD->lock); 379 379 thread_ready(THREAD); 380 380 break; 381 381 382 case Exiting:382 case Exiting: 383 383 repeat: 384 384 if (THREAD->detached) { … … 406 406 break; 407 407 408 case Sleeping:408 case Sleeping: 409 409 /* 410 410 * Prefer the thread after it's woken up. … … 431 431 break; 432 432 433 default:433 default: 434 434 /* 435 435 * Entering state is unexpected. -
kernel/generic/src/security/cap.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 178 178 } 179 179 180 /** @}180 /** @} 181 181 */ 182 182 -
kernel/generic/src/synch/rwlock.c
re5ecc02 r06e1e95 207 207 rc = _mutex_lock_timeout(&rwl->exclusive, usec, flags); 208 208 switch (rc) { 209 case ESYNCH_WOULD_BLOCK:210 /*211 * release_spinlock() wasn't called212 */213 thread_register_call_me(NULL, NULL);214 spinlock_unlock(&rwl->lock);215 case ESYNCH_TIMEOUT:216 case ESYNCH_INTERRUPTED:217 /*218 * The sleep timed out.219 * We just restore interrupt priority level.220 */221 case ESYNCH_OK_BLOCKED:222 /*223 * We were woken with rwl->readers_in already incremented.224 * Note that this arrangement avoids race condition between225 * two concurrent readers. (Race is avoided if 'exclusive' is226 * locked at the same time as 'readers_in' is incremented.227 * Same time means both events happen atomically when228 * rwl->lock is held.)229 */230 interrupts_restore(ipl);231 break;232 case ESYNCH_OK_ATOMIC:233 panic("_mutex_lock_timeout()==ESYNCH_OK_ATOMIC\n");234 break;235 default:236 panic("invalid ESYNCH\n");237 break;209 case ESYNCH_WOULD_BLOCK: 210 /* 211 * release_spinlock() wasn't called 212 */ 213 thread_register_call_me(NULL, NULL); 214 spinlock_unlock(&rwl->lock); 215 case ESYNCH_TIMEOUT: 216 case ESYNCH_INTERRUPTED: 217 /* 218 * The sleep timed out. 219 * We just restore interrupt priority level. 220 */ 221 case ESYNCH_OK_BLOCKED: 222 /* 223 * We were woken with rwl->readers_in already incremented. 224 * Note that this arrangement avoids race condition between 225 * two concurrent readers. (Race is avoided if 'exclusive' is 226 * locked at the same time as 'readers_in' is incremented. 227 * Same time means both events happen atomically when 228 * rwl->lock is held.) 229 */ 230 interrupts_restore(ipl); 231 break; 232 case ESYNCH_OK_ATOMIC: 233 panic("_mutex_lock_timeout()==ESYNCH_OK_ATOMIC\n"); 234 break; 235 default: 236 panic("invalid ESYNCH\n"); 237 break; 238 238 } 239 239 return rc; -
kernel/generic/src/syscall/copy.c
re5ecc02 r06e1e95 106 106 107 107 ASSERT(THREAD); 108 ASSERT(!THREAD->in_copy_ from_uspace);108 ASSERT(!THREAD->in_copy_to_uspace); 109 109 110 110 if (!KERNEL_ADDRESS_SPACE_SHADOWED) { … … 119 119 120 120 ipl = interrupts_disable(); 121 THREAD->in_copy_ from_uspace = true;121 THREAD->in_copy_to_uspace = true; 122 122 123 123 rc = memcpy_to_uspace(uspace_dst, src, size); 124 124 125 THREAD->in_copy_ from_uspace = false;125 THREAD->in_copy_to_uspace = false; 126 126 127 127 interrupts_restore(ipl);
Note:
See TracChangeset
for help on using the changeset viewer.
