Lines Matching refs:id
78 static int debug_prolog_level_fn(debug_info_t *id,
80 static int debug_input_level_fn(debug_info_t *id, struct debug_view *view,
83 static int debug_prolog_pages_fn(debug_info_t *id,
85 static int debug_input_pages_fn(debug_info_t *id, struct debug_view *view,
88 static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view,
91 static int debug_hex_ascii_format_fn(debug_info_t *id, struct debug_view *view,
93 static int debug_raw_format_fn(debug_info_t *id,
96 static int debug_raw_header_fn(debug_info_t *id, struct debug_view *view,
99 static int debug_sprintf_format_fn(debug_info_t *id, struct debug_view *view,
451 if (act_entry->id.stck == 0LL) in debug_format_entry()
469 debug_info_t *id; in debug_next_entry() local
471 id = p_info->debug_info_snap; in debug_next_entry()
477 if (!id->areas) in debug_next_entry()
479 p_info->act_entry += id->entry_size; in debug_next_entry()
481 if (p_info->act_entry > (PAGE_SIZE - id->entry_size)) { in debug_next_entry()
485 if ((p_info->act_page % id->pages_per_area) == 0) { in debug_next_entry()
490 if (p_info->act_area >= id->nr_areas) in debug_next_entry()
701 void debug_unregister(debug_info_t *id) in debug_unregister() argument
703 if (!id) in debug_unregister()
706 debug_info_put(id); in debug_unregister()
715 static int debug_set_size(debug_info_t *id, int nr_areas, int pages_per_area) in debug_set_size() argument
721 if (!id || (nr_areas <= 0) || (pages_per_area < 0)) in debug_set_size()
734 spin_lock_irqsave(&id->lock, flags); in debug_set_size()
735 debug_areas_free(id); in debug_set_size()
736 id->areas = new_areas; in debug_set_size()
737 id->nr_areas = nr_areas; in debug_set_size()
738 id->pages_per_area = pages_per_area; in debug_set_size()
739 id->active_area = 0; in debug_set_size()
740 memset(id->active_entries, 0, sizeof(int)*id->nr_areas); in debug_set_size()
741 memset(id->active_pages, 0, sizeof(int)*id->nr_areas); in debug_set_size()
742 spin_unlock_irqrestore(&id->lock, flags); in debug_set_size()
743 pr_info("%s: set new size (%i pages)\n", id->name, pages_per_area); in debug_set_size()
752 void debug_set_level(debug_info_t *id, int new_level) in debug_set_level() argument
756 if (!id) in debug_set_level()
758 spin_lock_irqsave(&id->lock, flags); in debug_set_level()
760 id->level = DEBUG_OFF_LEVEL; in debug_set_level()
761 pr_info("%s: switched off\n", id->name); in debug_set_level()
764 id->name, new_level, 0, DEBUG_MAX_LEVEL); in debug_set_level()
766 id->level = new_level; in debug_set_level()
768 spin_unlock_irqrestore(&id->lock, flags); in debug_set_level()
776 static inline void proceed_active_entry(debug_info_t *id) in proceed_active_entry() argument
778 if ((id->active_entries[id->active_area] += id->entry_size) in proceed_active_entry()
779 > (PAGE_SIZE - id->entry_size)) { in proceed_active_entry()
780 id->active_entries[id->active_area] = 0; in proceed_active_entry()
781 id->active_pages[id->active_area] = in proceed_active_entry()
782 (id->active_pages[id->active_area] + 1) % in proceed_active_entry()
783 id->pages_per_area; in proceed_active_entry()
791 static inline void proceed_active_area(debug_info_t *id) in proceed_active_area() argument
793 id->active_area++; in proceed_active_area()
794 id->active_area = id->active_area % id->nr_areas; in proceed_active_area()
800 static inline debug_entry_t *get_active_entry(debug_info_t *id) in get_active_entry() argument
802 return (debug_entry_t *) (((char *) id->areas[id->active_area] in get_active_entry()
803 [id->active_pages[id->active_area]]) + in get_active_entry()
804 id->active_entries[id->active_area]); in get_active_entry()
812 static inline void debug_finish_entry(debug_info_t *id, debug_entry_t *active, in debug_finish_entry() argument
815 active->id.stck = get_tod_clock_fast() - in debug_finish_entry()
817 active->id.fields.cpuid = smp_processor_id(); in debug_finish_entry()
819 active->id.fields.exception = exception; in debug_finish_entry()
820 active->id.fields.level = level; in debug_finish_entry()
821 proceed_active_entry(id); in debug_finish_entry()
823 proceed_active_area(id); in debug_finish_entry()
892 debug_entry_t *debug_event_common(debug_info_t *id, int level, const void *buf, in debug_event_common() argument
898 if (!debug_active || !id->areas) in debug_event_common()
901 if (!spin_trylock_irqsave(&id->lock, flags)) in debug_event_common()
904 spin_lock_irqsave(&id->lock, flags); in debug_event_common()
907 active = get_active_entry(id); in debug_event_common()
908 memcpy(DEBUG_DATA(active), buf, min(len, id->buf_size)); in debug_event_common()
909 if (len < id->buf_size) in debug_event_common()
910 memset((DEBUG_DATA(active)) + len, 0, id->buf_size - len); in debug_event_common()
911 debug_finish_entry(id, active, level, 0); in debug_event_common()
912 len -= id->buf_size; in debug_event_common()
913 buf += id->buf_size; in debug_event_common()
916 spin_unlock_irqrestore(&id->lock, flags); in debug_event_common()
925 debug_entry_t *debug_exception_common(debug_info_t *id, int level, in debug_exception_common() argument
931 if (!debug_active || !id->areas) in debug_exception_common()
934 if (!spin_trylock_irqsave(&id->lock, flags)) in debug_exception_common()
937 spin_lock_irqsave(&id->lock, flags); in debug_exception_common()
940 active = get_active_entry(id); in debug_exception_common()
941 memcpy(DEBUG_DATA(active), buf, min(len, id->buf_size)); in debug_exception_common()
942 if (len < id->buf_size) in debug_exception_common()
943 memset((DEBUG_DATA(active)) + len, 0, id->buf_size - len); in debug_exception_common()
944 debug_finish_entry(id, active, level, len <= id->buf_size); in debug_exception_common()
945 len -= id->buf_size; in debug_exception_common()
946 buf += id->buf_size; in debug_exception_common()
949 spin_unlock_irqrestore(&id->lock, flags); in debug_exception_common()
971 debug_entry_t *__debug_sprintf_event(debug_info_t *id, int level, char *string, ...) in __debug_sprintf_event() argument
979 if (!debug_active || !id->areas) in __debug_sprintf_event()
984 if (!spin_trylock_irqsave(&id->lock, flags)) in __debug_sprintf_event()
987 spin_lock_irqsave(&id->lock, flags); in __debug_sprintf_event()
989 active = get_active_entry(id); in __debug_sprintf_event()
993 for (idx = 0; idx < min(numargs, (int)(id->buf_size / sizeof(long)) - 1); idx++) in __debug_sprintf_event()
996 debug_finish_entry(id, active, level, 0); in __debug_sprintf_event()
997 spin_unlock_irqrestore(&id->lock, flags); in __debug_sprintf_event()
1006 debug_entry_t *__debug_sprintf_exception(debug_info_t *id, int level, char *string, ...) in __debug_sprintf_exception() argument
1014 if (!debug_active || !id->areas) in __debug_sprintf_exception()
1020 if (!spin_trylock_irqsave(&id->lock, flags)) in __debug_sprintf_exception()
1023 spin_lock_irqsave(&id->lock, flags); in __debug_sprintf_exception()
1025 active = get_active_entry(id); in __debug_sprintf_exception()
1029 for (idx = 0; idx < min(numargs, (int)(id->buf_size / sizeof(long)) - 1); idx++) in __debug_sprintf_exception()
1032 debug_finish_entry(id, active, level, 1); in __debug_sprintf_exception()
1033 spin_unlock_irqrestore(&id->lock, flags); in __debug_sprintf_exception()
1042 int debug_register_view(debug_info_t *id, struct debug_view *view) in debug_register_view() argument
1050 if (!id) in debug_register_view()
1052 mode = (id->mode | S_IFREG) & ~S_IXUGO; in debug_register_view()
1057 pde = debugfs_create_file(view->name, mode, id->debugfs_root_entry, in debug_register_view()
1058 id, &debug_file_ops); in debug_register_view()
1061 "memory\n", id->name, view->name); in debug_register_view()
1065 spin_lock_irqsave(&id->lock, flags); in debug_register_view()
1067 if (!id->views[i]) in debug_register_view()
1072 "number of views %i\n", id->name, view->name, i); in debug_register_view()
1075 id->views[i] = view; in debug_register_view()
1076 id->debugfs_entries[i] = pde; in debug_register_view()
1078 spin_unlock_irqrestore(&id->lock, flags); in debug_register_view()
1089 int debug_unregister_view(debug_info_t *id, struct debug_view *view) in debug_unregister_view() argument
1095 if (!id) in debug_unregister_view()
1097 spin_lock_irqsave(&id->lock, flags); in debug_unregister_view()
1099 if (id->views[i] == view) in debug_unregister_view()
1105 dentry = id->debugfs_entries[i]; in debug_unregister_view()
1106 id->views[i] = NULL; in debug_unregister_view()
1107 id->debugfs_entries[i] = NULL; in debug_unregister_view()
1109 spin_unlock_irqrestore(&id->lock, flags); in debug_unregister_view()
1156 static int debug_prolog_pages_fn(debug_info_t *id, struct debug_view *view, in debug_prolog_pages_fn() argument
1159 return sprintf(out_buf, "%i\n", id->pages_per_area); in debug_prolog_pages_fn()
1166 static int debug_input_pages_fn(debug_info_t *id, struct debug_view *view, in debug_input_pages_fn() argument
1189 rc = debug_set_size(id, id->nr_areas, new_pages); in debug_input_pages_fn()
1205 static int debug_prolog_level_fn(debug_info_t *id, struct debug_view *view, in debug_prolog_level_fn() argument
1210 if (id->level == DEBUG_OFF_LEVEL) in debug_prolog_level_fn()
1213 rc = sprintf(out_buf, "%i\n", id->level); in debug_prolog_level_fn()
1220 static int debug_input_level_fn(debug_info_t *id, struct debug_view *view, in debug_input_level_fn() argument
1239 debug_set_level(id, DEBUG_OFF_LEVEL); in debug_input_level_fn()
1249 debug_set_level(id, new_level); in debug_input_level_fn()
1262 static void debug_flush(debug_info_t *id, int area) in debug_flush() argument
1267 if (!id || !id->areas) in debug_flush()
1269 spin_lock_irqsave(&id->lock, flags); in debug_flush()
1271 id->active_area = 0; in debug_flush()
1272 memset(id->active_entries, 0, id->nr_areas * sizeof(int)); in debug_flush()
1273 for (i = 0; i < id->nr_areas; i++) { in debug_flush()
1274 id->active_pages[i] = 0; in debug_flush()
1275 for (j = 0; j < id->pages_per_area; j++) in debug_flush()
1276 memset(id->areas[i][j], 0, PAGE_SIZE); in debug_flush()
1278 } else if (area >= 0 && area < id->nr_areas) { in debug_flush()
1279 id->active_entries[area] = 0; in debug_flush()
1280 id->active_pages[area] = 0; in debug_flush()
1281 for (i = 0; i < id->pages_per_area; i++) in debug_flush()
1282 memset(id->areas[area][i], 0, PAGE_SIZE); in debug_flush()
1284 spin_unlock_irqrestore(&id->lock, flags); in debug_flush()
1290 static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view, in debug_input_flush_fn() argument
1308 debug_flush(id, DEBUG_FLUSH_ALL); in debug_input_flush_fn()
1314 debug_flush(id, area); in debug_input_flush_fn()
1329 static int debug_raw_header_fn(debug_info_t *id, struct debug_view *view, in debug_raw_header_fn() argument
1342 static int debug_raw_format_fn(debug_info_t *id, struct debug_view *view, in debug_raw_format_fn() argument
1347 rc = id->buf_size; in debug_raw_format_fn()
1348 memcpy(out_buf, in_buf, id->buf_size); in debug_raw_format_fn()
1355 static int debug_hex_ascii_format_fn(debug_info_t *id, struct debug_view *view, in debug_hex_ascii_format_fn() argument
1360 for (i = 0; i < id->buf_size; i++) in debug_hex_ascii_format_fn()
1363 for (i = 0; i < id->buf_size; i++) { in debug_hex_ascii_format_fn()
1378 int debug_dflt_header_fn(debug_info_t *id, struct debug_view *view, in debug_dflt_header_fn() argument
1387 level = entry->id.fields.level; in debug_dflt_header_fn()
1389 sec = (entry->id.stck >> 12) + base - (TOD_UNIX_EPOCH >> 12); in debug_dflt_header_fn()
1392 if (entry->id.fields.exception) in debug_dflt_header_fn()
1399 entry->id.fields.cpuid, (void *)caller); in debug_dflt_header_fn()
1411 static int debug_sprintf_format_fn(debug_info_t *id, struct debug_view *view, in debug_sprintf_format_fn() argument
1418 num_longs = id->buf_size / sizeof(long); in debug_sprintf_format_fn()