]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - sim/ppc/os_emul.h
This commit was manufactured by cvs2svn to create branch
[thirdparty/binutils-gdb.git] / sim / ppc / os_emul.h
index 1febef8e9ff6a0f48f8ab9ef66996d6ec11f6f0a..6d74e9c6f93508456ad8e7762f34d2d1ec95eabc 100644 (file)
 #ifndef _OS_EMUL_H_
 #define _OS_EMUL_H_
 
-#ifndef INLINE_OS_EMUL
-#define INLINE_OS_EMUL
-#endif
+typedef struct _os_emul os_emul;
+
+INLINE_OS_EMUL\
+(os_emul *) os_emul_create
+(const char *file_name,
+ device *root);
 
-typedef struct _os_emul *os_emul;
+INLINE_OS_EMUL\
+(void) os_emul_init
+(os_emul *emulation,
+ int nr_cpus);
 
-INLINE_OS_EMUL os_emul *os_emul_create
-(char *emulation_name);
 
-INLINE_OS_EMUL void os_emul_init
-(os_emul *emulation);
+/* System-call emulation - for user code.  Instead of trapping system
+   calls to kernel mode, the simulator emulates the kernels behavour */
 
-INLINE_OS_EMUL void os_emul_call
+INLINE_OS_EMUL\
+(void) os_emul_system_call
 (cpu *processor,
  unsigned_word cia);
 
+
+/* Instruction emulation - for kernel code.  Extra (normally illegal)
+   instructions are added to the instruction table that when executed
+   call this emulation function. The instruction call emulator should
+   verify the address that the instruction appears before emulating
+   the required behavour.  If the verification fails, a zero value
+   should be returned (indicating instruction illegal). */
+
+INLINE_OS_EMUL\
+(int) os_emul_instruction_call
+(cpu *processor,
+ unsigned_word cia,
+ unsigned_word ra);
+
 #endif