[Rd] device drivers

Luke Tierney luke@goose.stat.umn.edu
Mon, 4 Dec 2000 11:14:03 -0600 (CST)


Unless you are maintaining a device driver for R, you can ignore this
note.

If you are, two issues have come up: the need to make sure there is a
slot available for a device before allocating it and, on unix at
least, the need to turn off interrupts during device initialization.

Currently typical device driver code starts the device something like this:

	if (!(dd = (DevDesc *) malloc(sizeof(DevDesc))))
	    return 0;
	...
	addDevice(dd);
	initDisplayList(dd);

To address these two problems in a device driver for R 1.2 this should
be changed to

    R_CheckDeviceAvailable();
    BEGIN_SUSPEND_INTERRUPTS {
	if (!(dd = (DevDesc *) malloc(sizeof(DevDesc))))
	    return 0;
        ...
	addDevice(dd);
	initDisplayList(dd);
    } END_SUSPEND_INTERRUPTS;

[Better yet, in case this changes before release, have a look at the
corresponding section of do_PS in the released sources.]

luke

-- 
Luke Tierney
University of Minnesota                      Phone:           612-625-7843
School of Statistics                         Fax:             612-624-8868
313 Ford Hall, 224 Church St. S.E.           email:      luke@stat.umn.edu
Minneapolis, MN 55455 USA                    WWW:  http://www.stat.umn.edu
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._