KallistiOS  2.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
exec.h
Go to the documentation of this file.
1 /* KallistiOS 2.0.0
2 
3  arch/dreamcast/include/arch/exec.h
4  (c)2002 Dan Potter
5 
6 */
7 
8 /** \file arch/exec.h
9  \brief Program execution.
10 
11  This file contains functions that allow you to replace the currently running
12  program with another binary that has already been loaded into memory. Doing
13  so is expected to replace the currently running binary in its entirety, and
14  these functions do not return to the calling function.
15 
16  \author Dan Potter
17 */
18 
19 #ifndef __ARCH_EXEC_H
20 #define __ARCH_EXEC_H
21 
22 #include <sys/cdefs.h>
23 __BEGIN_DECLS
24 
25 /** \brief Replace the currently running binary.
26 
27  This function will replace the currently running binary with whatever is
28  at the specified address. This function does not return.
29 
30  \param image The binary to run (already loaded into RAM).
31  \param length The length of the binary.
32  \param address The address of the binary's starting point.
33 */
34 void arch_exec_at(const void *image, uint32 length, uint32 address) __noreturn;
35 
36 /** \brief Replace the currently running binary at the default address.
37 
38  This is a convenience function for arch_exec_at() that assumes that the
39  binary has been set up with its starting point at the standard location.
40  In the case of the Dreamcast, this is 0xAC010000 (or 0x8C010000, in P1).
41 
42  \param image The binary to run (already loaded into RAM).
43  \param length The length of the binary.
44 */
45 void arch_exec(const void *image, uint32 length) __noreturn;
46 
47 __END_DECLS
48 
49 #endif /* __ARCH_EXEC_H */
50