DML hides much of Simics concepts to make the development of device models easier. For example, DML takes care of all module initialization, so nothing needs to be performed when a DML module is loaded or unloaded in Simics.
Each DML file mentioned in the module's Makefile defines a Simics class automatically. The class name is provide by the device statement at the beginning of the DML file:
Unless they are static, all data declared in the DML file are automatically defined as object-scope data, which means that DML defines automatically the class structure from which objects will be instantiated. For example:
data int link_id;
defines a link_id variable in the object structure.