1 2 3 4 5 6 7 8 9 10 11
12 13 14
15 package xdc.rov
16
17 /*!
18 * ======== ViewInfo ========
19 * Describes the ROV views supported by a particular module.
20 */
21 @Facet metaonly module ViewInfo {
22 /*!
23 * ======== ViewType ========
24 * ROV view type
25 *
26 * @p(dlist)
27 * - INSTANCE
28 * basic instance information (one row per instance). The view
29 * init function is passed two arguments: (1) an instance of the
30 * view structure, and (2) the instance state structure of the
31 * instance to view.
32 *
33 * - INSTANCE_DATA
34 * instance-specific data tables (many rows per instance). The
35 * view init function is passed two arguments:(1) an instance of
36 * the {@link xdc.rov.Program#InstDataView Program.InstDataView}
37 * structure, and (2) an instance state structure for the
38 * instance to view.
39 *
40 * - MODULE
41 * basic module information (one row per module). The view
42 * init function is passed two arguments: (1) an instance of the
43 * view structure, and (2) the module state structure of the
44 * module to view.
45 *
46 * - MODULE_DATA
47 * module-specific data tables (many rows per module). The
48 * view init function is passed one argument: a
49 * {@link xdc.rov.Program#ModDataView Program.ModDataView}
50 * structure.
51 *
52 * - RAW
53 * This is a reserved view type used by ROV to display raw data.
54 *
55 * - TREE_TABLE
56 * The view init function is passed no arguments and is expected
57 * to return a new initialized
58 * {@link xdc.rov.Program#TreeNode xdc.rov.Program.TreeNode}
59 * array or `null` in the event that there is nothing to
60 * display.
61 *
62 * This view type is used to describe the `Diags` masks
63 * for all modules, for example; see
64 * {@link xdc.runtime.Diags#rovViewInfo Diags.rovViewInfo}'
65 *
66 * - TREE
67 * The view init function is passed no arguments and is expected
68 * to return a new initialized JavaScript hash table of hash
69 * tables or `null` in the event that there is nothing to display.
70 *
71 * This view type provides a simple two-level tree of name-value
72 * pairs.
73 * @p
74 */
75 metaonly enum ViewType {
76 INSTANCE,
77 MODULE,
78 INSTANCE_DATA,
79 MODULE_DATA,
80 RAW,
81 TREE_TABLE,
82 TREE
83 }
84
85 /*!
86 * ======== View ========
87 * ROV View descriptor
88 *
89 * @field(type) the view type which control the type of arguments
90 * passed to the `viewInitFxn`
91 * @field(viewInitFxn) the name of a function that converts raw target
92 * data into a human readable "view structure".
93 * This name is the name of a metaonly function
94 * defined in the module's `.xs` file.
95 * @field(structName) the name of the view structure populated by
96 * the `viewInitFxn`. This name is a name defined
97 * the module's `.xdc` file.
98 */
99 metaonly struct View {
100 ViewType type;
101 String viewInitFxn;
102 String structName;
103 }
104
105 instance:
106
107 /*!
108 * ======== viewMap ========
109 * Specifies all of the ROV views for the module
110 *
111 * Maps module-specific view names to an appropriate View descriptor.
112 */
113 metaonly config View viewMap[string];
114
115 /*!
116 * ======== showRawTab ========
117 * Control whether or not the "raw view" is available
118 */
119 metaonly config Bool showRawTab = true;
120
121 }
122 123 124
125