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

Chris Johns chrisj at rtems.org
Thu Jul 29 00:07:07 UTC 2021


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?

Why is the RTEMS_BSD_MODULE_DEV_USB_TEMPLATE needed?

>      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.

Chris


More information about the devel mailing list