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