<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">On Wed, Jul 29, 2020 at 9:29 PM Gedare Bloom <<a href="mailto:gedare@rtems.org">gedare@rtems.org</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Jul 15, 2020 at 12:32 AM G S Niteesh Babu <<a href="mailto:niteesh.gs@gmail.com" target="_blank">niteesh.gs@gmail.com</a>> wrote:<br>
><br>
> This file is the RTEMS implementation of ofw_if.h in FreeBSD. The<br>
> ofw_if.h in FreeBSD is an autogenerated header file that maps the<br>
> OF_function calls to their respective implementation. But in RTEMS<br>
> this file maps the OF_functions directly to their FDT implementation.<br>
> ---<br>
>  cpukit/libfreebsd/freebsd/dev/ofw/ofw_if.h | 62 ++++++++++++++++++++++<br>
>  1 file changed, 62 insertions(+)<br>
>  create mode 100644 cpukit/libfreebsd/freebsd/dev/ofw/ofw_if.h<br>
<br>
You may have mentioned this elsewhere, but if this header file needs<br>
to be installed it should go under the include/ tree.<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">This header is not intended to be installed.</div></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">
><br>
> diff --git a/cpukit/libfreebsd/freebsd/dev/ofw/ofw_if.h b/cpukit/libfreebsd/freebsd/dev/ofw/ofw_if.h<br>
> new file mode 100644<br>
> index 0000000000..f66c02884e<br>
> --- /dev/null<br>
> +++ b/cpukit/libfreebsd/freebsd/dev/ofw/ofw_if.h<br>
> @@ -0,0 +1,62 @@<br>
> +/* SPDX-License-Identifier: BSD-2-Clause<br>
> +<br>
> + *<br>
> + * @file<br>
> + *<br>
> + * @ingroup LIBFREEBSD<br>
These usually aren't all caps. They're not consistent, but LibFreeBSD<br>
makes more sense to me.<br></blockquote><div><div class="gmail_default" style="font-size:small">OK. I'll change this to LibFreeBSD everywhere.</div></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">
> + *<br>
> + * @brief Declaration of OFW functions.<br>
> + */<br>
> +<br>
> +/*<br>
> + * Copyright (C) <2020> Niteesh Babu <<a href="mailto:niteesh.gs@gmail.com" target="_blank">niteesh.gs@gmail.com</a>><br>
> + *<br>
> + * Redistribution and use in source and binary forms, with or without<br>
> + * modification, are permitted provided that the following conditions<br>
> + * are met:<br>
> + * 1. Redistributions of source code must retain the above copyright<br>
> + *    notice, this list of conditions and the following disclaimer.<br>
> + * 2. Redistributions in binary form must reproduce the above copyright<br>
> + *    notice, this list of conditions and the following disclaimer in the<br>
> + *    documentation and/or other materials provided with the distribution.<br>
> + *<br>
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"<br>
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE<br>
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE<br>
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE<br>
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br>
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br>
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br>
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN<br>
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)<br>
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br>
> + * POSSIBILITY OF SUCH DAMAGE.<br>
> + */<br>
> +<br>
> +#ifndef _LIBFREEBSD_OFW_IF_H<br>
> +#define _LIBFREEBSD_OFW_IF_H<br>
> +<br>
> +#include <dev/ofw/openfirm.h><br>
<br>
This means that header is installed. Please put the headers under the<br>
include/dev tree instead.<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">Why does this mean the header is installed?</div><div class="gmail_default" style="font-size:small">In FreeBSD, these two files are present in the same directory. The openfirm.h</div><div class="gmail_default" style="font-size:small">is what provides the OFW API and ofw_if.h is responsible for calling the correct</div><div class="gmail_default" style="font-size:small">implementation of OFW using KOBJs in case of RTEMS this is hard-wired to the</div><div class="gmail_default" style="font-size:small">FDT implementation in libBSD as well as RTEMS.</div><div class="gmail_default" style="font-size:small">Previously, openfirm.h and ofw_if.h were in the same directory but since I had</div><div class="gmail_default" style="font-size:small">to install openfirm.h I moved it cpukit/include.</div><div class="gmail_default" style="font-size:small">And if this helps, the include is present only to provide a definition for phandle_t.<br></div></div><div class="gmail_default" style="font-size:small"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> +<br>
> +typedef void*  ofw_t;<br>
> +<br>
> +int OFW_INIT(ofw_t ofw_obj, void *cookie);<br>
> +phandle_t OFW_PEER(ofw_t ofw_obj, phandle_t node);<br>
> +phandle_t OFW_CHILD(ofw_t ofw_obj, phandle_t node);<br>
> +phandle_t OFW_PARENT(ofw_t ofw_obj, phandle_t node);<br>
> +phandle_t OFW_INSTANCE_TO_PACKAGE(ofw_t ofw_obj, ihandle_t instance);<br>
> +ssize_t OFW_GETPROPLEN(ofw_t ofw_obj, phandle_t package, const char *propname);<br>
> +ssize_t OFW_GETPROP(ofw_t ofw_obj, phandle_t package, const char *propname,<br>
> +           void *buf, size_t buflen);<br>
> +int OFW_NEXTPROP(ofw_t ofw_obj, phandle_t package, const char *prev, char *buf,<br>
> +           size_t size);<br>
> +int OFW_SETPROP(ofw_t ofw_obj, phandle_t package, const char *propname,<br>
> +           const void *buf, size_t len);<br>
> +ssize_t OFW_CANON(ofw_t ofw_obj, const char *device, char *buf, size_t len);<br>
> +phandle_t OFW_FINDDEVICE(ofw_t ofw_obj, const char *device);<br>
> +ssize_t OFW_INSTANCE_TO_PATH(ofw_t ofw_obj, ihandle_t instance, char *buf,<br>
> +           size_t len);<br>
> +ssize_t OFW_PACKAGE_TO_PATH(ofw_t ofw_obj, phandle_t package, char *buf,<br>
> +           size_t len);<br>
> +<br>
<br>
Doxygen?<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">I don't think this is the right place for Doxygen since as mentioned above this</div><div class="gmail_default" style="font-size:small">is not exposed. A better place would be openfirm.h.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> +#endif /* _LIBFREEBSD_OFW_IF_H */<br>
> --<br>
> 2.17.1<br>
><br>
</blockquote></div></div>