Function report |
Source Code:kernel\debug\kdb\kdb_io.c |
Create Date:2022-07-28 11:39:59 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:vkdb_printf
Proto:int vkdb_printf(enum kdb_msgsrc src, const char *fmt, va_list ap)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| enum kdb_msgsrc | src | |
| const char * | fmt | |
| va_list | ap |
| 550 | saved_loglevel = 0 |
| 551 | retlen = 0 |
| 554 | cphold = NULL , replaced_byte = ' ' |
| 555 | moreprompt = "more> " |
| 556 | c = console_drivers |
| 557 | flags = prefix, newline flags |
| 563 | local_irq_save(flags) |
| 564 | this_cpu = smp_processor_id() |
| 565 | cycle |
| 566 | old_cpu = cmpxchg( & kdb_printf_cpu, - 1, this_cpu) |
| 570 | cpu_relax() |
| 573 | diag = kdbgetintenv("LINES", & linecount) |
| 577 | diag = kdbgetintenv("COLUMNS", & colcount) |
| 581 | diag = kdbgetintenv("LOGGING", & logging) |
| 585 | If Not Miscellaneous functions and data areas || suspend_grep Then |
| 588 | size_avail = size of A bit too big to go on stack |
| 601 | If Not suspend_grep && Miscellaneous functions and data areas Then |
| 602 | cp = strchr - Find the first occurrence of the character c in the string s.*@s: the string to be searched*@c: the character to search for |
| 603 | If Not cp Then |
| 617 | If next_avail == A bit too big to go on stack Then |
| 625 | If Not strncmp(cp2, kdb_prompt_str, len) Then |
| 632 | Go to kdb_printit |
| 639 | size_avail = size of A bit too big to go on stack - len |
| 640 | Go to kdb_print_out |
| 647 | cp++ |
| 648 | replaced_byte = cp |
| 650 | cp = '\0' |
| 657 | fnd = search arg1 to see if it contains arg2* (kdmain.c provides flags for ^pat and pat$)* return 1 for found, 0 for not found |
| 658 | If Not fnd Then |
| 665 | cphold = replaced_byte |
| 669 | size_avail = size of A bit too big to go on stack - len |
| 670 | Go to kdb_print_out |
| 683 | kdb_printit : |
| 690 | If Not Use kdb or gdbserver mode && kgdb_connected - Is a host GDB connected to us? Then |
| 691 | gdbstub_msg_write(cp, retlen - (cp - A bit too big to go on stack )) |
| 692 | Else |
| 693 | If dbg_io_ops && Not is_console Then |
| 694 | len = retlen - cp - A bit too big to go on stack |
| 697 | write_char( * cp2) |
| 698 | cp2++ |
| 707 | If logging Then |
| 712 | Else pr_info("%s", A bit too big to go on stack ) |
| 722 | got = 0 |
| 725 | If A bit too big to go on stack [len] == '\n' Then |
| 727 | got = 0 |
| 728 | Else if A bit too big to go on stack [len] == '\r' Then |
| 729 | got = 0 |
| 730 | Else |
| 731 | got++ |
| 734 | Current number of lines displayed += got / (colcount + 1) |
| 738 | If Current number of lines displayed >= linecount Then |
| 750 | moreprompt = kdbgetenv("MOREPROMPT") |
| 751 | If (moreprompt == NULL) Then moreprompt = "more> " |
| 755 | c = console_drivers |
| 757 | If dbg_io_ops && Not is_console Then |
| 759 | cp = moreprompt |
| 761 | write_char( * cp) |
| 762 | cp++ |
| 778 | A bit too big to go on stack [0] = '\0' |
| 780 | size_avail = size of A bit too big to go on stack |
| 784 | KDB_STATE_CLEAR(PAGER) |
| 787 | kdb_printf("\n") |
| 788 | Else if ch == ' ' Then |
| 789 | kdb_printf("\r") |
| 790 | suspend_grep = 1 |
| 795 | Else if ch == '/' && Not Miscellaneous functions and data areas Then |
| 796 | kdb_printf("\r") |
| 801 | suspend_grep = 1 |
| 802 | Else if ch Then |
| 804 | suspend_grep = 1 |
| 805 | If ch != '/' Then kdb_printf("\nOnly 'q', 'Q' or '/' are processed at more prompt, input ignored\n") |
| 809 | Else kdb_printf("\n'/' cannot be used during | grep filtering, input ignored\n") |
| 812 | Else if Miscellaneous functions and data areas Then |
| 814 | suspend_grep = 1 |
| 815 | kdb_printf("\n") |
| 826 | If Miscellaneous functions and data areas && Not suspend_grep Then |
| 827 | cphold = replaced_byte |
| 831 | size_avail = size of A bit too big to go on stack - len |
| 834 | kdb_print_out : |
| 835 | suspend_grep = 0 |
| 836 | If logging Then console_loglevel = saved_loglevel |
| 839 | smp_store_release( & kdb_printf_cpu, old_cpu) |
| 840 | local_irq_restore(flags) |
| 841 | Return retlen |
| Name | Describe |
|---|---|
| kdb_printf |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |