1 /* 2 * Copyright (c) 2009 Corey Tabaka 3 * 4 * Use of this source code is governed by a MIT-style 5 * license that can be found in the LICENSE file or at 6 * https://opensource.org/licenses/MIT 7 */ 8 #pragma once 9 10 #include <lib/cbuf.h> 11 #include <platform/timer.h> 12 13 extern cbuf_t console_input_buf; 14 15 void platform_init_debug_early(void); 16 void platform_init_debug(void); 17 void platform_init_interrupts(void); 18 19 // legacy programmable interrupt controller 20 void pic_init(void); 21 void pic_enable(unsigned int vector, bool enable); 22 void pic_eoi(unsigned int vector); 23 void pic_mask_interrupts(void); 24 25 // programable interval timer 26 void pit_init(void); 27 status_t pit_set_periodic_timer(platform_timer_callback callback, void *arg, lk_time_t interval); 28 status_t pit_set_oneshot_timer(platform_timer_callback callback, void *arg, lk_time_t interval); 29 void pit_cancel_timer(void); 30 void pit_stop_timer(void); 31 lk_time_t pit_current_time(void); 32 lk_bigtime_t pit_current_time_hires(void); 33 uint64_t pit_calibrate_tsc(void); 34 35 // secondary cpus 36 void platform_start_secondary_cpus(void); 37