extended_type_info_typeid() :
     typeid_system::extended_type_info_typeid_0(
         boost::serialization::guid< T >()
     )
 {
     type_register(typeid(T));
     key_register();
 }
예제 #2
0
 extended_type_info_typeid() :
     typeid_system::extended_type_info_typeid_0(get_key())
 {
     type_register(typeid(T));
     key_register();
 }
예제 #3
0
void kmain(multiboot_info_t* mbd, unsigned int magic ) {
    if ( magic != 0x2BADB002 ) {
        // TODO: Hacer un kputs.
        kprint ( "Warning: No se inicializo con GRUB, intentando de todas formas.\n" );
    }

    //Primero tenemos que corregir mbd para que sea una direccion virtual valida
    mbd = (multiboot_info_t*)( PA2KVA( (uint32_t) mbd) );

    //Ahora si, usando mbd que apunta bien a los datos del grub, inicializamos todo
    kinit( mbd );

    kprint("llego\n");
    key_init();

    //Aca asigna Esc a la funcion menu
    key_register(menu, 1);
    //Seteo Fs
    key_register(mostrar_slot,59);
    key_register(mostrar_slot,60);
    key_register(mostrar_slot,61);
    key_register(mostrar_slot,62);
    key_register(mostrar_slot,63);
    key_register(mostrar_slot,64);
    key_register(mostrar_slot,65);
    key_register(mostrar_slot,66);
    key_register(mostrar_slot,67);




    kprint("binding keys done\n");
    if(tty_init(&tty_kernel, menu_in)) {
        panic("fallo  el inicio de las tty");
    }
    //Lanzamos programa para cargar tareas y modificar quantums.
    set_isr_handler( 14, &pf ); // #PF

    // El idle task... siempre listo... :-)
    programs_t idle;
    idle.va_entry = idletask;
    crear_kthread( &idle, 10 );

    //Iniciamos Scheduler
    iniciar_scheduler();

    extern unsigned char ej1[];
    extern unsigned char ej2[];
    extern unsigned char ej3[];
    extern unsigned char ej4[];
    programas[0] = (programs_t *) ej1;
    programas[1]= (programs_t *) ej2;
    programas[2] = (programs_t *) ej3;
    programas[3]= (programs_t *) ej4;
    programas[4]= (programs_t *) ej1;

    set_irq_handler( 0, &timer );
    set_irq_handler( 1, &irq_keyboard );
    menu(1);
    sti();
    //Lanzamos programa menu
    while(1);
}