Driver Control Interface Specification
The Driver Control Specification, more commonly referred to as the DCI or DCI4 spec, defines the interface between protocol modules and device driver modules in the RISC OS networking system. It also sets out the software contract between the Memory Buffer Manager (MBufManager) and its clients.
Document revision
The current DCI specification is DCI 4.07, published 04-Nov-2014.
Document status
The specification contains material which is copyright ANT Limited, and as such isn’t publicly available in common with the other ANT Limited intellectual property. Therefore, if you want to gain access to the document you need to enter into a Non Disclosure Agreement (NDA). Interested parties should contact RISC OS Open Limited to do this, but do check the questions below as it’s quite likely the information you require is already in the public domain.
- Do I need the specification to write a device driver?
- Can I make public the source code to something written having read the specification?
- What happens when my NDA expires?
- Are the constants from the specification available?
Do I need the specification to write a device driver?
Probably not, it’s often easier to use an existing driver as a basis because that will save time having to write the common parts and leave you with only the chip specific code to do. The following list describes a few of the common drivers:
- EtherB – uses the NIC slot, 1 controller, 2 interfaces per controller (1 real, 1 virtual)
- EtherCPSW – uses an internal bus, many controllers, 2 interfaces per controller (1 real, 1 virtual)
- EtherK – uses the PCI bus, many controllers, 1 interface per controller
- EtherY – uses the podule bus, many controllers, 1 interfaces per controller
- EtherUSB – uses the USB bus, many controllers, 1 interface per controller
In the unlikely event that one of those isn’t similar to your arrangement then you will need to request the full specification to develop a driver yourself from a fresh start.
Can I make public the source code to something written having read the specification?
Yes. Though bear in mind that other people may study your source code and use it as a reference, so it should correctly follow the specification before being released. RISC OS Open can offer to review the source code for you first and give advice on any areas which might need changing.
What happens when my NDA expires?
As with any NDA there is a termination clause set out in the agreement. Broadly speaking you must delete any copies of the specification that you have kept, or else renew your NDA to cover the next period of time over which you think you’ll need access.
Are the constants from the specification available?
The TCPIPLibs, which are the partner libraries for the RISC OS TCP/IP stack, contain a C language header file with all the constants and macros from the specification. The latest copy is available in the source tree to save you having to type them.
In the header file there’s a constant called DCIVERSION
which corresponds to the specification revision. This value is returned in various service calls and when registering with a protocol module to ensure that only modules with compatible versions are talking to eachother.