Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration
Reexamination Certificate
1998-06-29
2001-03-13
Butler, Dennis M. (Department: 2787)
Electrical computers and digital processing systems: support
Digital data processing system initialization or configuration
C713S100000, C711S100000
Reexamination Certificate
active
06202146
ABSTRACT:
2. BACKGROUND OF THE INVENTION
2.1 The Field of the Invention
The present invention relates to the field of computing, and, more particularly, to computer operating system architecture. Still more particularly, the present invention relates to software, methods and systems that provide access to computer system resources for device drivers. The invention has applications in the fields of electronics and computer science.
2.2 Background
A device driver is software used to enable the exchange of data between a computer system (or “platform”) and a peripheral device that is coupled with the computer system. Usually, the peripheral device functions to provide data input and/or output (“I/O”) to the computer system. Examples of peripheral devices include keyboards, printers, scanners, network interface and graphics cards, modems, and monitors. In general, device drivers process data being to be sent to or retrieved from the peripheral device by the computer system so that the data is transferred in a format suitable for processing by the peripheral device or computer system.
The intimate association between the device driver and the hardware and software of the both the peripheral device and computer system to which the device is couple has required that device drivers be written in a highly platform-dependent manner. For example, device drivers generally must obtain memory space when called to perform their function. Typically, this requires the allocation of memory space that must be described by the driver. The driver must therefore have specific knowledge about the platform in order to make such a request. Thus, the same peripheral device, e.g., a printer, will require different version of device (printer) driver software for each platform.
The platform dependence of driver software thus increases the costs of developing platforms and peripherals, as manufactures of peripherals and computer operating systems must provide new versions and updates of driver software for new peripherals, new software platforms, and new operating system releases. Platform-dependent driver technology also increases the cost of maintaining computer systems, especially diverse computer systems deployed over networks, as system managers must obtain and install new and updated device drivers to enable user access to peripheral devices.
Therefore, it would be advantageous to provide device drivers that are platform-independent, i.e., drivers that do not require information about specific platforms as a prerequisite to operation. Such platform-independent device drivers would be capable of running on any platform, thus greatly reducing the costs and frustrations associated with device driver management.
3. SUMMARY OF THE INVENTION
The present invention meets these demands by providing a platform-independent device driver. As discussed below, the platform-independence of the device driver of the invention results from the use of abstract memory objects that allow for the description of memory without actual resource allocation by the computer system. By providing a general, platform-independent means and method for device drivers to request memory, the necessity for the inclusion of highly complex, platform-specific code to enable drivers to request memory is eliminated. More particularly, the present invention provides methods, apparatus, and software that provide endianness checking and provides allocated memory that has the appropriate endianness for the device driver.
In one aspect, the present invention provides a method for allocating memory resources to a platform-independent device driver. According to one embodiment, the method of the invention includes generating a memory allocation request from a platform-independent device driver. The driver instantiates a memory constraints object that is configured to report the endianness of the driver. The request is received by a bus manger that is configured to process memory allocation requests from the device driver. The bus manager has an endianness independent of the device driver. A determination is made as to whether the endianness reported by the memory constraints object is consistent with the bus manager's endianness. If endianness is inconsistent, then the memory constraints object is transformed to be consistent with the bus manager's endianness.
In another embodiment, the memory constraints object includes a first field that holds a value corresponding to the endianness of the device driver and a second field that holds a value indicating whether the endianness value of said first field has been swapped. In still another embodiment, the value of the second field is changed if the endianness value in the first field is not consistent with the endianness of the bus manager.
In another aspect, the present invention provides a computer system that is configured to allocate memory to a platform-independent device driver. In one embodiment, the computer system of the invention includes a platform-independent device driver configured to request memory allocations using a memory constraints object, the memory constraints object being configured to report the endianness of said device driver. The computer system also includes a bus manager that is configured to process requests for the allocation of memory using an abstract address space representation of the computer system's memory. The bus manager has an endianness independent of the endianness of said device driver.
In still another aspect, the present invention includes computer-readable media and computer data signals that encode computer-readable code devices and instructions configured to cause a computer to generate a platform-independent device driver and a bus manager. The device driver and bus manager each have endianness that is independent from the other. The device driver generates a request for an allocation of memory by instantiating a memory constraints obejct that reports the endianness of the driver. The request is received by the bus manager and a determination is made as to whether the endianness of the bus manager and device driver are consistent. The memory constraints object is transformed to report the endianness of the bus manager if the bus manager and device driver have inconsistent endianness.
These and other aspects and advantages of the present invention will become more apparent when the Description below is read in conjunction with the accompanying Drawings.
REFERENCES:
patent: 5309563 (1994-05-01), Farrand et al.
patent: 5404494 (1995-04-01), Garney
patent: 5701476 (1997-12-01), Fenger
patent: 5701483 (1997-12-01), Pun
patent: 5867690 (1999-02-01), Lee et al.
patent: 5898896 (1999-04-01), Kaiser et al.
patent: 5937170 (1999-08-01), Bedarida
patent: 0737917A2 (1996-10-01), None
patent: WO97/44739 (1997-11-01), None
Lemon et al., “An Object Oriented Device Driver Model,” IEEE, 1995, pp. 360-366.
Edward Tuggle, “Advanced Topics In Device Driver Design,” Proceedings of the Annual Embedded Systems Conference.
Panagiotis Kougiouris, “A Device Management Framework for an Object-Oriented Operating System,” Report of Department of Computer Science University of Illinois at Urbana-Champaign, May 1991, pp. 1-73.
Saulpaugh Thomas
Schmidt Jeffrey A.
Slaughter Gregory L.
Traversat Bernard
Beyer Weaver & Thomas LLP
Butler Dennis M.
Sun Microsystems Inc.
LandOfFree
Endianness checking for platform-independent device drivers does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Endianness checking for platform-independent device drivers, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Endianness checking for platform-independent device drivers will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2439943