提交 c415a6f2 编写于 作者: Z z00538436 提交者: public tcshversion

TicketNo:DTS2020090109976

Description:fix libc(user&kernel) printf func

Team:OTHERS
Feature or Bugfix:Bugfix
Binary Source:NA
PrivateCode(Yes/No):No

Change-Id: I78d37cd46a65fcbac889e3be76ea6a4360e6e8a9
Reviewed-on: http://mgit-tm.rnd.huawei.com/10583123Tested-by: Npublic jenkins <public_jenkins@notesmail.huawei.com>
Reviewed-by: Nmaguangyao 00383488 <maguangyao@huawei.com>
Reviewed-by: Nzhushengle 00451061 <zhushengle@huawei.com>
Reviewed-by: Njianghan 00316535 <jianghan2@huawei.com>
Reviewed-by: Nshenwei 00579521 <denny.shenwei@huawei.com>
上级 cf26423c
......@@ -99,17 +99,10 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
}
#define VDSO_USEFUL
#if 0
#define VDSO_CGT32_SYM "__vdso_clock_gettime"
#define VDSO_CGT32_VER "LINUX_2.6"
#define VDSO_CGT_SYM "__vdso_clock_gettime64"
#define VDSO_CGT_VER "LINUX_2.6"
#else
#define VDSO_CGT32_SYM "VdsoClockGettime"
#define VDSO_CGT32_VER "OHOS"
#define VDSO_CGT_SYM "VdsoClockGettime"
#define VDSO_CGT_VER "OHOS"
#endif
#define SYSCALL_FADVISE_6_ARG
......
#include "stdio_impl.h"
#include <sys/ioctl.h>
#include "fs/fs.h"
#include "fs/file.h"
size_t __stdout_write(FILE *f, const unsigned char *buf, size_t len)
{
struct winsize wsz;
f->write = __stdio_write;
if (!(f->flags & F_SVB) && ioctl(f->fd, TIOCGWINSZ, &wsz))
f->lbf = -1;
return __stdio_write(f, buf, len);
struct winsize wsz;
if (!(f->flags & F_SVB) && ioctl(f->fd, TIOCGWINSZ, &wsz)) {
f->lbf = EOF;
} else {
f->lbf = '\n';
f->write = __stdio_write;
f->wpos = f->wbase = f->buf;
f->wend = f->buf + f->buf_size;
}
if (len == -1) return 0;
return __stdio_write(f, buf, len);
}
......@@ -13,6 +13,8 @@ size_t __fwritex(const unsigned char *restrict s, size_t l, FILE *restrict f)
if (l > f->wend - f->wpos) return f->write(f, s, l);
if (f->lbf == EOF) f->write(f, s, -1);
if (f->lbf >= 0) {
/* Match /^(.*\n|)/ */
for (i=l; i && s[i-1] != '\n'; i--);
......
......@@ -89,7 +89,6 @@ static int libc_start_main_stage2(int (*main)(int,char **,char **), int argc, ch
{
char **envp = argv+argc+1;
__libc_start_init();
setbuf(stdout, NULL); //set printf buff =0 enable printf
__sig_init();
/* Pass control to the application */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册