further runtime support for information object classes
diff --git a/skeletons/constr_CHOICE.h b/skeletons/constr_CHOICE.h
index 3c3b6ca..0aedcf7 100644
--- a/skeletons/constr_CHOICE.h
+++ b/skeletons/constr_CHOICE.h
@@ -28,7 +28,7 @@
     unsigned tag2el_count;
 
     /* Canonical ordering of CHOICE elements, for PER */
-    const int *canonical_order;
+    const unsigned *canonical_order;
 
     /*
      * Extensions-related stuff.
@@ -51,6 +51,22 @@
 per_type_encoder_f CHOICE_encode_uper;
 asn_outmost_tag_f CHOICE_outmost_tag;
 
+/*
+ * Return the 1-based choice variant presence index.
+ * Returns 0 in case of error.
+ */
+unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td,
+                                     const void *structure_ptr);
+
+/*
+ * Sets or resets the 1-based choice variant presence index.
+ * In case a previous index is not zero, the currently selected structure
+ * member is freed and zeroed-out first.
+ * Returns 0 on success and -1 on error.
+ */
+int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td,
+                                void *structure_ptr, unsigned present);
+
 #ifdef __cplusplus
 }
 #endif