--- freebsd/sys/dev/fb/fbd.c | 8 +++++ libbsd.py | 4 +++ rtemsbsd/include/bsp/nexus-devices.h | 3 ++ .../machine/rtems-bsd-kernel-namespace.h | 35 +++++++++++++++++++ rtemsbsd/include/rtems/bsd/local/opt_fb.h | 0 5 files changed, 50 insertions(+) create mode 100644 rtemsbsd/include/rtems/bsd/local/opt_fb.h
diff --git a/freebsd/sys/dev/fb/fbd.c b/freebsd/sys/dev/fb/fbd.c index 60ce4bc3..27b0ff6a 100644 --- a/freebsd/sys/dev/fb/fbd.c +++ b/freebsd/sys/dev/fb/fbd.c @@ -82,7 +82,9 @@ static d_close_t fb_close; static d_read_t fb_read; static d_write_t fb_write; static d_ioctl_t fb_ioctl; +#ifndef __rtems__ static d_mmap_t fb_mmap; +#endif /* __rtems__ */ static struct cdevsw fb_cdevsw = { .d_version = D_VERSION, @@ -92,7 +94,9 @@ static struct cdevsw fb_cdevsw = { .d_read = fb_read, .d_write = fb_write, .d_ioctl = fb_ioctl, +#ifndef __rtems__ .d_mmap = fb_mmap, +#endif /* __rtems__ */ .d_name = "fb", }; @@ -257,11 +261,13 @@ fbd_register(struct fb_info* info) err = fb_init(entry, framebuffer_dev_unit++); if (err) return (err); +#ifndef __rtems__ if (first) { err = vt_fb_attach(info); if (err) return (err); } +#endif /* __rtems__ */ return (0); } @@ -274,8 +280,10 @@ fbd_unregister(struct fb_info* info) LIST_FOREACH_SAFE(entry, &fb_list_head, fb_list, tmp) { if (entry->fb_info == info) { LIST_REMOVE(entry, fb_list); +#ifndef __rtems__ if (LIST_EMPTY(&fb_list_head)) vt_fb_detach(info); +#endif /* __rtems__ */ free(entry, M_DEVBUF); return (0); } diff --git a/libbsd.py b/libbsd.py index 4808105b..71eb3577 100644 --- a/libbsd.py +++ b/libbsd.py @@ -807,6 +807,8 @@ class display(builder.Module): 'sys/sys/fbio.h', 'sys/sys/consio.h', 'sys/sys/terminal.h', + 'sys/dev/vt/hw/fb/vt_fb.h', + 'sys/dev/vt/colors/vt_termcolors.h', ] ) self.addKernelSpaceSourceFiles( @@ -821,6 +823,8 @@ class display(builder.Module): 'sys/arm/ti/am335x/am335x_lcd.c', 'sys/arm/ti/am335x/am335x_pwmss.c', 'sys/arm/ti/am335x/am335x_ecap.c', + 'sys/dev/fb/fb.c', + 'sys/dev/fb/fbd.c', ], mm.generator['source']() ) diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h index 2c718295..313c40d4 100644 --- a/rtemsbsd/include/bsp/nexus-devices.h +++ b/rtemsbsd/include/bsp/nexus-devices.h @@ -68,6 +68,9 @@ SYSINIT_DRIVER_REFERENCE(ofw_iicbus, rtems_i2c); SYSINIT_DRIVER_REFERENCE(iic, iicbus); SYSINIT_DRIVER_REFERENCE(tda, iicbus); SYSINIT_DRIVER_REFERENCE(iicbus, rtems_i2c); +SYSINIT_DRIVER_REFERENCE(fbd, fb); +SYSINIT_DRIVER_REFERENCE(fb, fb_mod); +SYSINIT_MODULE_REFERENCE(fb_mod); #ifdef RTEMS_BSD_MODULE_NET80211 SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub); SYSINIT_MODULE_REFERENCE(wlan_ratectl_none); diff --git a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h index 3951da79..d796d3d1 100644 --- a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h +++ b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h @@ -1266,6 +1266,16 @@ #define eventhandler_find_list _bsd_eventhandler_find_list #define eventhandler_prune_list _bsd_eventhandler_prune_list #define eventhandler_register _bsd_eventhandler_register +#define fb_commonioctl _bsd_fb_commonioctl +#define fbd_devclass _bsd_fbd_devclass +#define fbd_driver _bsd_fbd_driver +#define fbd_list _bsd_fbd_list +#define fbd_register _bsd_fbd_register +#define fb_dump_adp_info _bsd_fb_dump_adp_info +#define fb_dump_mode_info _bsd_fb_dump_mode_info +#define fbd_unregister _bsd_fbd_unregister +#define fb_list_head _bsd_fb_list_head +#define fb_type _bsd_fb_type #define fdt_addrsize_cells _bsd_fdt_addrsize_cells #define fdt_data_get _bsd_fdt_data_get #define fdt_data_to_res _bsd_fdt_data_to_res @@ -5515,8 +5525,18 @@ #define vht80_chan_ranges _bsd_vht80_chan_ranges #define vesagtf_mode _bsd_vesagtf_mode #define vesagtf_mode_params _bsd_vesagtf_mode_params +#define vid_allocate _bsd_vid_allocate +#define vid_configure _bsd_vid_configure #define videomode_count _bsd_videomode_count #define videomode_list _bsd_videomode_list +#define vid_find_adapter _bsd_vid_find_adapter +#define vid_get_adapter _bsd_vid_get_adapter +#define vid_get_switch _bsd_vid_get_switch +#define vid_init_struct _bsd_vid_init_struct +#define vid_register _bsd_vid_register +#define vid_release _bsd_vid_release +#define vidsw _bsd_vidsw +#define vid_unregister _bsd_vid_unregister #define vlan_cookie_p _bsd_vlan_cookie_p #define vlan_devat_p _bsd_vlan_devat_p #define vlan_input_p _bsd_vlan_input_p @@ -5533,6 +5553,21 @@ #define vsnprintf _bsd_vsnprintf #define vsnrprintf _bsd_vsnrprintf #define vsprintf _bsd_vsprintf +#define vt_fb_attach _bsd_vt_fb_attach +#define vt_fb_bitblt_bitmap _bsd_vt_fb_bitblt_bitmap +#define vt_fb_bitblt_text _bsd_vt_fb_bitblt_text +#define vt_fb_blank _bsd_vt_fb_blank +#define vt_fb_detach _bsd_vt_fb_detach +#define vt_fb_drawrect _bsd_vt_fb_drawrect +#define vt_fb_fini _bsd_vt_fb_fini +#define vt_fb_init _bsd_vt_fb_init +#define vt_fb_invalidate_text _bsd_vt_fb_invalidate_text +#define vt_fb_ioctl _bsd_vt_fb_ioctl +#define vt_fb_mmap _bsd_vt_fb_mmap +#define vt_fb_postswitch _bsd_vt_fb_postswitch +#define vt_fb_resume _bsd_vt_fb_resume +#define vt_fb_setpixel _bsd_vt_fb_setpixel +#define vt_fb_suspend _bsd_vt_fb_suspend #define wakeup _bsd_wakeup #define wakeup_one _bsd_wakeup_one #define window_deflate _bsd_window_deflate diff --git a/rtemsbsd/include/rtems/bsd/local/opt_fb.h b/rtemsbsd/include/rtems/bsd/local/opt_fb.h new file mode 100644 index 00000000..e69de29b -- 2.20.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel