2015-04-22 01:31:31 +08:00
|
|
|
#ifndef __KLOADER_H
|
|
|
|
#define __KLOADER_H
|
|
|
|
|
2015-08-08 21:01:08 +08:00
|
|
|
#include "artiq_personality.h"
|
|
|
|
|
2015-08-02 11:41:05 +08:00
|
|
|
#define KERNELCPU_EXEC_ADDRESS 0x40400000
|
|
|
|
#define KERNELCPU_PAYLOAD_ADDRESS 0x40420000
|
|
|
|
#define KERNELCPU_LAST_ADDRESS (0x4fffffff - 1024*1024)
|
|
|
|
#define KSUPPORT_HEADER_SIZE 0x80
|
2015-04-22 01:31:31 +08:00
|
|
|
|
2015-07-25 16:26:04 +08:00
|
|
|
extern long long int now;
|
|
|
|
|
2015-08-08 21:01:08 +08:00
|
|
|
int kloader_load_library(const void *code);
|
|
|
|
void kloader_filter_backtrace(struct artiq_backtrace_item *backtrace,
|
|
|
|
size_t *backtrace_size);
|
2015-04-22 01:31:31 +08:00
|
|
|
|
|
|
|
void kloader_start_bridge(void);
|
2015-08-02 11:41:05 +08:00
|
|
|
int kloader_start_idle_kernel(void);
|
2015-08-07 13:49:57 +08:00
|
|
|
void kloader_start_kernel(void);
|
2015-05-09 17:11:34 +08:00
|
|
|
void kloader_stop(void);
|
2015-04-22 01:31:31 +08:00
|
|
|
|
2015-07-25 16:26:04 +08:00
|
|
|
int kloader_validate_kpointer(void *p);
|
|
|
|
int kloader_is_essential_kmsg(int msgtype);
|
|
|
|
void kloader_service_essential_kmsg(void);
|
|
|
|
|
2015-04-22 01:31:31 +08:00
|
|
|
#endif /* __KLOADER_H */
|