A device is a software specification for hardware control based on the Library structure. The structures of libraries and devices are so similar that the routine MakeLibrary() is used to construct both. Devices require the same initial four code vectors as a library, but must have two additional code vectors for beginning and terminating special device I/O commands. The I/O commands that devices are expected to perform, at minimum, are shown in the "Exec Device I/O" chapter. An example device is listed in the Amiga ROM Kernel Reference Manual: Devices.