------------------------------------------------------------------------------ -- -- -- SVD Binding Generator -- -- -- -- Copyright (C) 2015-2020, AdaCore -- -- -- -- SVD2Ada is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 3, or (at your option) any later -- -- version. SVD2Ada is distributed in the hope that it will be useful, but -- -- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTA- -- -- BILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -- -- License for more details. You should have received a copy of the GNU -- -- General Public License distributed with SVD2Ada; see file COPYING3. If -- -- not, go to http://www.gnu.org/licenses for a complete copy of the -- -- license. -- -- -- ------------------------------------------------------------------------------ with Ada.Containers.Vectors; with Ada.Strings.Unbounded; use Ada.Strings; with DOM.Core; with Ada_Gen; with Base_Types; use Base_Types; with Base_Types.Register_Properties; use Base_Types.Register_Properties; limited with Descriptors.Register; with Descriptors.Enumerate; -- Decodes the elements of the SVD file. package Descriptors.Field is type Field_T is record Name : Unbounded.Unbounded_String; Description : Unbounded.Unbounded_String; LSB : Natural; Size : Natural; Acc : Access_Type; Mod_Write_Values : Modified_Write_Values_Type := Modify; Read_Action : Read_Action_Type := Undefined_Read_Action; Enums : Descriptors.Enumerate.Enumerate_Vectors.Vector; end record; overriding function "=" (F1, F2 : Field_T) return Boolean; Null_Field : constant Field_T := (Unbounded.Null_Unbounded_String, Unbounded.Null_Unbounded_String, 0, 0, Read_Write, others => <>); package Field_Vectors is new Ada.Containers.Vectors (Positive, Field_T); function Read_Field (Elt : DOM.Core.Element; Vec : Field_Vectors.Vector; Default_Access : Access_Type; Default_Read : Read_Action_Type) return Field_T; procedure Dump (Spec : in out Ada_Gen.Ada_Spec; Reg : Descriptors.Register.Register_Access; Rec : in out Ada_Gen.Ada_Type_Record; Reg_Fields : Field_Vectors.Vector; Properties : Register_Properties_T); end Descriptors.Field;