1
2
3
4
5
6
7
8
9
10
11 display_source:
12 proc(pt,tree_level);
13
14
15
16 dcl tree_level fixed bin;
17 dcl (p,pt) ptr;
18 dcl (addr,null) builtin;
19 dcl 1 based_words based aligned,
20 2 word1 bit(36),
21 2 word2 bit(36);
22 dcl date char(24) aligned;
23 dcl ioa_ entry options(variable);
24 dcl decode_node_id entry(ptr,bit(1) aligned) returns(char(120) varying);
25 dcl date_time_ entry(fixed bin(71), char(*) aligned);
26 dcl display_any_node_name entry(char(*) aligned,ptr,fixed bin);
27 %include nodes;
28 %include token;
29 %include token_list;
30 %include source_list;
31
32 p = pt;
33 if p = null
34 then do;
35 call ioa_("^/^vxdisplay_source: ptr is NULL^/",tree_level);
36 return;
37 end;
38
39 if p->node.type ^= source_node
40 then do;
41 call display_any_node_name("display_source: node is not a source_node, arg=",p,tree_level+1);
42 return;
43 end;
44
45 call ioa_("^/^vxSOURCE ^p, ^a",tree_level,p,p -> source.name->token.string);
46 call ioa_("^vx^a",tree_level,decode_node_id(p,"0"b));
47 call ioa_("^vxseg_ptr = ^p, length = ^d, pathname = ^a",tree_level,p -> source.seg_ptr,p -> source.source_length,p -> source.pathname);
48 call date_time_(p -> source.dtm,date);
49 call ioa_("^vxuid = ^w, dtm = ^w^w (^a)^/",tree_level, p -> source.uid, p -> source.dtm,
50 addr(p -> source.dtm) -> word2, date);
51 return;
52 end display_source;