diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:30:32 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:30:32 -0800 |
commit | 8b23a6c7e1aee255004dd19098d4c2462b61b849 (patch) | |
tree | 7a4d682ba51f0ff0364c5ca2509f515bdaf96de9 /hw/goldfish_trace.h | |
parent | f721e3ac031f892af46f255a47d7f54a91317b30 (diff) | |
download | external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.zip external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.tar.gz external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'hw/goldfish_trace.h')
-rw-r--r-- | hw/goldfish_trace.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/hw/goldfish_trace.h b/hw/goldfish_trace.h new file mode 100644 index 0000000..44190ee --- /dev/null +++ b/hw/goldfish_trace.h @@ -0,0 +1,79 @@ +/* Copyright (C) 2007-2008 The Android Open Source Project +** +** This software is licensed under the terms of the GNU General Public +** License version 2, as published by the Free Software Foundation, and +** may be copied, distributed, and modified under those terms. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +*/ +#ifndef _TRACE_DEV_H_ +#define _TRACE_DEV_H_ + +#define CLIENT_PAGE_SIZE 4096 + +/* trace device registers */ +#define TRACE_DEV_REG_SWITCH 0 +#define TRACE_DEV_REG_FORK 1 +#define TRACE_DEV_REG_EXECVE_PID 2 +#define TRACE_DEV_REG_EXECVE_VMSTART 3 +#define TRACE_DEV_REG_EXECVE_VMEND 4 +#define TRACE_DEV_REG_EXECVE_OFFSET 5 +#define TRACE_DEV_REG_EXECVE_EXEPATH 6 +#define TRACE_DEV_REG_EXIT 7 +#define TRACE_DEV_REG_CMDLINE 8 +#define TRACE_DEV_REG_CMDLINE_LEN 9 +#define TRACE_DEV_REG_MMAP_EXEPATH 10 +#define TRACE_DEV_REG_INIT_PID 11 +#define TRACE_DEV_REG_INIT_NAME 12 +#define TRACE_DEV_REG_CLONE 13 +#define TRACE_DEV_REG_UNMAP_START 14 +#define TRACE_DEV_REG_UNMAP_END 15 +#define TRACE_DEV_REG_NAME 16 +#define TRACE_DEV_REG_TGID 17 +#define TRACE_DEV_REG_DYN_SYM 50 +#define TRACE_DEV_REG_DYN_SYM_ADDR 51 +#define TRACE_DEV_REG_REMOVE_ADDR 52 +#define TRACE_DEV_REG_PRINT_STR 60 +#define TRACE_DEV_REG_PRINT_NUM_DEC 61 +#define TRACE_DEV_REG_PRINT_NUM_HEX 62 +#define TRACE_DEV_REG_STOP_EMU 90 +#define TRACE_DEV_REG_ENABLE 100 + +/* the virtual trace device state */ +typedef struct { + uint32_t base; +} trace_dev_state; + +/* + * interfaces for copy from virtual space + * from target-arm/op_helper.c + */ +extern target_phys_addr_t v2p(target_ulong ptr, int is_user); +extern void vmemcpy(target_ulong ptr, char *buf, int size); +extern void pmemcpy(target_ulong ptr, const char* buf, int size); +extern void vstrcpy(target_ulong ptr, char *buf, int max); + +/* + * interfaces to trace module to signal kernel events + */ +extern void trace_switch(int pid); +extern void trace_fork(int tgid, int pid); +extern void trace_clone(int tgid, int pid); +extern void trace_execve(const char *arg, int len); +extern void trace_exit(int exitcode); +extern void trace_mmap(unsigned long vstart, unsigned long vend, + unsigned long offset, const char *path); +extern void trace_munmap(unsigned long vstart, unsigned long vend); +extern void trace_dynamic_symbol_add(unsigned long vaddr, const char *name); +extern void trace_dynamic_symbol_remove(unsigned long vaddr); +extern void trace_init_name(int tgid, int pid, const char *name); +extern void trace_init_exec(unsigned long start, unsigned long end, + unsigned long offset, const char *exe); +extern void start_tracing(void); +extern void stop_tracing(void); +extern void trace_exception(uint32 target_pc); + +#endif |