xref: /freebsd/usr.sbin/bhyve/console.h (revision b3e7694832e81d7a904a10f525f8797b753bf0d3)
12cf9911fSPeter Grehan /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3ce80faa4SMarcelo Araujo  *
42cf9911fSPeter Grehan  * Copyright (c) 2015 Tycho Nightingale <tycho.nightingale@pluribusnetworks.com>
52cf9911fSPeter Grehan  * All rights reserved.
62cf9911fSPeter Grehan  *
72cf9911fSPeter Grehan  * Redistribution and use in source and binary forms, with or without
82cf9911fSPeter Grehan  * modification, are permitted provided that the following conditions
92cf9911fSPeter Grehan  * are met:
102cf9911fSPeter Grehan  * 1. Redistributions of source code must retain the above copyright
112cf9911fSPeter Grehan  *    notice, this list of conditions and the following disclaimer.
122cf9911fSPeter Grehan  * 2. Redistributions in binary form must reproduce the above copyright
132cf9911fSPeter Grehan  *    notice, this list of conditions and the following disclaimer in the
142cf9911fSPeter Grehan  *    documentation and/or other materials provided with the distribution.
152cf9911fSPeter Grehan  *
162cf9911fSPeter Grehan  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
172cf9911fSPeter Grehan  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
182cf9911fSPeter Grehan  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
192cf9911fSPeter Grehan  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
202cf9911fSPeter Grehan  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
212cf9911fSPeter Grehan  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
222cf9911fSPeter Grehan  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
232cf9911fSPeter Grehan  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
242cf9911fSPeter Grehan  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
252cf9911fSPeter Grehan  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
262cf9911fSPeter Grehan  * SUCH DAMAGE.
272cf9911fSPeter Grehan  */
282cf9911fSPeter Grehan 
292cf9911fSPeter Grehan #ifndef _CONSOLE_H_
302cf9911fSPeter Grehan #define	_CONSOLE_H_
312cf9911fSPeter Grehan 
322cf9911fSPeter Grehan struct bhyvegc;
332cf9911fSPeter Grehan 
342cf9911fSPeter Grehan typedef void (*fb_render_func_t)(struct bhyvegc *gc, void *arg);
35b563ff5dSMichael Reifenberger typedef void (*kbd_event_func_t)(int down, uint32_t keysym, uint32_t keycode, void *arg);
362cf9911fSPeter Grehan typedef void (*ptr_event_func_t)(uint8_t mask, int x, int y, void *arg);
372cf9911fSPeter Grehan 
382cf9911fSPeter Grehan void console_init(int w, int h, void *fbaddr);
392cf9911fSPeter Grehan 
402cf9911fSPeter Grehan void console_set_fbaddr(void *fbaddr);
412cf9911fSPeter Grehan 
422cf9911fSPeter Grehan struct bhyvegc_image *console_get_image(void);
432cf9911fSPeter Grehan 
442cf9911fSPeter Grehan void console_fb_register(fb_render_func_t render_cb, void *arg);
452cf9911fSPeter Grehan void console_refresh(void);
462cf9911fSPeter Grehan 
472cf9911fSPeter Grehan void console_kbd_register(kbd_event_func_t event_cb, void *arg, int pri);
48b563ff5dSMichael Reifenberger void console_key_event(int down, uint32_t keysym, uint32_t keycode);
492cf9911fSPeter Grehan 
502cf9911fSPeter Grehan void console_ptr_register(ptr_event_func_t event_cb, void *arg, int pri);
512cf9911fSPeter Grehan void console_ptr_event(uint8_t button, int x, int y);
522cf9911fSPeter Grehan 
532cf9911fSPeter Grehan #endif /* _CONSOLE_H_ */
54