static void InstallSignalHandlers(void) { /* * Install signal handler for unexpected signals */ xf86Info.caughtSignal=FALSE; if (!xf86Info.notrapSignals) { OsRegisterSigWrapper(xf86SigWrapper); } else { signal(SIGSEGV, SIG_DFL); signal(SIGILL, SIG_DFL); #ifdef SIGEMT signal(SIGEMT, SIG_DFL); #endif signal(SIGFPE, SIG_DFL); #ifdef SIGBUS signal(SIGBUS, SIG_DFL); #endif #ifdef SIGSYS signal(SIGSYS, SIG_DFL); #endif #ifdef SIGXCPU signal(SIGXCPU, SIG_DFL); #endif #ifdef SIGXFSZ signal(SIGXFSZ, SIG_DFL); #endif } }
void KdInitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) { KdCardInfo *card; KdScreenInfo *screen; if (!kdCardInfo) { InitCard (0); if (!(card = KdCardInfoLast ())) FatalError("No matching cards found!\n"); screen = KdScreenInfoAdd (card); KdParseScreen (screen, 0); } /* * Initialize all of the screens for all of the cards */ for (card = kdCardInfo; card; card = card->next) { int ret=1; if(card->cfuncs->cardinit) ret=(*card->cfuncs->cardinit) (card); if (ret) { for (screen = card->screenList; screen; screen = screen->next) KdInitScreen (pScreenInfo, screen, argc, argv); } } /* * Merge the various pixmap formats together, this can fail * when two screens share depth but not bitsPerPixel */ if (!KdSetPixmapFormats (pScreenInfo)) return; /* * Add all of the screens */ for (card = kdCardInfo; card; card = card->next) for (screen = card->screenList; screen; screen = screen->next) KdAddScreen (pScreenInfo, screen, argc, argv); OsRegisterSigWrapper(KdSignalWrapper); }