// Иницилизация контроллера и драйвера void fd_init() { puts_color("Starting FD driver...", 0x0b); #if (CFG_FD_READ_CACHE == 1) // Иницилизируем кольцевую кэш-очередь uint i; for (i = 0; i < CFG_FD_READ_CACHE_SIZE; i++) fd_cache[i].LBA = -1; fd_cache_pos = 0; printf_color(0x0a, "\t\t%dKb sector cache\n", CFG_FD_READ_CACHE_SIZE/2); #else puts_color(0x0a, "\tno sector cache\n"); #endif fd_clear_int_flag(); out_DOR(0x1c); // Включаем двигатель первого привода fd_wait_for_RQM(); // Посылаем команду Иницилизация out_FIFO(0x07); out_FIFO(0x00); //fd_wait_for_RQM(); fd_wait_for_int(); out_FIFO(0x08); // Посылаем комадну Sense Interrupt Status uchar ST0; ST0 = in_FIFO(); // И считываем ее результат: ST0 и PCN in_FIFO(); }
void panic(char *msg) { puts_color("\nKernel panic!\nOops: ", 0xc); puts_color(msg, 0x0c); asm("cli; hlt"); while(1); }
void auth_wrongful(t_ftp_client *client) { (void)client; puts_color("authentification: bad login password\n", RED); }
// Инициализация PIC void irq_init() { puts_color("Remapping IRQs...\t\t", 0x0b); remap_irqs(IRQ0_INT, IRQ8_INT); printf_color(0x0a, "IRQ0 = int 0x%x, IRQ8 = int 0x%x\n", IRQ0_INT, IRQ8_INT); }