[PATCH rtems-libbsd 05/14] Add pic_if.m

Christian Mauderer christian.mauderer at embedded-brains.de
Tue Jan 23 09:09:06 UTC 2024


From: Sebastian Huber <sebastian.huber at embedded-brains.de>

---
 Makefile.todo                             |  10 ++
 rtemsbsd/include/rtems/bsd/local/pic_if.h | 133 ++++++++++++++++++++++
 rtemsbsd/local/pic_if.c                   |  69 +++++++++++
 3 files changed, 212 insertions(+)
 create mode 100644 rtemsbsd/include/rtems/bsd/local/pic_if.h
 create mode 100644 rtemsbsd/local/pic_if.c

diff --git a/Makefile.todo b/Makefile.todo
index 36951c55..111beb07 100644
--- a/Makefile.todo
+++ b/Makefile.todo
@@ -34,6 +34,8 @@ GENERATED += $(LOCAL_INC)/pci_if.h
 GENERATED += $(LOCAL_SRC)/pci_if.c
 GENERATED += $(LOCAL_INC)/pcib_if.h
 GENERATED += $(LOCAL_SRC)/pcib_if.c
+GENERATED += $(LOCAL_INC)/pic_if.h
+GENERATED += $(LOCAL_SRC)/pic_if.c
 GENERATED += $(LOCAL_INC)/mmcbr_if.h
 GENERATED += $(LOCAL_SRC)/mmcbr_if.c
 GENERATED += $(LOCAL_INC)/mmcbus_if.h
@@ -166,6 +168,14 @@ $(LOCAL_SRC)/pcib_if.c: $(FREEBSD_SRC)/sys/dev/pci/pcib_if.m
 	awk -f $(TOOLS)/makeobjops.awk $< -c
 	mv pcib_if.c $@
 
+$(LOCAL_INC)/pic_if.h: $(FREEBSD_SRC)/sys/powerpc/powerpc/pic_if.m
+	awk -f $(TOOLS)/makeobjops.awk $< -h
+	mv pic_if.h $@
+
+$(LOCAL_SRC)/pic_if.c: $(FREEBSD_SRC)/sys/powerpc/powerpc/pic_if.m
+	awk -f $(TOOLS)/makeobjops.awk $< -c
+	mv pic_if.c $@
+
 $(LOCAL_INC)/mmcbus_if.h: $(FREEBSD_SRC)/sys/dev/mmc/mmcbus_if.m
 	awk -f $(TOOLS)/makeobjops.awk $< -h
 	mv mmcbus_if.h $@
diff --git a/rtemsbsd/include/rtems/bsd/local/pic_if.h b/rtemsbsd/include/rtems/bsd/local/pic_if.h
new file mode 100644
index 00000000..a903a25d
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/pic_if.h
@@ -0,0 +1,133 @@
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ *   freebsd-org/sys/powerpc/powerpc/pic_if.m
+ * with
+ *   makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _pic_if_h_
+#define _pic_if_h_
+
+/** @brief Unique descriptor for the PIC_BIND() method */
+extern struct kobjop_desc pic_bind_desc;
+/** @brief A function implementing the PIC_BIND() method */
+typedef void pic_bind_t(device_t dev, u_int irq, cpuset_t cpumask, void **priv);
+
+static __inline void PIC_BIND(device_t dev, u_int irq, cpuset_t cpumask,
+                              void **priv)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_bind);
+	((pic_bind_t *) _m)(dev, irq, cpumask, priv);
+}
+
+/** @brief Unique descriptor for the PIC_TRANSLATE_CODE() method */
+extern struct kobjop_desc pic_translate_code_desc;
+/** @brief A function implementing the PIC_TRANSLATE_CODE() method */
+typedef void pic_translate_code_t(device_t dev, u_int irq, int code,
+                                  enum intr_trigger *trig,
+                                  enum intr_polarity *pol);
+
+static __inline void PIC_TRANSLATE_CODE(device_t dev, u_int irq, int code,
+                                        enum intr_trigger *trig,
+                                        enum intr_polarity *pol)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_translate_code);
+	((pic_translate_code_t *) _m)(dev, irq, code, trig, pol);
+}
+
+/** @brief Unique descriptor for the PIC_CONFIG() method */
+extern struct kobjop_desc pic_config_desc;
+/** @brief A function implementing the PIC_CONFIG() method */
+typedef void pic_config_t(device_t dev, u_int irq, enum intr_trigger trig,
+                          enum intr_polarity pol);
+
+static __inline void PIC_CONFIG(device_t dev, u_int irq, enum intr_trigger trig,
+                                enum intr_polarity pol)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_config);
+	((pic_config_t *) _m)(dev, irq, trig, pol);
+}
+
+/** @brief Unique descriptor for the PIC_DISPATCH() method */
+extern struct kobjop_desc pic_dispatch_desc;
+/** @brief A function implementing the PIC_DISPATCH() method */
+typedef void pic_dispatch_t(device_t dev, struct trapframe *tf);
+
+static __inline void PIC_DISPATCH(device_t dev, struct trapframe *tf)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_dispatch);
+	((pic_dispatch_t *) _m)(dev, tf);
+}
+
+/** @brief Unique descriptor for the PIC_ENABLE() method */
+extern struct kobjop_desc pic_enable_desc;
+/** @brief A function implementing the PIC_ENABLE() method */
+typedef void pic_enable_t(device_t dev, u_int irq, u_int vector, void **priv);
+
+static __inline void PIC_ENABLE(device_t dev, u_int irq, u_int vector,
+                                void **priv)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_enable);
+	((pic_enable_t *) _m)(dev, irq, vector, priv);
+}
+
+/** @brief Unique descriptor for the PIC_EOI() method */
+extern struct kobjop_desc pic_eoi_desc;
+/** @brief A function implementing the PIC_EOI() method */
+typedef void pic_eoi_t(device_t dev, u_int irq, void *priv);
+
+static __inline void PIC_EOI(device_t dev, u_int irq, void *priv)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_eoi);
+	((pic_eoi_t *) _m)(dev, irq, priv);
+}
+
+/** @brief Unique descriptor for the PIC_IPI() method */
+extern struct kobjop_desc pic_ipi_desc;
+/** @brief A function implementing the PIC_IPI() method */
+typedef void pic_ipi_t(device_t dev, u_int cpu);
+
+static __inline void PIC_IPI(device_t dev, u_int cpu)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_ipi);
+	((pic_ipi_t *) _m)(dev, cpu);
+}
+
+/** @brief Unique descriptor for the PIC_MASK() method */
+extern struct kobjop_desc pic_mask_desc;
+/** @brief A function implementing the PIC_MASK() method */
+typedef void pic_mask_t(device_t dev, u_int irq, void *priv);
+
+static __inline void PIC_MASK(device_t dev, u_int irq, void *priv)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_mask);
+	((pic_mask_t *) _m)(dev, irq, priv);
+}
+
+/** @brief Unique descriptor for the PIC_UNMASK() method */
+extern struct kobjop_desc pic_unmask_desc;
+/** @brief A function implementing the PIC_UNMASK() method */
+typedef void pic_unmask_t(device_t dev, u_int irq, void *priv);
+
+static __inline void PIC_UNMASK(device_t dev, u_int irq, void *priv)
+{
+	kobjop_t _m;
+	KOBJOPLOOKUP(((kobj_t)dev)->ops,pic_unmask);
+	((pic_unmask_t *) _m)(dev, irq, priv);
+}
+
+#endif /* _pic_if_h_ */
diff --git a/rtemsbsd/local/pic_if.c b/rtemsbsd/local/pic_if.c
new file mode 100644
index 00000000..6fa600bb
--- /dev/null
+++ b/rtemsbsd/local/pic_if.c
@@ -0,0 +1,69 @@
+#include <machine/rtems-bsd-kernel-space.h>
+
+/*
+ * This file is produced automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ *   freebsd-org/sys/powerpc/powerpc/pic_if.m
+ * with
+ *   makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/kernel.h>
+#include <sys/kobj.h>
+#include <sys/bus.h>
+#include <sys/cpuset.h>
+#include <machine/frame.h>
+#include <rtems/bsd/local/pic_if.h>
+
+
+static pic_translate_code_t pic_translate_code_default;
+
+static void pic_translate_code_default(device_t dev, u_int irq,
+    int code, enum intr_trigger *trig, enum intr_polarity *pol)
+{
+	*trig = INTR_TRIGGER_CONFORM;
+	*pol = INTR_POLARITY_CONFORM;
+}
+
+struct kobjop_desc pic_bind_desc = {
+	0, { &pic_bind_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_translate_code_desc = {
+	0, { &pic_translate_code_desc, (kobjop_t)pic_translate_code_default }
+};
+
+struct kobjop_desc pic_config_desc = {
+	0, { &pic_config_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_dispatch_desc = {
+	0, { &pic_dispatch_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_enable_desc = {
+	0, { &pic_enable_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_eoi_desc = {
+	0, { &pic_eoi_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_ipi_desc = {
+	0, { &pic_ipi_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_mask_desc = {
+	0, { &pic_mask_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc pic_unmask_desc = {
+	0, { &pic_unmask_desc, (kobjop_t)kobj_error_method }
+};
+
-- 
2.35.3



More information about the devel mailing list