00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __program_h__
00027 #define __program_h__
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033 #include <config.h>
00034
00035 #ifdef CONF_PROGRAM
00036
00037 #include <tm.h>
00038
00040
00041
00042
00044
00045 #define PROG_MAX 8
00046
00047 #ifndef DOXYGEN_SHOULD_SKIP_INTERNALS
00048
00052 typedef struct {
00053 void *text;
00054 void *data;
00055 void *bss;
00056 void *data_orig;
00057
00058 size_t text_size;
00059 size_t data_size;
00060 size_t bss_size;
00061 size_t stack_size;
00062 size_t start;
00063 priority_t prio;
00064
00065 size_t downloaded;
00066 } program_t;
00067
00071 typedef enum {
00072 CMDacknowledge,
00073 CMDdelete,
00074 CMDcreate,
00075
00076
00077 CMDoffsets,
00078 CMDdata,
00079 CMDrun,
00080 CMDirmode,
00081 CMDsethost,
00082 CMDlast
00083 } packet_cmd_t;
00084
00085 #endif
00086
00088
00089
00090
00092
00093 extern volatile unsigned cprog;
00094
00096
00097
00098
00100
00102 extern void program_stop(int flag);
00103
00105
00106 extern int program_valid(unsigned nr);
00107
00109 extern void program_init();
00110
00112 extern void program_shutdown();
00113
00114 #endif // CONF_PROGRAM
00115
00116 #ifdef __cplusplus
00117 }
00118 #endif
00119
00120 #endif // __program_h__