]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/arm_drivers/lcd/include/lcd.h
a63668d9e82556db29ddd1633f3f277679e918d6
[l4.git] / l4 / pkg / arm_drivers / lcd / include / lcd.h
1 #ifndef __ARM_DRIVERS__LCD__INCLUDE__LCD_H__
2 #define __ARM_DRIVERS__LCD__INCLUDE__LCD_H__
3
4 #include <l4/sys/types.h>
5 #include <l4/re/c/video/view.h>
6
7 EXTERN_C_BEGIN
8
9 struct arm_lcd_ops {
10   int          (*probe)(const char *configstr);
11   void *       (*get_fb)(void);
12   unsigned int (*get_video_mem_size)(void);
13   const char * (*get_info)(void);
14
15   int          (*get_fbinfo)(l4re_video_view_info_t *vinfo);
16
17   void         (*enable)(void);
18   void         (*disable)(void);
19 };
20
21 struct arm_lcd_ops *arm_lcd_probe(const char *configstr);
22
23 void arm_lcd_register_driver(struct arm_lcd_ops *);
24
25 /* Callable once per file (should be enough?) */
26 #define arm_lcd_register(ops)                                        \
27     static void __attribute__((constructor)) __register_ops(void)    \
28     { arm_lcd_register_driver(ops); }
29
30 EXTERN_C_END
31
32 #endif /* ! __ARM_DRIVERS__LCD__INCLUDE__LCD_H__ */