aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/q932-ros/q932-ros.cnf
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/q932-ros/q932-ros.cnf')
-rw-r--r--epan/dissectors/asn1/q932-ros/q932-ros.cnf120
1 files changed, 120 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/q932-ros/q932-ros.cnf b/epan/dissectors/asn1/q932-ros/q932-ros.cnf
new file mode 100644
index 0000000000..bafcbe953e
--- /dev/null
+++ b/epan/dissectors/asn1/q932-ros/q932-ros.cnf
@@ -0,0 +1,120 @@
+#.PDU
+
+ROS
+
+#.OMIT_ASSIGNMENT
+
+Priority
+RejectProblem
+Components
+GFPInvokeIDSet
+
+#.TYPE_RENAME
+
+Invoke/argument InvokeArgument
+ReturnResult/result/result ResultArgument
+
+#.FIELD_RENAME
+
+Invoke/linkedId/present linkedIdPresent
+
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+Reject/problem/returnResult returnResultProblem
+
+ReturnResult/result/result resultArgument
+
+#--- ROS ---
+
+#.FN_HDR ROS
+ /* will be moved to ROS_PDU when PDU function can be alternated from conformance file */
+ actx->rose_ctx = rose_ctx_tmp;
+ rose_ctx_clean_data(actx->rose_ctx);
+#.END
+
+#--- Code ---
+
+#.FN_PARS
+Code VAL_PTR = &%(ACTX)s->rose_ctx->d.code
+Code/local VAL_PTR = &%(ACTX)s->rose_ctx->d.code_local
+Code/global FN_VARIANT = _str VAL_PTR = &%(ACTX)s->rose_ctx->d.code_global
+#.FN_FTR Code
+ actx->rose_ctx->d.code_item = actx->created_item;
+#.END
+
+#--- Problem ---
+
+#.FN_PARS
+GeneralProblem VAL_PTR = &problem_val
+InvokeProblem VAL_PTR = &problem_val
+ReturnResultProblem VAL_PTR = &problem_val
+ReturnErrorProblem VAL_PTR = &problem_val
+#.FN_FTR GeneralProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_GeneralProblem_vals), ""), 64);
+#.FN_FTR InvokeProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_InvokeProblem_vals), ""), 64);
+#.FN_FTR ReturnResultProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_ReturnResultProblem_vals), ""), 64);
+#.FN_FTR ReturnErrorProblem
+ g_strlcpy(problem_str, val_to_str_const(problem_val, VALS(q932_ros_ReturnErrorProblem_vals), ""), 64);
+#.END
+
+#--- INVOKE ---
+
+#.FIELD_ATTR
+Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_BODY Invoke/argument
+ gint len;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+ if (len)
+ proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
+ arg_next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+#.END
+
+#.INCLUDE ../ros/ros-inv.cnf
+
+#--- RETURN RESULT ---
+
+#.FIELD_ATTR
+ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_BODY ReturnResult/result/result
+ gint len;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+ if (len)
+ proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
+ res_next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+
+#.END
+
+#.INCLUDE ../ros/ros-res.cnf
+
+#--- RETURN ERROR ---
+
+#.FIELD_ATTR
+ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
+
+#.FN_BODY ReturnError/parameter
+
+ gint len;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+ if (len)
+ proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
+ err_next_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ offset += tvb_reported_length_remaining(tvb, offset);
+#.END
+
+#.INCLUDE ../ros/ros-err.cnf
+
+#--- REJECT ---
+
+#.INCLUDE ../ros/ros-rej.cnf