At startup time the device server needs to know which devices it should create and export onto the network. This is done with the use of the static database and the device server's personal name. Each device server is started with at least one parameter - the personal name. The personal name is an ascii string which is used to identify device server in the database. The list of devices which should be created by a device server are stored in the static database as a resource with a special resource name device and attached to the device server executable name and its personal name. An example from the ESRF Transfer Line one demonstrates the principle -
AGPSds/TL1/device: TL1/PS-D/D
The above resource attaches the device TL1/PS-D/D to the device server AGPSds which is started with the personal name TL1.
It is the job to the device server to retrieve the list of device names from the resource database using the database function db_getdevlist(). The syntax for db_getdevlist is -
db_getdevlist(char *svr_name,char ***dev_list,long *n_devices,long *error)
This call returns a list of device names which the startup can then create and initialise.