-static struct type *atcb_type = NULL;
-static struct type *atcb_common_type = NULL;
-static struct type *atcb_ll_type = NULL;
-static struct type *atcb_call_type = NULL;
-static struct atcb_fieldnos atcb_fieldno;
+struct ada_tasks_pspace_data
+{
+ /* Nonzero if the data has been initialized. If set to zero,
+ it means that the data has either not been initialized, or
+ has potentially become stale. */
+ int initialized_p;
+
+ /* The ATCB record type. */
+ struct type *atcb_type;
+
+ /* The ATCB "Common" component type. */
+ struct type *atcb_common_type;
+
+ /* The type of the "ll" field, from the atcb_common_type. */
+ struct type *atcb_ll_type;
+
+ /* The type of the "call" field, from the atcb_common_type. */
+ struct type *atcb_call_type;
+
+ /* The index of various fields in the ATCB record and sub-records. */
+ struct atcb_fieldnos atcb_fieldno;
+};
+
+/* Key to our per-program-space data. */
+static const struct program_space_data *ada_tasks_pspace_data_handle;