CHDK_DE Vorschauversion  Trunk Rev. 6014
 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-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 126 der Datei module_inspector.c.

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

Definiert in Zeile 137 der Datei module_inspector.c.

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

Definiert in Zeile 95 der Datei module_inspector.c.

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

Definiert in Zeile 463 der Datei gui_sokoban.c.

464 {
465  running = 0;
467 }
static void modinspect_unload_cb ( unsigned int  btn)
static

Definiert in Zeile 84 der Datei module_inspector.c.

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

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 78 der Datei module_inspector.c.

gui_handler* modinspect_old_guimode

Definiert in Zeile 82 der Datei module_inspector.c.

int modinspect_redraw

Definiert in Zeile 81 der Datei module_inspector.c.

int running = 0
static

Definiert in Zeile 10 der Datei module_inspector.c.