2011-12-22 16:19:25 +01:00
|
|
|
/*
|
|
|
|
* \brief Genode backend for GDBServer
|
|
|
|
* \author Christian Prochaska
|
|
|
|
* \date 2011-05-06
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
2017-02-20 13:23:52 +01:00
|
|
|
* Copyright (C) 2011-2017 Genode Labs GmbH
|
2011-12-22 16:19:25 +01:00
|
|
|
*
|
|
|
|
* This file is part of the Genode OS framework, which is distributed
|
2017-02-20 13:23:52 +01:00
|
|
|
* under the terms of the GNU Affero General Public License version 3.
|
2011-12-22 16:19:25 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Based on gdbserver/linux-low.h
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef GENODE_LOW_H
|
|
|
|
#define GENODE_LOW_H
|
|
|
|
|
2016-05-17 16:13:23 +02:00
|
|
|
#include <sys/types.h>
|
|
|
|
|
2011-12-22 16:19:25 +01:00
|
|
|
#include "server.h"
|
|
|
|
|
2016-05-17 16:13:23 +02:00
|
|
|
/* exception type */
|
|
|
|
struct No_memory_at_address { };
|
2011-12-22 16:19:25 +01:00
|
|
|
|
2016-05-17 16:13:23 +02:00
|
|
|
/* interface for linux-low.c */
|
2011-12-22 16:19:25 +01:00
|
|
|
|
|
|
|
void genode_stop_all_threads();
|
|
|
|
void genode_continue_thread(unsigned long lwpid, int single_step);
|
|
|
|
|
2016-05-17 16:13:23 +02:00
|
|
|
int genode_kill(int pid);
|
|
|
|
int genode_detach(int pid);
|
|
|
|
void genode_fetch_registers(struct regcache *regcache, int regno);
|
|
|
|
void genode_store_registers(struct regcache *regcache, int regno);
|
|
|
|
int genode_read_memory(CORE_ADDR memaddr, unsigned char *myaddr, int len);
|
|
|
|
int genode_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len);
|
|
|
|
|
|
|
|
/* interface for genode-low.cc and low.cc */
|
2013-10-24 16:05:31 +02:00
|
|
|
|
2011-12-22 16:19:25 +01:00
|
|
|
int genode_fetch_register(int regno, unsigned long *reg_content);
|
2013-10-01 17:39:27 +02:00
|
|
|
void genode_store_register(int regno, unsigned long reg_content);
|
2011-12-22 16:19:25 +01:00
|
|
|
unsigned char genode_read_memory_byte(void *addr);
|
|
|
|
|
2019-04-29 16:53:44 +02:00
|
|
|
/* interface for cpu_thread_component.cc */
|
|
|
|
void genode_set_initial_breakpoint_at(unsigned long addr);
|
|
|
|
|
2011-12-22 16:19:25 +01:00
|
|
|
#endif /* GENODE_LOW_H */
|