Browse Prior Art Database

Use of Anonymous Verifiable Handles for Accessing Device Services

IP.com Disclosure Number: IPCOM000035929D
Original Publication Date: 2005-Jan-28
Included in the Prior Art Database: 2005-Jan-28
Document File: 2 page(s) / 50K

Publishing Venue

IBM

Abstract

A method is disclosed for opaque device handles to use as references to a target device for device operations in a computing system. Opaque device handles, also called handles, hide from their holders and users the underlying operational data structures associated with the referenced device, including the traditionally used device number. These handles incorporate a means of ensuring the currency and validity of a given handle with respect to the underyling operational data structures.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Use of Anonymous Verifiable Handles for Accessing Device Services

A method is disclosed for opaque device handles to use as references to a target device for device operations in a computing system. Opaque device handles, also called handles, hide from their holders and users the underlying operational data structures associated with the referenced device, including the traditionally used device number. These handles incorporate the use of sequence numbers as a means of ensuring the currency and validity of a given handle with respect to the underyling operational data structures. In Linux* systems, after devices are created, they are identified by a device number (devno) outside the kernel. A devno consists of two concatenated numbers:

Major number - Identifies the device driver managing the device and is typically used as the index into an array of device drivers.

Minor number - Identifies the actual device to the driver and is typically used as an index or hash value into an array or hash list of devices. Once a thread of execution obtains or otherwise determines the devno for a device, it can access the device even if it should not be able to do so. For example, threads A and B could both create the device (by dynamically loading the corresponding device driver) and then B could destroy the device (by unloading the device driver). After that point, even though B had destroyed the device, since it might still have a copy of the devno, it could still access the device. Those types of accesses are almost always indicative of a program logic or serialization error and yet are undetectable using the simple devno representation of a device. The method described here provides an opaque device handle, also called a handle, in place of a simple devno for use by the computing system. A handle contains device location information, similar to a devno, as well as a copy of the current reference sequence number, which identifies a particular requester's access to a given device. The copy of the reference sequence number is kept internal to the handle. When a device is removed, it's reference sequen...