Patent US5390301A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5390301A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for communicating device-specific information between a device driver and an operating system in a computer system

Assignee: Wistron Corp
•
Filing: 1992-08-11
•
Granted: 1995-02-14
•
Expires: 2012-08-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of communication between a device driver and a system kernel uses a standardized generic data structure which facilitates communication of numeric limitations as well as flags. In addition, device-specific extensions may be added to the data structure to permit communication of new types of information concerning devices without sacrificing standardization. Device drivers store device capability information in the data structures during system startup, and the system kernel reads the information prior to performing an I/O request.

Inventors

  • 👤 Steve D. Scherf

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 19:20
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/10; G06F13/102

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 214 words
A method of communicating device capability information of a hardware device, each hardware device having a major number, in a computer system from a device driver which directly controls the device to a kernel of an operating system, said device driver interacting with said hardware device through a plurality of software and hardware device drivers, comprising the steps of: obtaining, by the device driver, the device capability information for each device the device driver controls by at least one of the following: a) obtaining the device capability information from itself, if it has the information, or if not, b) querying successively lower-level software and hardware device drivers until the device capability information is obtained or until it cannot query any lower, and if the device capability information is not yet obtained, c) choosing a predetermined safe value; storing, by the device driver, the device capability information and at least a first pointer indexed by the device's major number in a data structure memory of the computer system; and prior to the operating system performing an input or output operation using the device, obtaining, by the kernel of the operating system, the device capability information from the data structure memory by accessing the data structure memory using said pointer indexed by the device's major number.
Claim 2
Independent Claim 214 words
A method of communicating device capability information of a hardware device, each hardware device having a major number, in a computer system from a device driver which directly controls the device to a kernel of an operating system, said device driver interacting with said hardware device through a plurality of software and hardware device drivers, comprising the steps of: obtaining, by the device driver, the device capability information for each device the device driver controls by at least one of the following: a) obtaining the device capability information from itself, if it has the information, or if not, b) querying successively lower-level software and hardware device drivers until the device capability information is obtained or until it cannot query any lower, and if the device capability information is not yet obtained, c) choosing a predetermined safe value; storing, by the device driver, the device capability information and at least a first pointer indexed by the device's major number in a data structure memory of the computer system; and prior to the operating system performing an input or output operation using the device, obtaining, by the kernel of the operating system, the device capability information from the data structure memory by accessing the data structure memory using said pointer indexed by the device's major number.
Claim 3
Dependent Claim 22 words
The method of claim 1, wherein the step of storing the device capability information is performed during startup of the computer system.
Claim 4
Dependent Claim 100 words
The method of claim 1, wherein said computer system includes a generic data structure memory having a plurality of predefined fields, and wherein the step of storing the device capability information comprises the steps of: storing, by said device driver, a plurality of items of information in said plurality of predefined fields of said generic data structure; and responsive to the need for additional device-specific information, storing, by said device driver, the additional device-specific information in an extended device-specific structure having an address in the generic data structure, and storing a pointer to the address in the generic data structure.
Claim 5
Dependent Claim 67 words
The method of claim 1, wherein the step of storing the device capability information comprises the steps of: allocating, by said device driver, a data structure having a plurality of fields and having an address in memory; placing, by said device driver, the device capability information in the data structure; and storing, by the device driver, the address of the data structure in said data structure memory.
Claim 6
Dependent Claim 26 words
The method of claim 4, wherein the step of obtaining the device capability information is performed prior to an input or output operation using the device.
Claim 7
Dependent Claim 51 words
The method according to claim 1 further comprising the steps of: building, by the kernel, an I/O request according to the device capability information obtained by the kernel; and passing the I/O request from the kernel to the device driver so that the device driver may perform the requested I/O operation.
Claim 8
Dependent Claim 15 words
The method according to claim 1 wherein the operating system is a UNIX operating system.
Claim 9
Independent Claim 188 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, said device driver interacting with said hardware device through a plurality of software and hardware device drivers, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver the address of the data structure in a table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the step of storing the device capability information in the data structure comprises the steps of, for each field of the data structure: querying, by the device driver, successively lower level software and hardware device drivers for information relevant to the field; and responsive to the information having been supplied, placing, by the device driver, the information in the field, otherwise placing a predefined safe value in the field.
Claim 10
Independent Claim 188 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, said device driver interacting with said hardware device through a plurality of software and hardware device drivers, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver the address of the data structure in a table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the step of storing the device capability information in the data structure comprises the steps of, for each field of the data structure: querying, by the device driver, successively lower level software and hardware device drivers for information relevant to the field; and responsive to the information having been supplied, placing, by the device driver, the information in the field, otherwise placing a predefined safe value in the field.
Claim 11
Dependent Claim 33 words
The method of claim 8, wherein the device driver has a plurality of levels, and wherein one of the levels comprises a hardware level program and the remaining levels comprise software level programs.
Claim 12
Dependent Claim 133 words
The method of claim 9, further comprising the following steps, performed after querying the device driver for information and responsive to the queried device driver failing to supply the information: determining, by the computer system, whether the level of device driver immediately below the last-queried level is a software level or a hardware level; responsive to the determining step indicating a software level, determining, by the computer system, whether the software level may be queried; responsive to the software level being able to be queried, querying, by the computer system, the software level for information relevant to the field; and responsive to the software level being able to be queried and failing to supply the information, repeating, by the computer system, the preceding three steps for successively lower levels of the device driver.
Claim 13
Dependent Claim 57 words
The method of claim 10, further comprising the following steps, performed responsive to the determining step indicating a hardware level: determining, by the computer system, whether the hardware level may be queried; and responsive to the hardware level being able to be queried, querying, by the computer system, the hardware level for information relevant to the field.
Claim 14
Independent Claim 158 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a hashing function, wherein the kernel has a hash function table, and wherein the step of storing the address of the data structure comprises the steps of: inserting a pointer to the hashing function in the hash function table; and inserting a pointer to the data structure in the hash table.
Claim 15
Independent Claim 158 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a hashing function, wherein the kernel has a hash function table, and wherein the step of storing the address of the data structure comprises the steps of: inserting a pointer to the hashing function in the hash function table; and inserting a pointer to the data structure in the hash table.
Claim 16
Dependent Claim 70 words
The method of claim 12 wherein the hardware device has a major number and a minor number, wherein the step of inserting a pointer to the hashing function includes the step of indexing the I/O hash function table by the major number, and wherein the step of inserting a pointer to the data structure includes the step of indexing the hash table by the major number and the minor number.
Claim 17
Independent Claim 221 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a block hashing function if the device is a block device and a character hashing function if the device is a character device, wherein the kernel has a block I/O hash function table and a character I/O hash function table, and wherein the step of storing the address of the data structure comprises the steps of: responsive to the device being a block device, inserting a pointer to the block hashing function in the block I/O hash function table; responsive to the device being a character device, inserting a pointer to the character hashing function in the character I/O hash function table; and inserting a pointer to the data structure in the hash table.
Claim 18
Independent Claim 221 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a block hashing function if the device is a block device and a character hashing function if the device is a character device, wherein the kernel has a block I/O hash function table and a character I/O hash function table, and wherein the step of storing the address of the data structure comprises the steps of: responsive to the device being a block device, inserting a pointer to the block hashing function in the block I/O hash function table; responsive to the device being a character device, inserting a pointer to the character hashing function in the character I/O hash function table; and inserting a pointer to the data structure in the hash table.
Claim 19
Dependent Claim 99 words
The method of claim 14 wherein the hardware device has a major number and a minor number, wherein the step of inserting a pointer to the block hashing function includes the step of indexing the block I/O hash function table by the major number, wherein the step of inserting a pointer to the character hashing function includes the step of indexing the character I/O hash function table by the major number, and wherein the step of inserting a pointer to the data structure includes the step of indexing the hash table by the major number and the minor number.
Claim 20
Independent Claim 189 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, including processing the device capability information, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a hashing function, wherein the kernel has a hash function table, and wherein the step of obtaining the device capability information comprises the steps of: extracting a pointer to the hashing function from the hash function table; responsive to the pointer having a null value, using a predefined safe generic data structure, otherwise executing the hashing function to obtain the data structure; and reading the contents of the data structure to obtain the device capability information.
Claim 21
Independent Claim 189 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, including processing the device capability information, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a hashing function, wherein the kernel has a hash function table, and wherein the step of obtaining the device capability information comprises the steps of: extracting a pointer to the hashing function from the hash function table; responsive to the pointer having a null value, using a predefined safe generic data structure, otherwise executing the hashing function to obtain the data structure; and reading the contents of the data structure to obtain the device capability information.
Claim 22
Dependent Claim 23 words
The method of claim 16, further comprising the step of building, by the kernel, an I/O request according to the device capability information.
Claim 23
Dependent Claim 67 words
The method of claim 16 wherein the hardware device has a major number and a minor number, wherein the step of extracting a pointer to the hashing function includes the step of indexing the I/O hash function table by the major number, and wherein the step of executing the hashing function includes the step of indexing the hash table by the major number and the minor number.
Claim 24
Dependent Claim 23 words
The method of claim 18, further comprising the step of building, by the kernel, an I/O request according to the device capability information.
Claim 25
Independent Claim 240 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a block hashing function if the device is a block device and a character hashing function if the device is a character device, wherein the kernel has a block I/O hash function table and a character I/O hash function table, and wherein the step of obtaining the device capability information comprises the steps of: responsive to the device being a block device, extracting a pointer to the block hashing function from the block I/O hash function table, otherwise extracting a pointer to the character hashing function from the character I/O hash function table; responsive to the extracted pointer having a null value, using a predefined safe generic data structure, otherwise executing the hashing function to obtain the data structure; and reading the contents of the data structure to obtain the device capability information.
Claim 26
Independent Claim 240 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, comprising the steps of: storing, by the device driver, the device capability information in a plurality of fields of a data structure memory in the computing system, the data structure having an address; storing, by the device driver, the address of the data structure in a hash table; prior to performing an input or output operation using the device, obtaining, by the kernel, the device capability information from the memory data structure; wherein the device driver has a block hashing function if the device is a block device and a character hashing function if the device is a character device, wherein the kernel has a block I/O hash function table and a character I/O hash function table, and wherein the step of obtaining the device capability information comprises the steps of: responsive to the device being a block device, extracting a pointer to the block hashing function from the block I/O hash function table, otherwise extracting a pointer to the character hashing function from the character I/O hash function table; responsive to the extracted pointer having a null value, using a predefined safe generic data structure, otherwise executing the hashing function to obtain the data structure; and reading the contents of the data structure to obtain the device capability information.
Claim 27
Dependent Claim 23 words
The method of claim 20, further comprising the step of building, by the kernel, an I/O request according to the device capability information.
Claim 28
Dependent Claim 96 words
The method of claim 20 wherein the hardware device has a major number and a minor number, wherein the step of extracting a pointer to the block hashing function includes the step of indexing the block I/O hash function table by the major number, wherein the step of extracting a pointer to the character hashing function includes the step of indexing the character I/O hash function table by the major number and wherein the step of executing the hashing function includes the step of indexing the hash table by the major number and the minor number.
Claim 29
Dependent Claim 23 words
The method of claim 22, further comprising the step of building, by the kernel, an I/O request according to the device capability information.
Claim 30
Independent Claim 233 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, including processing the device capability information, wherein: the device has a major number, a minor number, and the device driver has a plurality of levels; one of the levels comprises a hardware level program and the remaining levels comprise software level programs; the device driver has a hash table indexed by the major number and the minor number, a block hashing function if the device is a block device, and a character hashing function if the device is a character device; and the kernel has a block I/O hash function table indexed by the major number and a character I/O hash function table indexed by the major number; the method comprising the steps of: during startup of the computer system: allocating, by the computer system, a data structure memory having a plurality of fields and having an address; storing, by the device driver, the device capability information in the data structure; and storing, by the device driver, the address of the data structure in a table; and prior to an input or output operation using the device: obtaining, by the kernel, the device capability information from the data structure; and building, by the kernel, an I/O request according to the device capability information.
Claim 31
Independent Claim 233 words
A method of communicating device capability information of a hardware device in a computer system from a device driver which controls the device to a kernel of an operating system, including processing the device capability information, wherein: the device has a major number, a minor number, and the device driver has a plurality of levels; one of the levels comprises a hardware level program and the remaining levels comprise software level programs; the device driver has a hash table indexed by the major number and the minor number, a block hashing function if the device is a block device, and a character hashing function if the device is a character device; and the kernel has a block I/O hash function table indexed by the major number and a character I/O hash function table indexed by the major number; the method comprising the steps of: during startup of the computer system: allocating, by the computer system, a data structure memory having a plurality of fields and having an address; storing, by the device driver, the device capability information in the data structure; and storing, by the device driver, the address of the data structure in a table; and prior to an input or output operation using the device: obtaining, by the kernel, the device capability information from the data structure; and building, by the kernel, an I/O request according to the device capability information.
Claim 32
Dependent Claim 197 words
The method of claim 24, wherein the step of storing the device capability information in the data structure comprises the steps of, for each field in the data structure: querying an upper level of the device driver for information relevant to the field; responsive to the device driver level failing to supply the information: determining whether the level of device driver immediately below the last-queried level is a software level or a hardware level; responsive to the determining step indicating a software level, determining whether the software level may be queried; responsive to the software level being able to be queried, querying the software level for information relevant to the field; responsive to the software level being able to be queried and failing to supply the information, repeating the preceding three steps for successively lower levels; and responsive to the determining step indicating a hardware level: determining whether the hardware level may be queried; and responsive to the hardware level being able to be queried, querying the hardware level for information relevant to the field; and responsive to information having been supplied, storing the information in the field, otherwise storing a predefined safe valve in the field.
Claim 33
Dependent Claim 78 words
The method of claim 25, wherein the step of storing the address of the data structure comprises the steps of: responsive to the device being a block device, inserting a pointer to the block hashing function in the block I/O hash function table; responsive to the device being a character device, inserting a pointer to the character hashing function in the character I/O hash function table; and inserting a pointer to the data structure in the hash table.
Claim 34
Dependent Claim 95 words
The method of claim 26, wherein the step of obtaining the device capability information comprises the steps of: responsive to the device being a block device, extracting a pointer to the hashing function from the block I/O hash function table, otherwise extracting a pointer to the hashing function from the character I/O hash function table; responsive to the extracted pointer having a null value, using a predefined safe generic data structure, otherwise executing the hashing function to obtain the data structure; and reading the contents of the data structure to obtain the device capability information.

References Cited (Backward Citations)

US4589063A Cited
US4649479A Cited
US5113354A Cited
US5113354B1 Cited
US5046025A Cited
US5122949A Cited
US5179666A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-02-13 1998-08-15 1999-02-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-02-13 2002-08-15 2003-02-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-02-13 2006-08-15 2007-02-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag