CHDK_DE Vorschauversion  Trunk Rev. 5294
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
module_inspector.c-Dateireferenz
#include "camera_info.h"
#include "gui.h"
#include "gui_draw.h"
#include "meminfo.h"
#include "module_load.h"
#include "simple_module.h"
#include "gui_mbox.h"
#include "keyboard.h"
#include "stdlib.h"
+ Include-Abhängigkeitsdiagramm für module_inspector.c:

gehe zum Quellcode dieser Datei

Funktionen

int basic_module_init ()
 
int _run ()
 
int _module_can_unload ()
 
int _module_exit_alt ()
 
void gui_module_menu_kbd_process ()
 
int gui_module_kbd_process ()
 
void gui_module_draw ()
 
static void modinspect_unload_cb (unsigned int btn)
 
static void gui_mem_info (char *typ, cam_meminfo *meminfo, int showidx)
 

Variablen

static int running = 0
 
libsimple_sym _librun
 
ModuleInfo _module_info
 
gui_handler GUI_MODE_MODULE_INSPECTOR
 
int modinspect_redraw
 
gui_handlermodinspect_old_guimode
 

Dokumentation der Funktionen

int _module_can_unload ( )

Definiert in Zeile 25 der Datei module_inspector.c.

26 {
27  return running == 0;
28 }
int _module_exit_alt ( )

Definiert in Zeile 30 der Datei module_inspector.c.

31 {
32  running = 0;
33  return 0;
34 }
int _run ( )

Definiert in Zeile 18 der Datei module_inspector.c.

19 {
21 
22  return 0;
23 }
int basic_module_init ( )
static void gui_mem_info ( char *  typ,
cam_meminfo meminfo,
int  showidx 
)
static

Definiert in Zeile 125 der Datei module_inspector.c.

126 {
127  char txt[50];
128  sprintf(txt,"%-5s: %08x-%08x: %d",typ,meminfo->start_address, meminfo->end_address, meminfo->total_size);
130  sprintf(txt,"alloc: now=%d(%d) max=%d", meminfo->allocated_size, meminfo->allocated_count, meminfo->allocated_peak);
132  sprintf(txt,"free: now=%d(%d) max=%d", meminfo->free_size, meminfo->free_block_count, meminfo->free_block_max_size);
134 }
void gui_module_draw ( )

Definiert in Zeile 136 der Datei module_inspector.c.

137 {
138  int idx, showidx;
139 
140  if (modinspect_redraw) {
141 
143  draw_string(camera_screen.disp_left+5*FONT_WIDTH, 0, "*** Module Inspector ***", MAKE_COLOR(COLOR_BLACK, COLOR_WHITE));
144  draw_string(camera_screen.disp_left+FONT_WIDTH, FONT_HEIGHT, "SET-redraw, DISP-unload_all, MENU-exit", MAKE_COLOR(COLOR_BLACK, COLOR_WHITE));
146 
147  showidx=3*FONT_HEIGHT;
148  for ( idx=0; idx<MAX_NUM_LOADED_MODULES; idx++)
149  {
150  module_entry* mod = module_get_adr(idx);;
151  if (mod == 0) continue;
152 
153  char txt[50], name[13];
154  // Module name can include full path, extract just filename and display max of 12 chars
155  char *s = strrchr(mod->hMod->name, '/');
156  if (s) s = s + 1; else s = mod->hMod->name;
157  strncpy(name, s, 12); name[12] = 0;
158  sprintf(txt,"%02d: %-12s %08x - %d bytes", idx, name, (unsigned)mod->hdr, mod->hdr->reloc_start+mod->hdr->bss_size);
160  showidx += FONT_HEIGHT;
161  }
162 
163  showidx += FONT_HEIGHT;
164 
165  cam_meminfo meminfo;
166 
167  // Display Canon heap memory info
168  // amount of data displayed may vary depending on GetMemInfo implementation
169  memset(&meminfo,0,sizeof(meminfo));
170  GetMemInfo(&meminfo);
171  gui_mem_info("MEM", &meminfo, showidx);
172  showidx += 3*FONT_HEIGHT;
173 
174  // Display ARAM memory info (only if enabled)
175  memset(&meminfo,0,sizeof(meminfo));
176  if (GetARamInfo(&meminfo))
177  {
178  gui_mem_info("ARAM", &meminfo, showidx);
179  showidx += 3*FONT_HEIGHT;
180  }
181 
182  // Display EXMEM memory info (only if enabled)
183  memset(&meminfo,0,sizeof(meminfo));
184  if (GetExMemInfo(&meminfo))
185  {
186  gui_mem_info("EXMEM", &meminfo, showidx);
187  }
188  }
189 
190  modinspect_redraw = 0;
191 }
int gui_module_kbd_process ( )

Definiert in Zeile 94 der Datei module_inspector.c.

95 {
96  switch (kbd_get_autoclicked_key())
97  {
98  case KEY_SET:
100  break;
101  case KEY_DISPLAY:
102  gui_mbox_init( (int)"Module Inspector", (int)"Unload all modules?",
104  break;
105  }
106  return 0;
107 }
void gui_module_menu_kbd_process ( )

Definiert in Zeile 464 der Datei gui_sokoban.c.

465 {
466  running = 0;
468 }
static void modinspect_unload_cb ( unsigned int  btn)
static

Definiert in Zeile 83 der Datei module_inspector.c.

84 {
85  if (btn==MBOX_BTN_YES)
86  {
87  running = 0;
89  gui_set_mode(modinspect_old_guimode); // if core gui - return to it
90  }
92 }

Variablen-Dokumentation

libsimple_sym _librun
Initialisierung:

Definiert in Zeile 38 der Datei module_inspector.c.

ModuleInfo _module_info
Initialisierung:

Definiert in Zeile 45 der Datei module_inspector.c.

gui_handler GUI_MODE_MODULE_INSPECTOR
Initialisierung:

Definiert in Zeile 77 der Datei module_inspector.c.

gui_handler* modinspect_old_guimode

Definiert in Zeile 81 der Datei module_inspector.c.

int modinspect_redraw

Definiert in Zeile 80 der Datei module_inspector.c.

int running = 0
static

Definiert in Zeile 10 der Datei module_inspector.c.