-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 197115 b: refs/heads/master c: 933025b h: refs/heads/master i: 197113: 9cc5889 197111: 1cbad4a v: v3
- Loading branch information
Ossama Othman
authored and
Greg Kroah-Hartman
committed
May 11, 2010
1 parent
6456d2d
commit 576ee07
Showing
2 changed files
with
90 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: d82f139b5865f26b005852cd38119681fe70b0dc | ||
refs/heads/master: 933025b60836a80f415bb458f3880519fc24606e |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
What: /dev/memrar | ||
Date: March 2010 | ||
KernelVersion: Kernel version this feature first showed up in. | ||
Contact: Ossama Othman <ossama.othman@intel.com> | ||
Description: The Intel Moorestown Restricted Access Region (RAR) | ||
Handler driver exposes an ioctl() based interface that | ||
allows a user to reserve and release blocks of RAR | ||
memory. | ||
|
||
Note: A sysfs based one was not appropriate for the | ||
RAR handler's usage model. | ||
|
||
========================================================= | ||
ioctl() Requests | ||
========================================================= | ||
RAR_HANDLER_RESERVE | ||
------------------- | ||
Description: Reserve RAR block. | ||
Type: struct RAR_block_info | ||
Direction: in/out | ||
Errors: EINVAL (invalid RAR type or size) | ||
ENOMEM (not enough RAR memory) | ||
|
||
RAR_HANDLER_STAT | ||
---------------- | ||
Description: Get RAR statistics. | ||
Type: struct RAR_stat | ||
Direction: in/out | ||
Errors: EINVAL (invalid RAR type) | ||
|
||
RAR_HANDLER_RELEASE | ||
------------------- | ||
Description: Release previously reserved RAR block. | ||
Type: 32 bit unsigned integer | ||
(e.g. uint32_t), i.e the RAR "handle". | ||
Direction: in | ||
Errors: EINVAL (invalid RAR handle) | ||
|
||
|
||
========================================================= | ||
ioctl() Request Parameter Types | ||
========================================================= | ||
The structures referred to above are defined as | ||
follows: | ||
|
||
/** | ||
* struct RAR_block_info - user space struct that | ||
* describes RAR buffer | ||
* @type: Type of RAR memory (e.g., | ||
* RAR_TYPE_VIDEO or RAR_TYPE_AUDIO) [in] | ||
* @size: Requested size of a block in bytes to | ||
* be reserved in RAR. [in] | ||
* @handle: Handle that can be used to refer to | ||
* reserved block. [out] | ||
* | ||
* This is the basic structure exposed to the user | ||
* space that describes a given RAR buffer. It used | ||
* as the parameter for the RAR_HANDLER_RESERVE ioctl. | ||
* The buffer's underlying bus address is not exposed | ||
* to the user. User space code refers to the buffer | ||
* entirely by "handle". | ||
*/ | ||
struct RAR_block_info { | ||
__u32 type; | ||
__u32 size; | ||
__u32 handle; | ||
}; | ||
|
||
/** | ||
* struct RAR_stat - RAR statistics structure | ||
* @type: Type of RAR memory (e.g., | ||
* RAR_TYPE_VIDEO or | ||
* RAR_TYPE_AUDIO) [in] | ||
* @capacity: Total size of RAR memory | ||
* region. [out] | ||
* @largest_block_size: Size of the largest reservable | ||
* block. [out] | ||
* | ||
* This structure is used for RAR_HANDLER_STAT ioctl. | ||
*/ | ||
struct RAR_stat { | ||
__u32 type; | ||
__u32 capacity; | ||
__u32 largest_block_size; | ||
}; | ||
|
||
Lastly, the RAR_HANDLER_RELEASE ioctl expects a | ||
"handle" to the RAR block of memory. It is a 32 bit | ||
unsigned integer. |