# Device Registration

`devbuiltins.h`/`devbuiltins.cpp` is the single registration point for every builtin (compiled-in, non-OSDI) device type. `createBuiltins(devices)` instantiates and appends one instance of each: `BuiltinVSource` ("vsource"), `BuiltinISource` ("isource"), `BuiltinVccs` ("vccs"), `BuiltinVcvs` ("vcvs"), `BuiltinCccs` ("cccs"), `BuiltinCcvs` ("ccvs"), and `BuiltinMutual` ("mutual") - see [Independent Sources](devvisrc.md) and [Controlled Sources](devctlsrc.md).

Unlike an OSDI device (which a netlist's own `load` directive brings in from a compiled shared library, see [OSDI Files](osdifile.md)), a builtin device type is always available: it is compiled directly into the simulator, so every circuit's `Device` list starts out with these seven regardless of what the netlist itself loads. `createBuiltins()` is what a `Circuit` (or whatever assembles the initial device list) calls once to populate that starting set.
