drm/ttm: Implement vm_operations_struct.access v2
Allows gdb to access contents of user mode mapped BOs. System memory is handled by TTM using kmap. Other memory pools require a new driver callback in ttm_bo_driver. v2: * kmap only one page at a time * swap in BO if needed * make driver callback more generic to handle private memory pools * document callback return value * WARN_ON -> WARN_ON_ONCE Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:

committed by
Alex Deucher

parent
16d6e96227
commit
09ac4fcb3f
@@ -472,6 +472,23 @@ struct ttm_bo_driver {
|
||||
*/
|
||||
unsigned long (*io_mem_pfn)(struct ttm_buffer_object *bo,
|
||||
unsigned long page_offset);
|
||||
|
||||
/**
|
||||
* Read/write memory buffers for ptrace access
|
||||
*
|
||||
* @bo: the BO to access
|
||||
* @offset: the offset from the start of the BO
|
||||
* @buf: pointer to source/destination buffer
|
||||
* @len: number of bytes to copy
|
||||
* @write: whether to read (0) from or write (non-0) to BO
|
||||
*
|
||||
* If successful, this function should return the number of
|
||||
* bytes copied, -EIO otherwise. If the number of bytes
|
||||
* returned is < len, the function may be called again with
|
||||
* the remainder of the buffer to copy.
|
||||
*/
|
||||
int (*access_memory)(struct ttm_buffer_object *bo, unsigned long offset,
|
||||
void *buf, int len, int write);
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user