On 2013-03-05 11:45, Jerome Poncin wrote:
> The code with #ifdef DEBUG is also questionable, it will tend to bitrot
> since nobody will think to enable it.
> 
> => I disagree with you, it could be helpful if somebody have a problem
> and want to debug quickly.
> But I can remove it if it's not standard to xenomai kernel.

#ifdef DEBUG is widely considered obsolete. If you have debug relevant
information, tracepoints are much better as they are runtime switchable.

But to look at a concrete example:

> +static ssize_t cifx_pci_read(struct rtdm_dev_context *context,
> +                 rtdm_user_info_t *user_info, void *buf,
> +                 size_t nbyte)
> +{
> +    struct rtdm_device *info = (struct rtdm_device *)context->device;
> +
> +    if (nbyte > sizeof(struct io_info)) {
> +#ifdef DEBUG
> +        rtdm_printk
> +            ("cifx rtdm driver error : data user size too big\n");
> +#endif /* DEBUG */
> +
> +        return 0;

If it is an error, return the proper code (-EINVAL? Or -E2BIG?). That
will be visible without any driver instrumentation.

> +    }
> +
> +    /* Copy data information for userland */
> +    if (rtdm_safe_copy_to_user(user_info, buf,
> +                   ((struct io_info *)info->device_data),
> +                   nbyte)) {
> +#ifdef DEBUG
> +        rtdm_printk
> +            ("cifx rtdm driver error : can't copy data from driver\n");
> +#endif /* DEBUG */

And this is a bug: return -EFAULT. Again, no need for driver
instrumentation.

> +    }
> +
> +    return nbyte;
> +}

...

> 
> I think you are not convinced yet that "code is the best documentation"
> 
> => Yes, you right it's because I worked long time on safety project (for
> me it's a habit) .
> Moreover I thunk it could be helpful in an open source project, if
> somebody want to more easily understand code.

Non-trivial code is better augmented with comments. However, commenting
on the obvious is like meaningless chatting. ;)

> 
> The coding style is a bit indigest
> 
> => I agree with you but that the price to be compliant with
> checkpatch.pl... limitation to 80 characters per line is difficult for me.
> If you saw some better thing to do, don't hesitate ;-) ! I tried to my
> best !

If you overrun the 80-char limit, it is usually a good sign that you
should introduce a function.

Jan

PS: Your mail client does funky marking of cited text. The web standard
is ">".

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to