Fix important comment in kernel/arch/sparc64/src/proc/scheduler.c.
[helenos.git] / uspace / fb / main.c
blob686ada469727f0dac9eaa9b637268c202692c881
1 /*
2 * Copyright (C) 2006 Ondrej Palkovsky
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #include <ipc/ipc.h>
30 #include <ipc/services.h>
31 #include <sysinfo.h>
32 #include <async.h>
33 #include <as.h>
34 #include <align.h>
35 #include <errno.h>
37 #include "fb.h"
38 #include "sysio.h"
39 #include "ega.h"
40 #include "main.h"
42 void receive_comm_area(ipc_callid_t callid, ipc_call_t *call, void **area)
44 void *dest;
46 dest = as_get_mappable_page(IPC_GET_ARG2(*call),
47 PAGE_COLOR(IPC_GET_ARG1(*call)));
48 if (ipc_answer_fast(callid, 0, (sysarg_t) dest, 0) == 0) {
49 if (*area)
50 as_area_destroy(*area);
51 *area = dest;
55 int main(int argc, char *argv[])
57 ipcarg_t phonead;
58 int initialized = 0;
60 #ifdef FB_ENABLED
61 if (sysinfo_value("fb.kind") == 1) {
62 if (fb_init() == 0)
63 initialized = 1;
65 #endif
66 #ifdef EGA_ENABLED
67 if (!initialized && sysinfo_value("fb.kind") == 2) {
68 if (ega_init() == 0)
69 initialized = 1;
71 #endif
73 if (!initialized)
74 sysio_init();
76 if (ipc_connect_to_me(PHONE_NS, SERVICE_VIDEO, 0, &phonead) != 0)
77 return -1;
79 async_manager();
80 /* Never reached */
81 return 0;