Lines Matching refs:id
79 static int debug_prolog_level_fn(debug_info_t *id,
82 static int debug_input_level_fn(debug_info_t *id, struct debug_view *view,
85 static int debug_prolog_pages_fn(debug_info_t *id,
88 static int debug_input_pages_fn(debug_info_t *id, struct debug_view *view,
91 static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view,
94 static int debug_hex_ascii_format_fn(debug_info_t *id, struct debug_view *view,
436 debug_info_t *id; in debug_next_entry() local
438 id = p_info->debug_info_snap; in debug_next_entry()
444 if (!id->areas) in debug_next_entry()
446 p_info->act_entry += id->entry_size; in debug_next_entry()
448 if (p_info->act_entry > (PAGE_SIZE - id->entry_size)) { in debug_next_entry()
452 if ((p_info->act_page % id->pages_per_area) == 0) { in debug_next_entry()
457 if (p_info->act_area >= id->nr_areas) in debug_next_entry()
493 debug_info_t *id; in debug_prev_entry() local
495 id = p_info->debug_info_snap; in debug_prev_entry()
498 if (!id->areas) in debug_prev_entry()
500 p_info->act_entry -= id->entry_size; in debug_prev_entry()
504 p_info->act_entry = rounddown(PAGE_SIZE, id->entry_size) - id->entry_size; in debug_prev_entry()
509 p_info->act_page = id->pages_per_area - 1; in debug_prev_entry()
512 p_info->act_area = (id->nr_areas - 1) % id->nr_areas; in debug_prev_entry()
515 if (id->active_area == p_info->act_area && in debug_prev_entry()
516 id->active_pages[id->active_area] == p_info->act_page && in debug_prev_entry()
517 id->active_entries[id->active_area] == p_info->act_entry) in debug_prev_entry()
730 ssize_t debug_dump(debug_info_t *id, struct debug_view *view, in debug_dump() argument
741 p_info = debug_file_private_alloc(id, view); in debug_dump()
761 static void _debug_register(debug_info_t *id) in _debug_register() argument
764 id->debugfs_root_entry = debugfs_create_dir(id->name, in _debug_register()
770 debug_area_first = id; in _debug_register()
771 id->prev = NULL; in _debug_register()
774 debug_area_last->next = id; in _debug_register()
775 id->prev = debug_area_last; in _debug_register()
777 debug_area_last = id; in _debug_register()
778 id->next = NULL; in _debug_register()
780 debug_register_view(id, &debug_level_view); in _debug_register()
781 debug_register_view(id, &debug_flush_view); in _debug_register()
782 debug_register_view(id, &debug_pages_view); in _debug_register()
864 void debug_register_static(debug_info_t *id, int pages_per_area, int nr_areas) in debug_register_static() argument
871 id->name); in debug_register_static()
875 copy = debug_info_alloc("", pages_per_area, nr_areas, id->buf_size, in debug_register_static()
876 id->level, ALL_AREAS); in debug_register_static()
878 pr_err("Registering debug feature %s failed\n", id->name); in debug_register_static()
881 raw_spin_lock_irqsave(&id->lock, flags); in debug_register_static()
882 id->areas = NULL; in debug_register_static()
883 id->active_pages = NULL; in debug_register_static()
884 id->active_entries = NULL; in debug_register_static()
885 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_register_static()
891 raw_spin_lock_irqsave(&id->lock, flags); in debug_register_static()
892 debug_events_append(copy, id); in debug_register_static()
893 debug_areas_swap(id, copy); in debug_register_static()
894 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_register_static()
903 _debug_register(id); in debug_register_static()
908 static void _debug_unregister(debug_info_t *id) in _debug_unregister() argument
913 if (!id->views[i]) in _debug_unregister()
915 debugfs_remove(id->debugfs_entries[i]); in _debug_unregister()
917 debugfs_remove(id->debugfs_root_entry); in _debug_unregister()
918 if (id == debug_area_first) in _debug_unregister()
919 debug_area_first = id->next; in _debug_unregister()
920 if (id == debug_area_last) in _debug_unregister()
921 debug_area_last = id->prev; in _debug_unregister()
922 if (id->prev) in _debug_unregister()
923 id->prev->next = id->next; in _debug_unregister()
924 if (id->next) in _debug_unregister()
925 id->next->prev = id->prev; in _debug_unregister()
936 void debug_unregister(debug_info_t *id) in debug_unregister() argument
938 if (!id) in debug_unregister()
941 _debug_unregister(id); in debug_unregister()
944 debug_info_put(id); in debug_unregister()
952 static int debug_set_size(debug_info_t *id, int nr_areas, int pages_per_area) in debug_set_size() argument
957 if (!id || (nr_areas <= 0) || (pages_per_area < 0)) in debug_set_size()
960 new_id = debug_info_alloc("", pages_per_area, nr_areas, id->buf_size, in debug_set_size()
961 id->level, ALL_AREAS); in debug_set_size()
968 raw_spin_lock_irqsave(&id->lock, flags); in debug_set_size()
969 debug_events_append(new_id, id); in debug_set_size()
970 debug_areas_swap(new_id, id); in debug_set_size()
971 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_set_size()
973 pr_info("%s: set new size (%i pages)\n", id->name, pages_per_area); in debug_set_size()
987 void debug_set_level(debug_info_t *id, int new_level) in debug_set_level() argument
991 if (!id) in debug_set_level()
995 pr_info("%s: switched off\n", id->name); in debug_set_level()
998 id->name, new_level, 0, DEBUG_MAX_LEVEL); in debug_set_level()
1002 raw_spin_lock_irqsave(&id->lock, flags); in debug_set_level()
1003 id->level = new_level; in debug_set_level()
1004 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_set_level()
1012 static inline void proceed_active_entry(debug_info_t *id) in proceed_active_entry() argument
1014 if ((id->active_entries[id->active_area] += id->entry_size) in proceed_active_entry()
1015 > (PAGE_SIZE - id->entry_size)) { in proceed_active_entry()
1016 id->active_entries[id->active_area] = 0; in proceed_active_entry()
1017 id->active_pages[id->active_area] = in proceed_active_entry()
1018 (id->active_pages[id->active_area] + 1) % in proceed_active_entry()
1019 id->pages_per_area; in proceed_active_entry()
1027 static inline void proceed_active_area(debug_info_t *id) in proceed_active_area() argument
1029 id->active_area++; in proceed_active_area()
1030 id->active_area = id->active_area % id->nr_areas; in proceed_active_area()
1036 static inline debug_entry_t *get_active_entry(debug_info_t *id) in get_active_entry() argument
1038 return (debug_entry_t *) (((char *) id->areas[id->active_area] in get_active_entry()
1039 [id->active_pages[id->active_area]]) + in get_active_entry()
1040 id->active_entries[id->active_area]); in get_active_entry()
1084 static inline void debug_finish_entry(debug_info_t *id, debug_entry_t *active, in debug_finish_entry() argument
1098 proceed_active_entry(id); in debug_finish_entry()
1100 proceed_active_area(id); in debug_finish_entry()
1177 debug_entry_t *debug_event_common(debug_info_t *id, int level, const void *buf, in debug_event_common() argument
1183 if (!debug_active || !id->areas) in debug_event_common()
1186 if (!raw_spin_trylock_irqsave(&id->lock, flags)) in debug_event_common()
1189 raw_spin_lock_irqsave(&id->lock, flags); in debug_event_common()
1192 active = get_active_entry(id); in debug_event_common()
1193 memcpy(DEBUG_DATA(active), buf, min(len, id->buf_size)); in debug_event_common()
1194 if (len < id->buf_size) in debug_event_common()
1195 memset((DEBUG_DATA(active)) + len, 0, id->buf_size - len); in debug_event_common()
1196 debug_finish_entry(id, active, level, 0); in debug_event_common()
1197 len -= id->buf_size; in debug_event_common()
1198 buf += id->buf_size; in debug_event_common()
1201 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_event_common()
1210 debug_entry_t *debug_exception_common(debug_info_t *id, int level, in debug_exception_common() argument
1216 if (!debug_active || !id->areas) in debug_exception_common()
1219 if (!raw_spin_trylock_irqsave(&id->lock, flags)) in debug_exception_common()
1222 raw_spin_lock_irqsave(&id->lock, flags); in debug_exception_common()
1225 active = get_active_entry(id); in debug_exception_common()
1226 memcpy(DEBUG_DATA(active), buf, min(len, id->buf_size)); in debug_exception_common()
1227 if (len < id->buf_size) in debug_exception_common()
1228 memset((DEBUG_DATA(active)) + len, 0, id->buf_size - len); in debug_exception_common()
1229 debug_finish_entry(id, active, level, len <= id->buf_size); in debug_exception_common()
1230 len -= id->buf_size; in debug_exception_common()
1231 buf += id->buf_size; in debug_exception_common()
1234 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_exception_common()
1256 debug_entry_t *__debug_sprintf_event(debug_info_t *id, int level, char *string, ...) in __debug_sprintf_event() argument
1264 if (!debug_active || !id->areas) in __debug_sprintf_event()
1269 if (!raw_spin_trylock_irqsave(&id->lock, flags)) in __debug_sprintf_event()
1272 raw_spin_lock_irqsave(&id->lock, flags); in __debug_sprintf_event()
1274 active = get_active_entry(id); in __debug_sprintf_event()
1278 for (idx = 0; idx < min(numargs, (int)(id->buf_size / sizeof(long)) - 1); idx++) in __debug_sprintf_event()
1281 debug_finish_entry(id, active, level, 0); in __debug_sprintf_event()
1282 raw_spin_unlock_irqrestore(&id->lock, flags); in __debug_sprintf_event()
1291 debug_entry_t *__debug_sprintf_exception(debug_info_t *id, int level, char *string, ...) in __debug_sprintf_exception() argument
1299 if (!debug_active || !id->areas) in __debug_sprintf_exception()
1305 if (!raw_spin_trylock_irqsave(&id->lock, flags)) in __debug_sprintf_exception()
1308 raw_spin_lock_irqsave(&id->lock, flags); in __debug_sprintf_exception()
1310 active = get_active_entry(id); in __debug_sprintf_exception()
1314 for (idx = 0; idx < min(numargs, (int)(id->buf_size / sizeof(long)) - 1); idx++) in __debug_sprintf_exception()
1317 debug_finish_entry(id, active, level, 1); in __debug_sprintf_exception()
1318 raw_spin_unlock_irqrestore(&id->lock, flags); in __debug_sprintf_exception()
1335 int debug_register_view(debug_info_t *id, struct debug_view *view) in debug_register_view() argument
1343 if (!id) in debug_register_view()
1345 mode = (id->mode | S_IFREG) & ~S_IXUGO; in debug_register_view()
1350 pde = debugfs_create_file(view->name, mode, id->debugfs_root_entry, in debug_register_view()
1351 id, &debug_file_ops); in debug_register_view()
1352 raw_spin_lock_irqsave(&id->lock, flags); in debug_register_view()
1354 if (!id->views[i]) in debug_register_view()
1360 id->views[i] = view; in debug_register_view()
1361 id->debugfs_entries[i] = pde; in debug_register_view()
1363 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_register_view()
1366 "number of views %i\n", id->name, view->name, i); in debug_register_view()
1385 int debug_unregister_view(debug_info_t *id, struct debug_view *view) in debug_unregister_view() argument
1391 if (!id) in debug_unregister_view()
1393 raw_spin_lock_irqsave(&id->lock, flags); in debug_unregister_view()
1395 if (id->views[i] == view) in debug_unregister_view()
1401 dentry = id->debugfs_entries[i]; in debug_unregister_view()
1402 id->views[i] = NULL; in debug_unregister_view()
1403 id->debugfs_entries[i] = NULL; in debug_unregister_view()
1405 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_unregister_view()
1449 static int debug_prolog_pages_fn(debug_info_t *id, struct debug_view *view, in debug_prolog_pages_fn() argument
1452 return scnprintf(out_buf, out_buf_size, "%i\n", id->pages_per_area); in debug_prolog_pages_fn()
1459 static int debug_input_pages_fn(debug_info_t *id, struct debug_view *view, in debug_input_pages_fn() argument
1482 rc = debug_set_size(id, id->nr_areas, new_pages); in debug_input_pages_fn()
1498 static int debug_prolog_level_fn(debug_info_t *id, struct debug_view *view, in debug_prolog_level_fn() argument
1503 if (id->level == DEBUG_OFF_LEVEL) in debug_prolog_level_fn()
1506 rc = scnprintf(out_buf, out_buf_size, "%i\n", id->level); in debug_prolog_level_fn()
1513 static int debug_input_level_fn(debug_info_t *id, struct debug_view *view, in debug_input_level_fn() argument
1532 debug_set_level(id, DEBUG_OFF_LEVEL); in debug_input_level_fn()
1542 debug_set_level(id, new_level); in debug_input_level_fn()
1555 static void debug_flush(debug_info_t *id, int area) in debug_flush() argument
1560 if (!id || !id->areas) in debug_flush()
1562 raw_spin_lock_irqsave(&id->lock, flags); in debug_flush()
1564 id->active_area = 0; in debug_flush()
1565 memset(id->active_entries, 0, id->nr_areas * sizeof(int)); in debug_flush()
1566 for (i = 0; i < id->nr_areas; i++) { in debug_flush()
1567 id->active_pages[i] = 0; in debug_flush()
1568 for (j = 0; j < id->pages_per_area; j++) in debug_flush()
1569 memset(id->areas[i][j], 0, PAGE_SIZE); in debug_flush()
1571 } else if (area >= 0 && area < id->nr_areas) { in debug_flush()
1572 id->active_entries[area] = 0; in debug_flush()
1573 id->active_pages[area] = 0; in debug_flush()
1574 for (i = 0; i < id->pages_per_area; i++) in debug_flush()
1575 memset(id->areas[area][i], 0, PAGE_SIZE); in debug_flush()
1577 raw_spin_unlock_irqrestore(&id->lock, flags); in debug_flush()
1583 static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view, in debug_input_flush_fn() argument
1606 debug_flush(id, DEBUG_FLUSH_ALL); in debug_input_flush_fn()
1612 debug_flush(id, area); in debug_input_flush_fn()
1627 static int debug_hex_ascii_format_fn(debug_info_t *id, struct debug_view *view, in debug_hex_ascii_format_fn() argument
1632 for (i = 0; i < id->buf_size; i++) { in debug_hex_ascii_format_fn()
1637 for (i = 0; i < id->buf_size; i++) { in debug_hex_ascii_format_fn()
1652 int debug_dflt_header_fn(debug_info_t *id, struct debug_view *view, in debug_dflt_header_fn() argument
1685 int debug_sprintf_format_fn(debug_info_t *id, struct debug_view *view, in debug_sprintf_format_fn() argument
1693 num_longs = id->buf_size / sizeof(long); in debug_sprintf_format_fn()