Claims
- 1. A computer-implemented method for allocating memory resources to a platform-independent device driver in a computer system, comprising the steps of:a. generating a request for memory allocation to said device driver by instantiating a memory constraints object that reports the endianness of said device driver; b. receiving said request from said device driver using a bus manager configured to process requests for the allocation of memory using an abstract address space representation of said memory, said bus manager having an endianness independent of the endianness of said device driver; c. determining whether the endianness reported by said memory constraints object is consistent with the endianness of said bus manager; and d. changing said endianness reported by said memory constraints object to be consistent with the endianness of said bus manager when the endianness value of said device driver is not consistent with the endianness value of said bus manager.
- 2. The computer-implemented method of claim 1 wherein said 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.
- 3. The computer-implemented method of claim 2 further comprising the step of changing said second field if the endianness value of said device driver is not consistent with the endianness value of said bus manager.
- 4. The computer-implemented method of claim 2 further comprising the step of determining whether said bus manager is a platform manager.
- 5. The computer-implemented method of claim 4 further comprising the step of allocating memory having the endianness of said first field value if said bus manager is said platform manager.
- 6. The computer-implemented method of claim 4 further comprising the step of forwarding said request to the parent manager of said bus manager if said bus manger is not said platform manager.
- 7. A computer system configured to allocate memory to a platform-independent device driver, comprising:a. a platform-independent device driver configured to request memory allocations using a memory constraints object, said memory constraints object being configured to report the endianness of said device driver; b. a bus manager configured to process requests for the allocation of memory using an abstract address space representation of said memory, said bus manager having an endianness independent of the endianness of said device driver.
- 8. The computer system of claim 7 wherein said memory constraints object is configured to include 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.
- 9. The computer system of claim 8 further comprising a platform manager configured to allocate memory in response to said request for memory allocation from said device driver.
- 10. The computer system of claim 9 wherein said memory constraints object is configured to include 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.
- 11. The computer system of claim 9 further comprising a mechanism for determining whether said bus manager is said platform manager, wherein said bus manager is further configured to transform said memory constraints object if said bus manager has an endianness not consistent with the endianness of said device driver and said bus manager is not said platform manager.
- 12. A computer-readable medium containing computer-readable program code devices configured to cause a computer to execute the steps of:a. generating a platform-independent device driver and a bus manager; b. generating a request for memory allocation to said device driver by instantiating a memory constraints object that reports the endianness of said device driver; c. receiving said request from said device driver using a bus manager configured to process requests for the allocation of memory using an abstract address space representation of said memory, said bus manager having an endianness independent of the endianness of said device driver; d. determining whether the endianness reported by said memory constraints object is consistent with the endianness of said bus manager; and e. transforming said memory constraints object if the endianness value of said device driver is not consistent with the endianness value of said bus manager.
- 13. The computer-readable medium of claim 12 wherein said 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.
- 14. The computer-readable medium of claim 13 wherein said computer-readable program code devices are further configured to provide a platform manager configured to allocate memory in response to said request for memory allocation from said device driver.
- 15. The computer-readable medium of claim 14 wherein said 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.
- 16. The computer-readable medium of claim 15 wherein said computer-readable program code devices are further configured to determine whether said bus manager is said platform manager, wherein said bus manager is further configured to transform said memory constraints object if said bus manager has an endianness not consistent with the endianness of said device driver and said bus manager is not said platform manager.
- 17. A computer data signal on a carrier wave containing computer-readable program code instructions configured to cause a computer to execute the steps of:a. generating a platform-independent device driver and a bus manager; b. generating a request for memory allocation to said device driver by instantiating a memory constraints object having 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; c. receiving said request from said device driver using a bus manager configured to process requests for the allocation of memory using an abstract address space representation of said memory, said bus manager having an endianness independent of the endianness of said device driver; d. determining whether the endianness value in said first field of said memory constraints object is consistent with the endianness of said bus manager; and e. changing said endianness value of said first field to a value consistent with the endianness of said bus manager when the endianness value of said device driver is not consistent with the endianness value of said bus manager.
- 18. The computer-readable medium of claim 17 wherein said 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.
- 19. The computer-readable medium of claim 17 wherein said computer-readable program code devices are further configured to provide a platform manager configured to allocate memory in response to said request for memory allocation from said device driver.
- 20. The computer-readable medium of claim 19 wherein said 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.
- 21. The computer-readable medium of claim 20 wherein said computer-readable program code devices are further configured to determine whether said bus manager is said platform manager, wherein said bus manager is further configured to transform said memory constraints object if said bus manager has an endianness not consistent with the endianness of said device driver and said bus manager is not said platform manager.
1. CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to pending U.S. patent application Ser. No. 09/048,333, filed Mar. 26, 1998, which is incorporated herein by reference.
US Referenced Citations (7)
Foreign Referenced Citations (2)
Number |
Date |
Country |
0737917A2 |
Oct 1996 |
EP |
WO9744739 |
Nov 1997 |
WO |
Non-Patent Literature Citations (3)
Entry |
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. |