<div dir="ltr"><div dir="ltr">Hello Chris,</div><div dir="ltr"><br></div><div>Sorry for the late reply.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 29, 2021 at 5:37 AM Chris Johns <<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 29/7/21 1:10 am, Ahamed Husni wrote:<br>
> <br>
> <br>
> On Wed, 28 Jul 2021, 17:27 Husni Faiz, <<a href="mailto:ahamedhusni73@gmail.com" target="_blank">ahamedhusni73@gmail.com</a><br>
> <mailto:<a href="mailto:ahamedhusni73@gmail.com" target="_blank">ahamedhusni73@gmail.com</a>>> wrote:<br>
> <br>
>     Add the conditional macro to prevent the driver from referencing<br>
>     the templates which are not imported yet.<br>
> <br>
>     Include functions which adds the hw.usb.template sysctl variable.<br>
> <br>
>     Signed-off-by: Husni Faiz <<a href="mailto:ahamedhusni73@gmail.com" target="_blank">ahamedhusni73@gmail.com</a><br>
>     <mailto:<a href="mailto:ahamedhusni73@gmail.com" target="_blank">ahamedhusni73@gmail.com</a>>><br>
>     ---<br>
>      freebsd/sys/dev/usb/template/usb_template.c | 4 ++++<br>
>      freebsd/sys/dev/usb/usb_device.c            | 8 ++++++--<br>
>      2 files changed, 10 insertions(+), 2 deletions(-)<br>
> <br>
>     diff --git a/freebsd/sys/dev/usb/template/usb_template.c<br>
>     b/freebsd/sys/dev/usb/template/usb_template.c<br>
>     index 0650da15..76567e85 100644<br>
>     --- a/freebsd/sys/dev/usb/template/usb_template.c<br>
>     +++ b/freebsd/sys/dev/usb/template/usb_template.c<br>
>     @@ -1433,12 +1433,15 @@ usb_temp_setup_by_index(struct usb_device *udev,<br>
>     uint16_t index)<br>
>             usb_error_t err;<br>
> <br>
>             switch (index) {<br>
>     +#ifndef __rtems__<br>
>             case USB_TEMP_MSC:<br>
>                     err = usb_temp_setup(udev, &usb_template_msc);<br>
>                     break;<br>
>     +#endif /* __rtems__ */<br>
>             case USB_TEMP_CDCE:<br>
>                     err = usb_temp_setup(udev, &usb_template_cdce);<br>
>                     break;<br>
>     +#ifndef __rtems__<br>
>             case USB_TEMP_MTP:<br>
>                     err = usb_temp_setup(udev, &usb_template_mtp);<br>
>                     break;<br>
>     @@ -1469,6 +1472,7 @@ usb_temp_setup_by_index(struct usb_device *udev,<br>
>     uint16_t index)<br>
>             case USB_TEMP_CDCEEM:<br>
>                     err = usb_temp_setup(udev, &usb_template_cdceem);<br>
>                     break;<br>
>     +#endif /* __rtems__ */<br>
>             default:<br>
>                     return (USB_ERR_INVAL);<br>
>             }<br>
>     diff --git a/freebsd/sys/dev/usb/usb_device.c b/freebsd/sys/dev/usb/usb_device.c<br>
>     index ee240949..619cae5a 100644<br>
>     --- a/freebsd/sys/dev/usb/usb_device.c<br>
>     +++ b/freebsd/sys/dev/usb/usb_device.c<br>
>     @@ -28,6 +28,10 @@<br>
>       * SUCH DAMAGE.<br>
>       */<br>
> <br>
>     +#ifdef __rtems__<br>
>     +#include <rtems/bsd/modules.h><br>
>     +#endif<br>
>     +<br>
>      #ifdef USB_GLOBAL_INCLUDE_FILE<br>
>      #include USB_GLOBAL_INCLUDE_FILE<br>
>      #else<br>
>     @@ -123,7 +127,7 @@ int usb_template = USB_TEMPLATE;<br>
>      int    usb_template = -1;<br>
>      #endif<br>
> <br>
>     -#ifndef __rtems__<br>
>     +#if !defined(__rtems__) || defined(RTEMS_BSD_MODULE_DEV_USB_TEMPLATE)<br>
<br>
Is doing this supported by the freebsd-to-rtems.py script?<br>
<br></blockquote><div>Like Christian pointed out, similar definitions are used in the libbsd.<br></div><div>I'm not exactly sure how the script works under the hood. I'm thinking the script uses only the __rtems__</div><div>to find differences.<br></div><div>When I run the script in the reverse mode the new changes get applied to the freebsd-org.</div><div>So I assume that works. Isn't it?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Why is the RTEMS_BSD_MODULE_DEV_USB_TEMPLATE needed?<br>
 </blockquote><div>The functions inside the guard seem to be only used by the USB Template driver.</div><div>Since I added that. <br></div><div><br> </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
>      SYSCTL_PROC(_hw_usb, OID_AUTO, template,<br>
>          CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,<br>
>          NULL, 0, sysctl_hw_usb_template,<br>
>     @@ -255,7 +259,7 @@ sysctl_hw_usb_template(SYSCTL_HANDLER_ARGS)<br>
> <br>
>             return (0);<br>
>      }<br>
>     -#endif /* __rtems__ */<br>
>     +#endif /* !__rtmes__ || RTEMS_BSD_MODULE_DEV_USB_TEMPLATE */<br>
> <br>
> Ah, a typo here (rtmes). Should I send a new set of patches?<br>
<br>
Yes it needs to be correct for the script to work but I would check the<br>
freebsd-to-rtems.py script works with these guard comments.<br>
<br></blockquote><div>Does the script use the comments?<br></div><div>The script works with this guard (and with the typo).</div><div><br></div><div>Best regards,</div><div>Husni.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Chris<br>
</blockquote></div></div>