-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy patharm_syscall.H
47 lines (41 loc) · 1.8 KB
/
arm_syscall.H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/******************************************************
* ArchC Architecture Dependent Syscall header file. *
* This file is automatically generated by ArchC *
* WITHOUT WARRANTY OF ANY KIND, either express *
* or implied. *
* For more information on ArchC, please visit: *
* http://www.archc.org *
* *
* The ArchC Team *
* Computer Systems Laboratory (LSC) *
* IC-UNICAMP *
* http://www.lsc.ic.unicamp.br *
******************************************************/
#ifndef arm_SYSCALL_H
#define arm_SYSCALL_H
#include "arm_arch.H"
#include "arm_arch_ref.H"
#include "arm_parms.H"
#include "ac_syscall.H"
//arm system calls
class arm_syscall : public ac_syscall<arm_parms::ac_word, arm_parms::ac_Hword>, public arm_arch_ref
{
public:
arm_syscall(arm_arch& ref) : ac_syscall<arm_parms::ac_word, arm_parms::ac_Hword>(ref, arm_parms::AC_RAMSIZE), arm_arch_ref(ref) {};
virtual ~arm_syscall() {};
void get_buffer(int argn, unsigned char* buf, unsigned int size);
void set_buffer(int argn, unsigned char* buf, unsigned int size);
void set_buffer_noinvert(int argn, unsigned char* buf, unsigned int size);
void host2guestmemcpy(uint32_t dst, unsigned char *src, unsigned int size);
void guest2hostmemcpy(unsigned char *dst, uint32_t src, unsigned int size);
int get_int(int argn);
void set_int(int argn, int val);
void return_from_syscall();
void set_prog_args(int argc, char **argv);
int *get_syscall_table();
void set_pc(unsigned val);
void set_return(unsigned val);
unsigned get_return();
bool is_mmap_anonymous(uint32_t flags);
};
#endif