[PATCH v4 06/13] sim/erc32: Use gdb callback for UART I/O when linked with gdb.

Mike Frysinger vapier@gentoo.org
Sat Mar 28 07:13:00 GMT 2015


On 17 Mar 2015 22:02, Jiri Gaisler wrote:
> 	Use the host_callback feature for printing when linked with gdb.

please write ChangeLog entries

>      if (dumbio)
>          return; /* do nothing */
> -    if (!ifd1)
> +    if (ifd1 == 0 && f1open) {
>  	tcsetattr(0, TCSANOW, &ioc1);
> -    if (!ifd2)
> +        tcflush(ifd1, TCIFLUSH);

8 spaces -> 1 tab

> +    }
> +    if (ifd2 == 0 && f1open) {
>  	tcsetattr(0, TCSANOW, &ioc2);
> +        tcflush(ifd2, TCIFLUSH);

8 spaces -> 1 tab

> +        if (callback && !callback->isatty(callback, ifd1)) {
> +            tty_setup = 0;
> +        }

drop the braces

>  	if (sis_verbose)
>  	    printf("serial port A on stdin/stdout\n");
>          if (!dumbio) {
>              tcgetattr(ifd1, &ioc1);
> +            if (tty_setup) {
>              iocold1 = ioc1;
>              ioc1.c_lflag &= ~(ICANON | ECHO);
>              ioc1.c_cc[VMIN] = 0;
>              ioc1.c_cc[VTIME] = 0;
>          }
> +        }

need to fix indentation

> @@ -1027,17 +1042,19 @@ port_init()
>  	    printf("serial port B on stdin/stdout\n");
>          if (!dumbio) {
>              tcgetattr(ifd2, &ioc2);
> +            if (tty_setup) {
>              iocold2 = ioc2;
>              ioc2.c_lflag &= ~(ICANON | ECHO);
>              ioc2.c_cc[VMIN] = 0;
>              ioc2.c_cc[VTIME] = 0;
>          }
> +        }

need to fix indentation

> -        if (!dumbio && ofd2 == 1) setbuf(f2out, NULL);
> +	if (!dumbio && tty_setup && ofd2 == 1) setbuf(f2out, NULL);

uncuddle while you're here

> @@ -1066,6 +1083,9 @@ read_uart(addr)
>  	    if (f1open) {
>  	        anum = DO_STDIO_READ(ifd1, aq, UARTBUF);
>  	    }
> +      else {
> +          anum = 0;
> +      }

drop the braces

> @@ -1098,6 +1118,9 @@ read_uart(addr)
>  	    if (f2open) {
>  		bnum = DO_STDIO_READ(ifd2, bq, UARTBUF);
>  	    }
> +	    else {
> +		bnum = 0;
> +	    }

drop the braces

> @@ -1130,6 +1153,9 @@ read_uart(addr)
>  	    if (f1open) {
>  	        anum = DO_STDIO_READ(ifd1, aq, UARTBUF);
>              }
> +	    else {
> +		anum = 0;
> +	    }

drop the braces

> @@ -1142,6 +1168,9 @@ read_uart(addr)
>  	    if (f2open) {
>  		bnum = DO_STDIO_READ(ifd2, bq, UARTBUF);
>  	    }
> +	    else {
> +		bnum = 0;
> +	    }

drop the braces

> @@ -1182,8 +1211,12 @@ write_uart(addr, data)
>  	    if (wnuma < UARTBUF)
>  	        wbufa[wnuma++] = c;
>  	    else {
> -	        while (wnuma)
> +	        while (wnuma) {
> +              if (ofd1 == 1 && callback)
> +                  wnuma -= callback->write_stdout(callback, wbufa, wnuma);
> +              else

needs tabs for indenting


> @@ -1206,8 +1239,12 @@ write_uart(addr, data)
>  	    if (wnumb < UARTBUF)
>  		wbufb[wnumb++] = c;
>  	    else {
> -		while (wnumb)
> +          while (wnumb) {
> +              if (ofd1 == 1 && callback)
> +                  wnumb -= callback->write_stdout(callback, wbufb, wnumb);
> +              else
>  		    wnumb -= fwrite(wbufb, 1, wnumb, f2out);
> +          }

same here

> @@ -1245,19 +1282,37 @@ write_uart(addr, data)
>  static void
>  flush_uart()
>  {
> -    while (wnuma && f1open)
> +    while (wnuma && f1open) {
> +        if (ofd1 == 1 && callback) {
> +            wnuma -= callback->write_stdout(callback, wbufa, wnuma);
> +            callback->flush_stdout(callback);
> +        }
> +        else

8 spaces -> 1 tab

>  	wnuma -= fwrite(wbufa, 1, wnuma, f1out);
> -    while (wnumb && f2open)
> +    }
> +    while (wnumb && f2open) {
> +        if (ofd2 == 1 && callback) {
> +            wnuma -= callback->write_stdout(callback, wbufb, wnuma);
> +            callback->flush_stdout(callback);
> +        }
> +        else

8 spaces -> 1 tab

this keeps coming up.  i'll stop noting it with the expectation  you'll fix all 
the new code.

> +            while (callback->write_stdout(callback, &uarta_sreg, 1) != 1);

should be a space before the ( -- comes up a few times in this patch

also, prefer to have an explicit body rather than cuddle the ;
	while (...)
		continue;

comes up a few times in this patch
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20150328/5c9eb865/attachment.sig>


More information about the Gdb-patches mailing list