函数逻辑报告 |
Source Code:kernel\debug\kdb\kdb_io.c |
Create Date:2022-07-27 12:44:05 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:vkdb_printf
函数原型:int vkdb_printf(enum kdb_msgsrc src, const char *fmt, va_list ap)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
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 |
563 | local_irq_save(flags) |
565 | 循环 |
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) |
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 | 如果非cp则 |
617 | 如果next_avail恒等于A bit too big to go on stack 则 |
625 | 如果非字符串指定长度比较则 |
632 | 转到:kdb_printit |
639 | size_avail等于A bit too big to go on stack 的长度减len |
640 | 转到: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 | 如果非fnd则 |
683 | kdb_printit : |
691 | gdbstub_msg_write(cp, retlen - (cp - A bit too big to go on stack )) |
692 | 否则 |
707 | 如果logging则 |
712 | 否则打印信息("%s", A bit too big to go on stack ) |
722 | got等于0 |
725 | 如果A bit too big to go on stack [len]恒等于'\n'则 |
727 | got等于0 |
728 | 否则如果A bit too big to go on stack [len]恒等于'\r'则 |
729 | got等于0 |
730 | 否则 |
731 | got自加 |
734 | Current number of lines displayed 加等于got除colcount加1的和 |
738 | 如果Current number of lines displayed 大于等于linecount则 |
750 | moreprompt等于kdbgetenv("MOREPROMPT") |
751 | 如果(moreprompt == NULL)则moreprompt等于"more> " |
755 | c等于console_drivers |
757 | 如果dbg_io_ops且非is_console则 |
759 | cp等于moreprompt |
761 | write_char( * cp) |
762 | cp自加 |
778 | A bit too big to go on stack [0]等于'\0' |
780 | size_avail等于A bit too big to go on stack 的长度 |
784 | KDB_STATE_CLEAR(PAGER) |
787 | kdb_printf("\n") |
788 | 否则如果ch恒等于' '则 |
789 | kdb_printf("\r") |
790 | suspend_grep等于1 |
795 | 否则如果ch恒等于'/'且非Miscellaneous functions and data areas 则 |
796 | kdb_printf("\r") |
801 | suspend_grep等于1 |
802 | 否则如果ch则 |
804 | suspend_grep等于1 |
805 | 如果ch不等于'/'则kdb_printf("\nOnly 'q', 'Q' or '/' are processed at more prompt, input ignored\n") |
809 | 否则kdb_printf("\n'/' cannot be used during | grep filtering, input ignored\n") |
812 | 否则如果Miscellaneous functions and data areas 则 |
814 | suspend_grep等于1 |
815 | kdb_printf("\n") |
827 | cphold等于replaced_byte |
831 | size_avail等于A bit too big to go on stack 的长度减len |
834 | kdb_print_out : |
835 | suspend_grep等于0 |
839 | smp_store_release( & kdb_printf_cpu, old_cpu) |
840 | local_irq_restore(flags) |
841 | 返回:retlen |
名称 | 描述 |
---|---|
kdb_printf | |
vprintk_default |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |