1 /*- 2 * $Id: $ 3 */ 4 5 #ifndef _DEV_FB_SPLASHREG_H_ 6 #define _DEV_FB_SPLASHREG_H_ 7 8 #define SPLASH_IMAGE "splash_image_data" 9 10 struct video_adapter; 11 12 typedef struct splash_decoder { 13 char *name; 14 int (*init)(struct video_adapter *adp, void *data, 15 size_t size); 16 int (*term)(struct video_adapter *adp); 17 int (*splash)(struct video_adapter *adp, int on); 18 } splash_decoder_t; 19 20 #define SPLASH_DECODER(name, sw) \ 21 static int name##_modevent(module_t mod, int type, void *data) \ 22 { \ 23 switch ((modeventtype_t)type) { \ 24 case MOD_LOAD: \ 25 return splash_register(&sw); \ 26 case MOD_UNLOAD: \ 27 return splash_unregister(&sw); \ 28 } \ 29 return 0; \ 30 } \ 31 static moduledata_t name##_mod = { \ 32 #name, \ 33 name##_modevent, \ 34 NULL \ 35 }; \ 36 DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_ANY) 37 38 /* entry point for the splash image decoder */ 39 int splash_register(splash_decoder_t *decoder); 40 int splash_unregister(splash_decoder_t *decoder); 41 42 /* entry points for the console driver */ 43 int splash_init(video_adapter_t *adp, int (*callback)(int)); 44 int splash_term(video_adapter_t *adp); 45 int splash(video_adapter_t *adp, int on); 46 47 /* event types for the callback function */ 48 #define SPLASH_INIT 0 49 #define SPLASH_TERM 1 50 51 #endif /* _DEV_FB_SPLASHREG_H_ */ 52