RE: [PATCH 1/3] hciattach: add common debug print functions and toggle option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marcel.

Thanks for the comments. I just fixed up and sent the patches.
BTW, do you want me to run the "checkpatch" with hciattach.c and hciattach.h to fix the coding style?
Even with my "rookie" eyes, I can see some coding style issue.

Let me know.

Regards.

Tedd

> -----Original Message-----
> From: Marcel Holtmann [mailto:marcel@xxxxxxxxxxxx]
> Sent: Tuesday, May 22, 2012 8:16 PM
> To: An, Tedd
> Cc: linux-bluetooth
> Subject: Re: [PATCH 1/3] hciattach: add common debug print functions and
> toggle option
> 
> Hi Tedd,
> 
> > This adds common debug print functions that print the debug messages
> > to stderr and it can be toggled with'-d' option in the parameter.
> >
> > It provides two functions: one for message and the other for data contents.
> >
> > ---
> >  tools/hciattach.8 |    4 ++++
> >  tools/hciattach.c |   36 ++++++++++++++++++++++++++++++++++--
> >  tools/hciattach.h |    3 +++
> >  3 files changed, 41 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/hciattach.8 b/tools/hciattach.8 index
> > cc97cad..eccbc61 100644
> > --- a/tools/hciattach.8
> > +++ b/tools/hciattach.8
> > @@ -6,6 +6,7 @@ hciattach \- attach serial devices via UART HCI to
> > BlueZ stack  .RB [\| \-b \|]  .RB [\| \-n \|]  .RB [\| \-p \|]
> > +.RB [\| \-d \|]
> >  .RB [\| \-t
> >  .IR timeout \|]
> >  .RB [\| \-s
> > @@ -32,6 +33,9 @@ Don't detach from controlling terminal.
> >  .B \-p
> >  Print the PID when detaching.
> >  .TP
> > +.B \-d
> > +Print debug messages to stderr.
> > +.TP
> >  .BI \-t " timeout"
> >  Specify an initialization timeout.  (Default is 5 seconds.)  .TP diff
> > --git a/tools/hciattach.c b/tools/hciattach.c index 3e73956..06ae9d6
> > 100644
> > --- a/tools/hciattach.c
> > +++ b/tools/hciattach.c
> > @@ -42,6 +42,7 @@
> >  #include <sys/poll.h>
> >  #include <sys/param.h>
> >  #include <sys/ioctl.h>
> > +#include <stdarg.h>
> >
> >  #include <bluetooth/bluetooth.h>
> >  #include <bluetooth/hci.h>
> > @@ -73,6 +74,8 @@ struct uart_t {
> >
> >  static volatile sig_atomic_t __io_canceled = 0;
> >
> > +static int g_debug;
> > +
> >  static void sig_hup(int sig)
> >  {
> >  }
> > @@ -144,6 +147,30 @@ static int uart_speed(int s)
> >  	}
> >  }
> >
> > +void dbg_print(const char *fmt, ...)
> > +{
> > +	va_list args;
> 
> extra empty line between variables and code please.
> 
> > +	if(g_debug) {
> 
> Extra space after if and before (.
> 
> > +		fprintf(stderr, "dbg: ");
> > +		va_start(args, fmt);
> > +		vfprintf(stderr, fmt, args);
> > +		va_end(args);
> > +		fprintf(stderr, "\n");
> > +	}
> > +}
> > +
> > +void dbg_print_pkt(const char *str, unsigned char *data, int len) {
> > +	int i;
> 
> Same here.
> 
> > +	if(g_debug) {
> 
> And here.
> 
> > +		fprintf(stderr, "dbg: %s", str);
> > +		for (i = 0; i < len; i++) {
> > +			fprintf(stderr, "%02x ", data[i]);
> > +		}
> 
> No { } needed for single statements.
> 
> > +		fprintf(stderr, "\n");
> > +	}
> > +}
> > +
> >  int set_speed(int fd, struct termios *ti, int speed)  {
> >  	if (cfsetospeed(ti, uart_speed(speed)) < 0) @@ -1260,7 +1287,7 @@
> > static void usage(void)  {
> >  	printf("hciattach - HCI UART driver initialization utility\n");
> >  	printf("Usage:\n");
> > -	printf("\thciattach [-n] [-p] [-b] [-r] [-t timeout] [-s initial_speed]
> <tty> <type | id> [speed] [flow|noflow] [bdaddr]\n");
> > +	printf("\thciattach [-n] [-p] [-b] [-r] [-d] [-t timeout] [-s
> > +initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]\n");
> >  	printf("\thciattach -l\n");
> >  }
> >
> > @@ -1280,8 +1307,9 @@ int main(int argc, char *argv[])
> >  	detach = 1;
> >  	printpid = 0;
> >  	raw = 0;
> > +	g_debug = 0;
> 
> I rather have you not start with g_ for global semantic. We have not been
> using it, so starting it now is making it confusing.
> 
> >
> > -	while ((opt=getopt(argc, argv, "bnpt:s:lr")) != EOF) {
> > +	while ((opt=getopt(argc, argv, "bnpdt:s:lr")) != EOF) {
> >  		switch(opt) {
> >  		case 'b':
> >  			send_break = 1;
> > @@ -1314,6 +1342,10 @@ int main(int argc, char *argv[])
> >  			raw = 1;
> >  			break;
> >
> > +		case 'd':
> > +			g_debug = 1;
> > +			break;
> > +
> >  		default:
> >  			usage();
> >  			exit(1);
> > diff --git a/tools/hciattach.h b/tools/hciattach.h index
> > a24dbc4..c528f2b 100644
> > --- a/tools/hciattach.h
> > +++ b/tools/hciattach.h
> > @@ -44,6 +44,9 @@
> >  #define HCI_UART_RESET_ON_INIT	1
> >  #define HCI_UART_CREATE_AMP	2
> >
> > +void dbg_print(const char *fmt, ...); void dbg_print_pkt(const char *
> > +str, unsigned char * data, int len);
> 
> it is char *str here. No extra space.
> 
> > +
> >  int read_hci_event(int fd, unsigned char* buf, int size);
> 
> And clearly not your fault, this one is wrong as well. The hciattach is a poster
> child of bad coding style. Time to clean that up a little bit ;)
> 
> >  int set_speed(int fd, struct termios *ti, int speed);
> >
> 
> Regards
> 
> Marcel
> 

��.n��������+%������w��{.n�����{����^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux