From: Sebastian Huber <sebastian.hu...@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 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel