Communication interface protocol
First Claim
1. A method of performing a peripheral device job in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, comprising the steps of:
- the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices and obtaining in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the steps of issuing and obtaining including the steps ofthe driver issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement;
in response to receipt of the first call, the interfacing arrangement allocating a data structure to the driver;
in response to the allocation, the driver storing in the data structure first information defining a peripheral device job and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment;
the driver issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement;
in response to receipt of the second call, the interfacing arrangement executing, in cooperation with the peripheral device, the job defined by the first information;
upon completion of execution of the job, the interfacing arrangement issuing to the driver the call specified by the second information;
following the receipt of the call from the interfacing arrangement, the driver issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; and
in response to receipt of the third call, the interfacing arrangement deallocating the data structure from the driver.
2 Assignments
0 Petitions
Accused Products
Abstract
In a computer system (FIG. 1), targets (13) comprising peripheral devices (18) and target controllers (17) are connected to the host system by means of a device bus (12), illustratively the standard Small Computer System Interface (SCSI) bus. The device bus is connected to the host computer'"'"'s central control (9) by means of a host adapter (10) and bus (11). The host adapter is controlled from the central control by a host adapter driver (23), while the targets are controlled by target drivers (22). Host adapter driver 23 provides to target drivers a standardized interface (24) for communicating with the targets through the host adapter driver, which interface is optimized to support a simple yet flexible target driver design, and which makes target drivers independent of differences in structure and operation of host computers and hence portable between computers having the same device buses.
98 Citations
46 Claims
-
1. A method of performing a peripheral device job in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, comprising the steps of:
-
the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices and obtaining in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the steps of issuing and obtaining including the steps of the driver issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; in response to receipt of the first call, the interfacing arrangement allocating a data structure to the driver; in response to the allocation, the driver storing in the data structure first information defining a peripheral device job and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; the driver issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; in response to receipt of the second call, the interfacing arrangement executing, in cooperation with the peripheral device, the job defined by the first information; upon completion of execution of the job, the interfacing arrangement issuing to the driver the call specified by the second information; following the receipt of the call from the interfacing arrangement, the driver issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; and in response to receipt of the third call, the interfacing arrangement deallocating the data structure from the driver. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of performing a peripheral device job in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, comprising the steps of:
-
the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices and obtaining in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the steps of issuing and obtaining including the steps of in response to receipt from a requester of a request for a peripheral device job, the driver using a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; in response to receipt of the first call, the interfacing arrangement allocating a data structure to the driver for the job; in response to receipt of the first call, the interfacing arrangement allocating a data structure to the driver for the job; in response to the allocation, the driver storing in the data structure first information defining the requested job including addressing information, and second information specifying a call to be made upon completion of execution of the requested job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; the driver issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; in response to receipt of the second call, the interfacing arrangement storing in the data structure information for translating the addressing information, the information for translating being dependent upon the defined operating environment; the driver issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; in response to receipt of the third call, the interfacing arrangement executing, in cooperation with a peripheral device, the job defined by the first information; the interfacing arrangement storing in the data structure third information concerning execution of the job; upon completion of execution of the job, the interfacing arrangement issuing to the driver the call specified by the second information; following receipt of the call from the interfacing arrangement, the driver examining the third information to determine whether job execution was successful; the driver providing to the requester notice of one of successful and unsuccessful job completion as response to the job request; following receipt of the call from the interfacing arrangement, the driver issuing a fourth system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; and in response to receipt of the fourth call, the interfacing arrangement deallocating the data structure from the driver and the job. - View Dependent Claims (7, 8)
-
-
9. A method of performing a peripheral device job in cooperation with a device driver, in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the device driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the method comprising the steps of:
-
any one of the interfacing arrangements providing to the driver identical services in any one of a plurality of systems irrespective of the operating environment in which the one arrangement provides the services, in response to the driver issuing function calls that are identical in any one of the plurality of systems to any one of the plurality of arrangements for any one of the devices, thereby making the driver portable between the systems of the plurality of systems, the step of providing including the steps of in response to receipt of a first system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement allocating a data structure to the driver; in response to receipt of a second system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement executing, cooperatively with the device, a peripheral device job defined by information stored in the data structure by the driver, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; upon completion of execution of the job, the interfacing arrangement issuing to the driver a call specified by information stored in the data structure by the driver; and in response to receipt of a third system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement deallocating the data structure from the driver. - View Dependent Claims (10, 11, 12)
-
-
13. A method of performing a peripheral device job in cooperation with a device driver, in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the method comprising the steps of:
-
any one of the interfacing arrangement providing to the driver identical services in any one of a plurality of systems irrespective of the operating environment in which the one arrangement provides the services, in response to the driver issuing function calls that are identical in any one of the plurality of systems to any one of the plurality of arrangements for any one of the devices, thereby making the driver portable between the systems of the plurality of systems, the step of providing including the steps of in response to receipt of a first system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement allocating a data structure to the driver for a peripheral device job; in response to receipt of a second system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement storing in the allocated data structure information for translating addressing information defining the job and stored in the data structure by the driver, the information for translating being dependent upon the defined operating environment, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; in response to receipt of a third system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement executing, cooperatively with a device, the job defined by information including the addressing information stored in the data structure by the driver; the interfacing arrangement storing in the data structure information concerning execution of the job, for use by the driver in determining whether execution of the job was successful; upon completion of execution of the job, the interfacing arrangement issuing to the driver a call specified by information stored in the data structure by the driver; and in response to receipt of a fourth system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement deallocating the data structure from the job and the driver. - View Dependent Claims (14, 15)
-
-
16. A method, for a device driver, of performing a peripheral device job in cooperation with a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the device driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the method comprising the steps of:
-
the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the step of issuing including the steps of the driver issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for allocation of a data structure for a peripheral device job; in response to allocation of a data structured, the driver storing in the data structure first information defining the job and second information specifying a call to be made upon completion of execution of the job, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; the driver issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for execution, in cooperation with the peripheral device, of the job defined by the first information; and following receipt from the interfacing arrangement of the call specified by the second information, the driver issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for deallocation from the job of the data structure. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method, for a device driver, of performing a peripheral device job in cooperation with a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the device driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the method comprising the steps of:
-
the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the step of issuing including the steps of in response to receipt from a requester of a request for a peripheral device job, the driver issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for allocation of a data structure to the driver for the job; in response to allocation of a data structure, the driver storing in the data structure first information defining the job including addressing information, and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; the driver issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for storing in the data structure information for translating the addressing information, the information for translating being dependent upon the defined operating environment; the driver issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for execution, in cooperation with a peripheral device, of the job defined by the first information; following receipt from the interfacing arrangement of the call specified by the second information, the driver examining information concerning execution of the job stored in the data structure by the interfacing arrangement, to determine whether job execution was successful; the driver providing to the requester notice of one of successful and unsuccessful job completion as response to the job request; and following receipt from the interfacing arrangement of the call specified by the second information, the driver issued a fourth system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for deallocation of the data structure from the driver and the job. - View Dependent Claims (22, 23)
-
-
24. An apparatus for performing a peripheral device job in any one of a plurality of different operating environments, the apparatus including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, characterized in that:
-
the driver issues identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby being portable between the systems of the plurality of systems, and means for issuing a first-system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for data structure allocation; means, responsive to allocation of a data structure, for storing in the data structure first information defining the peripheral device job, and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; means for issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for job execution, and means, responsive to receipt from the interfacing arrangement of the call specified by the second information, for issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for data structure deallocation; and any one of the interfacing arrangements provides to the driver identical services in any one of the systems in response to the function calls issued by the driver irrespective of the operating environment in which the one arrangement provides the services, and the one interfacing arrangement comprises means, responsive to the first call, for allocating a data structure to the driver for the job, means, responsive to the second call, for executing, cooperatively with the device, the peripheral device job defined by the first information, means for issuing to the driver the call specified by the second information, upon completion of execution of the job, and means, responsive to the third call, for deallocating the data structure from the driver and the job. - View Dependent Claims (25, 26)
-
-
27. An apparatus for performing a peripheral device job in any one of a plurality of different operating environments, the apparatus including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, characterized in that:
-
the driver issues identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby being portable between the systems of the plurality of systems, and comprises means, responsive to receipt from a requester of a request for a peripheral device job, for issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for data structure allocation for the job, means, responsive to allocation of a data structure for the job, for storing in the data structure first information defining the peripheral job and including addressing information, and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment, means for issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for providing address translation information, means for issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for job execution, means, responsive to receipt from the interfacing arrangement of the call specified by the second information, for examining information concerning execution of the job and stored in the data structure by the interfacing means, to determine success of the execution, means, cooperative with the examining means, for providing notice of one of successful and unsuccessful job completion to the requester in response to the job request, and means, responsive to receipt from the interfacing arrangement of the call specified by the second information, for issuing a fourth system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for data structure deallocation; and any one of the interfacing arrangements provides to the driver identical services in any one of the systems in response to the function calls issued by the driver irrespective of the operating environment in which the one arrangement provides the services, and the one interfacing arrangement comprises means, responsive to the first call, for allocating a data structure to the driver for the job, means, responsive to the second call, for storing in the data structure information for translating the addressing information, the information for translating being dependent upon the defined operating environment; means, responsive to the third call, for executing, cooperatively with a device, the job defined by the first information, means for storing in the data structure information concerning execution of the job, means for issuing to the driver the call specified by the second information, upon completion of execution of the job, and means, responsive to the fourth call, for deallocating the data structure from the driver and the job. - View Dependent Claims (28)
-
-
29. A device driver for controlling a device in an apparatus for performing a peripheral device job, the apparatus defining any one of a plurality of different operating environments and including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, characterized in that:
-
the driver issues identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby being portable between the systems of the plurality of systems, and comprises means for issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for allocation of a data structure for a peripheral device job; means, responsive to allocation of a data structure for the job, for storing in the data structure first information defining the peripheral device job and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; means for issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for execution, in cooperation with the peripheral device, of the job defined by the first information; and means, responsive to receipt from the interfacing arrangement of the call specified by the second information, for issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for deallocation from the driver of the job'"'"'s data structure. - View Dependent Claims (30, 31)
-
-
32. A device driver for controlling a device in an apparatus for performing a peripheral device job, the apparatus defining any one of a plurality of different operating environments and including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, characterized in that:
-
the driver issues identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby being portable between the systems of the plurality of systems, and comprises means, responsive to receipt from a requester of a request for a peripheral device job, for issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for data structure allocation for the job; means, responsive to allocation of a data structure for the job, for storing in the data structure first information defining the peripheral job and including addressing information, and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; means for issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for storing in the data structure information for translating the addressing information, the information for translating being dependent upon the defined operating environment; means for issuing a third system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for execution, in cooperation with a peripheral device, of the job defined by the first information; means, responsive to receipt from the interfacing arrangement of the call specified by the second information, for examining information concerning execution of the job and stored in the data structure by the interfacing means, to determine success of the execution; means, cooperative with the examining means, for providing notice of one of successful and unsuccessful job completion to the requester in response to the job request; and means, responsive to receipt from the interfacing arrangement of the call specified by the second information, for issuing a fourth system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for deallocation from the driver and the job of the job'"'"'s data structure. - View Dependent Claims (33, 34, 35)
-
-
36. An arrangement for interfacing a device driver to a peripheral device in a system for performing a peripheral device job and defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices, the device driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and the interfacing arrangement being any one of a plurality of different interfacing arrangements each for interfacing the driver to any one of the peripheral devices, by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the one interfacing arrangement characterized in that:
-
any one of the interfacing arrangements provides to the driver identical services in any of a plurality of systems irrespective of the operating environment in which the one arrangement provides the services, in response to the driver issuing function calls that are identical in any one of the plurality of systems to any one of the plurality of arrangements for any one of the devices, thereby making the driver portable between the systems of the plurality of systems, the one interfacing arrangement comprising means, responsive to receipt of a first system-independent, interfacing arrangement-independent, and device-independent call from the device driver, for allocating a data structure to the driver; means, responsive to receipt of a second system-independent, interfacing arrangement-independent, and device-independent call from the device driver, for executing, cooperatively with a device, a peripheral device job defined by information stored in the data structure by the driver, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; means for issuing to the driver a call specified by information stored in the data structure by the driver, upon completion of execution of the job; and means, responsive to receipt of a third system-independent, interfacing arrangement-independent, and device-independent call from the driver, for deallocating the data structure from the driver. - View Dependent Claims (37, 38)
-
-
39. An arrangement for interfacing a device driver to a peripheral device in a system for performing a peripheral device job and defining any one of a plurality of different operating environments, the system including any one of a plurality of a plurality of peripheral devices, the device driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and the interfacing arrangement being any one of a plurality of different interfacing arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the one interfacing arrangement characterized in that:
-
any one of the interfacing arrangements provides to the driver identical services in any of a plurality of systems irrespective of the operating environment in which the one arrangement provides the services, in response to the driver issuing function calls that are identical in anyone of the plurality of systems to any one of the plurality of arrangements for any one of the devices, thereby making the driver portable between the systems of the plurality of systems, the one interfacing arrangement comprising means, responsive to receipt of a first system-independent, interfacing arrangement-independent, and device-independent call from the driver, for allocating a data structure to the driver for a peripheral device job; means, responsive to receipt of a second system-independent, interfacing arrangement-independent, and device-independent call from the driverfor storing in the allocated data structure information for translating addressing information defining the job and stored in the data structure by the driver, the information for translating being dependent upon the defined operating environment, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; means, responsive to receipt of a third system-independent, interfacing arrangement-independent, and device-independent call from the driver, for executing, cooperatively with a device, the job defined by information stored in the data structure by the driver; means for storing in the data structure information concerning execution of the job, for use by the driver; means for issuing to the driver a call specified by information stored in the data structure by the driver, upon completion of execution of the job; and means, responsive to receipt of a fourth system-independent, interfacing arrangement-independent, and device-independent call from the driver, for deallocating the data structure from the driver and the job. - View Dependent Claims (40)
-
-
41. A method of performing a peripheral device job in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, comprising the steps of:
-
the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices and obtaining in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the steps of issuing and obtaining including the steps of the driver issuing a first system-independent, interfacing arrangement-independent, and the device-independent call to the interfacing arrangement; in response to receipt of the first call, the interfacing arrangement allocating a data structure to the driver; in response to the allocation, the driver storing in the data structure first information defining a peripheral device job and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; the driver issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement; in response to receipt of the second call, the interfacing arrangement executing, in cooperating with the peripheral device, the job defined by the first information; and upon completion of execution of the job, the interfacing arrangement issuing to the driver the call specified by the second information.
-
-
42. A method of performing a peripheral device job in cooperation with a device-driver, in a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the device driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the method comprising the steps of:
-
any one of the interfacing arrangements providing to the driver identical services in any one of a plurality of systems irrespective of the operating environment in which the one arrangement provides the services, in response to the driver issuing function calls that are identical in any one of the plurality of systems to any one of the plurality of arrangements for any one of the devices, thereby making the driver portable between the systems of the plurality of systems, the step of providing including the steps of in response to receipt of a first system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement allocating a data structure to the driver; in response to receipt of a second system-independent, interfacing arrangement-independent, and device-independent call from the driver, the interfacing arrangement executing, cooperatively with the device, a peripheral device job defined by information stored in the data structure by the driver, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; and upon completion of execution of the job, the interfacing arrangement issuing to the driver a call specified by information stored in the data structure by the driver.
-
-
43. A method, for a device driver, of performing a peripheral device job in cooperation with a system defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the device driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the method comprising the steps of:
-
the driver issuing identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the operating environment in which the one arrangement provides the services, thereby making the driver portable between the systems of the plurality of systems, the step of issuing including the steps of the driver issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for allocation of a data structure for a peripheral device job; in response to allocation of a data structure, the driver storing in the data structure first information defining the job and second information specifying a call to be made upon completion of execution of the job, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; the driver issuing a second system-independent, interfacing arrangement independent, and device-independent call to the interfacing arrangement for execution, in cooperation with the peripheral device, of the job defined by the first information; and following execution of the job, the driver receiving from the interfacing arrangement the call specified by the second information.
-
-
44. An apparatus for performing a peripheral device job in any one of a plurality of different operating environments, the apparatus including any one of a plurality of peripheral devices, a driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, characterized in that:
-
the driver issues identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby being portable between the systems of the plurality of systems, and comprises means for issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for data structure allocation, means, responsive to allocation of a data structure, for storing in the data structure first information defining the peripheral device job, and second information specifying a call to be upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment, and means for issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for job execution; and any one of the interfacing arrangements provides to the driver identical services in any one of the systems in response to the function calls issued by the driver irrespective of the operating environment in which the one arrangement provides the services, and the one interfacing arrangement comprises means, responsive to the first call, for allocating a data structure to the driver for the job, means, responsive to the second call, for executing, cooperatively with the device, the peripheral device job defined by the first information, and means for issuing to the driver the call specified by the second information, upon completion of execution of the job.
-
-
45. A device driver for controlling a device in an apparatus for performing a peripheral device job, the apparatus defining any one of a plurality of different operating environments and including any one of a plurality of peripheral devices controllable by control communications issued to the one device by the driver and any one of a plurality of different arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, characterized in that:
-
the driver issues identical function calls in any one of a plurality of systems to any one of the plurality of arrangements for any one of the plurality of devices to obtain in response identical services in any one of the systems from any one of the arrangements irrespective of the manner or the operating environment in which the one arrangement provides the services, thereby being portable between the systems of the plurality of systems, and comprises means for issuing a first system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for allocation of a data structure for a peripheral device job; means, responsive to allocation of a data structure for the job, for storing in the data structure first information defining the peripheral device job and second information specifying a call to be made upon completion of execution of the job, the first and the second information and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments i the included arrangement or defined environment; and means for issuing a second system-independent, interfacing arrangement-independent, and device-independent call to the interfacing arrangement for execution, in cooperation with the peripheral device, of the job defined by the first information.
-
-
46. An arrangement for interfacing a device driver to a peripheral device in a system for performing a peripheral device job and defining any one of a plurality of different operating environments, the system including any one of a plurality of peripheral devices, the device driver for controlling the one peripheral device by issuing control communications to the one peripheral device, and the interfacing arrangement being any one of a plurality of different interfacing arrangements each for interfacing the driver to any one of the peripheral devices by conveying the control communications between the driver and the one device either through a different operating environment or through the same operating environment in a different manner, the one interfacing arrangement characterized in that:
-
any one of the interfacing arrangements provides to the driver identical services in any of a plurality of systems irrespective of the operating environment in which the one arrangement provides the services, in response to the driver issuing function calls that are identical in any one of the plurality of systems to any one of the plurality of arrangements for any one of the devices, thereby making the driver portable between the systems of the plurality of systems, the one interfacing arrangement comprising means, responsive to receipt of a first system-independent, interfacing arrangement-independent, and device-independent call from the device driver, for allocating a data structure to the driver; means, responsive to receipt of a second system-independent, interfacing arrangement-independent, and device-independent call from the device driver, for executing, cooperatively with a device, a peripheral device job defined by information stored in the data structure by the driver, the information stored by the driver and manner of storage thereof in the data structure being identical irrespective of either which one of the plurality of interfacing arrangements or which one of the plurality of operating environments is the included arrangement or defined environment; and means for issuing to the driver a call specified by information stored in the data structure by the driver, upon completion of execution of the job.
-
Specification