diff options
| author | Marcel Moolenaar <marcel@FreeBSD.org> | 2011-02-13 19:25:48 +0000 |
|---|---|---|
| committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2011-02-13 19:25:48 +0000 |
| commit | 01f7b6dad306ef87e28e5fb8a2a3f9c7224e9bdf (patch) | |
| tree | 8b315c48daa0d84244327319d24d6977cd9aee08 /sys/dev/fb | |
| parent | efdb11cd581e23fc484899da67c775ac769b649d (diff) | |
Notes
Diffstat (limited to 'sys/dev/fb')
| -rw-r--r-- | sys/dev/fb/splash.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/sys/dev/fb/splash.c b/sys/dev/fb/splash.c index ec25d1cf03a40..ac005887efdb5 100644 --- a/sys/dev/fb/splash.c +++ b/sys/dev/fb/splash.c @@ -59,26 +59,28 @@ static void *splash_arg; static int splash_find_data(splash_decoder_t *decoder) { - caddr_t image_module; - caddr_t p; + caddr_t image_module; + void *ptr; + size_t sz; if (decoder->data_type == NULL) - return 0; + return (0); + image_module = preload_search_by_type(decoder->data_type); if (image_module == NULL) - return ENOENT; - p = preload_search_info(image_module, MODINFO_ADDR); - if (p == NULL) - return ENOENT; - decoder->data = *(void **)p; - p = preload_search_info(image_module, MODINFO_SIZE); - if (p == NULL) - return ENOENT; - decoder->data_size = *(size_t *)p; + return (ENOENT); + + ptr = preload_fetch_addr(image_module); + sz = preload_fetch_size(image_module); + if (ptr == NULL || sz == 0) + return (ENOENT); + if (bootverbose) - printf("splash: image@%p, size:%lu\n", - (void *)decoder->data, (long)decoder->data_size); - return 0; + printf("splash: image@%p, size:%zu\n", ptr, sz); + + decoder->data = ptr; + decoder->data_size = sz; + return (0); } static int |
