[PATCH rtems-libbsd v2 2/5] usb_template: Configure template driver only for CDC Ethernet

Ahamed Husni ahamedhusni73 at gmail.com
Sun Aug 1 17:37:07 UTC 2021


Hello Chris,

Sorry for the late reply.

On Thu, Jul 29, 2021 at 5:37 AM Chris Johns <chrisj at rtems.org> wrote:

> On 29/7/21 1:10 am, Ahamed Husni wrote:
> >
> >
> > On Wed, 28 Jul 2021, 17:27 Husni Faiz, <ahamedhusni73 at gmail.com
> > <mailto:ahamedhusni73 at gmail.com>> wrote:
> >
> >     Add the conditional macro to prevent the driver from referencing
> >     the templates which are not imported yet.
> >
> >     Include functions which adds the hw.usb.template sysctl variable.
> >
> >     Signed-off-by: Husni Faiz <ahamedhusni73 at gmail.com
> >     <mailto:ahamedhusni73 at gmail.com>>
> >     ---
> >      freebsd/sys/dev/usb/template/usb_template.c | 4 ++++
> >      freebsd/sys/dev/usb/usb_device.c            | 8 ++++++--
> >      2 files changed, 10 insertions(+), 2 deletions(-)
> >
> >     diff --git a/freebsd/sys/dev/usb/template/usb_template.c
> >     b/freebsd/sys/dev/usb/template/usb_template.c
> >     index 0650da15..76567e85 100644
> >     --- a/freebsd/sys/dev/usb/template/usb_template.c
> >     +++ b/freebsd/sys/dev/usb/template/usb_template.c
> >     @@ -1433,12 +1433,15 @@ usb_temp_setup_by_index(struct usb_device
> *udev,
> >     uint16_t index)
> >             usb_error_t err;
> >
> >             switch (index) {
> >     +#ifndef __rtems__
> >             case USB_TEMP_MSC:
> >                     err = usb_temp_setup(udev, &usb_template_msc);
> >                     break;
> >     +#endif /* __rtems__ */
> >             case USB_TEMP_CDCE:
> >                     err = usb_temp_setup(udev, &usb_template_cdce);
> >                     break;
> >     +#ifndef __rtems__
> >             case USB_TEMP_MTP:
> >                     err = usb_temp_setup(udev, &usb_template_mtp);
> >                     break;
> >     @@ -1469,6 +1472,7 @@ usb_temp_setup_by_index(struct usb_device
> *udev,
> >     uint16_t index)
> >             case USB_TEMP_CDCEEM:
> >                     err = usb_temp_setup(udev, &usb_template_cdceem);
> >                     break;
> >     +#endif /* __rtems__ */
> >             default:
> >                     return (USB_ERR_INVAL);
> >             }
> >     diff --git a/freebsd/sys/dev/usb/usb_device.c
> b/freebsd/sys/dev/usb/usb_device.c
> >     index ee240949..619cae5a 100644
> >     --- a/freebsd/sys/dev/usb/usb_device.c
> >     +++ b/freebsd/sys/dev/usb/usb_device.c
> >     @@ -28,6 +28,10 @@
> >       * SUCH DAMAGE.
> >       */
> >
> >     +#ifdef __rtems__
> >     +#include <rtems/bsd/modules.h>
> >     +#endif
> >     +
> >      #ifdef USB_GLOBAL_INCLUDE_FILE
> >      #include USB_GLOBAL_INCLUDE_FILE
> >      #else
> >     @@ -123,7 +127,7 @@ int usb_template = USB_TEMPLATE;
> >      int    usb_template = -1;
> >      #endif
> >
> >     -#ifndef __rtems__
> >     +#if !defined(__rtems__) ||
> defined(RTEMS_BSD_MODULE_DEV_USB_TEMPLATE)
>
> Is doing this supported by the freebsd-to-rtems.py script?
>
> Like Christian pointed out, similar definitions are used in the libbsd.
I'm not exactly sure how the script works under the hood. I'm thinking the
script uses only the __rtems__
to find differences.
When I run the script in the reverse mode the new changes get applied to
the freebsd-org.
So I assume that works. Isn't it?


> Why is the RTEMS_BSD_MODULE_DEV_USB_TEMPLATE needed?
>

The functions inside the guard seem to be only used by the USB Template
driver.
Since I added that.


>      SYSCTL_PROC(_hw_usb, OID_AUTO, template,
> >          CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
> >          NULL, 0, sysctl_hw_usb_template,
> >     @@ -255,7 +259,7 @@ sysctl_hw_usb_template(SYSCTL_HANDLER_ARGS)
> >
> >             return (0);
> >      }
> >     -#endif /* __rtems__ */
> >     +#endif /* !__rtmes__ || RTEMS_BSD_MODULE_DEV_USB_TEMPLATE */
> >
> > Ah, a typo here (rtmes). Should I send a new set of patches?
>
> Yes it needs to be correct for the script to work but I would check the
> freebsd-to-rtems.py script works with these guard comments.
>
> Does the script use the comments?
The script works with this guard (and with the typo).

Best regards,
Husni.

Chris
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210801/5d02eea8/attachment.html>


More information about the devel mailing list