mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-06 04:48:22 +02:00
add some missing parts for addmap on FreeBSD
This commit is contained in:
parent
be0b238286
commit
7e9a4ce4b3
2 changed files with 40 additions and 0 deletions
|
|
@ -121,13 +121,33 @@ int DRM(addmap)( DRM_OS_IOCTL )
|
|||
}
|
||||
DRM_DEBUG( "offset = 0x%08lx, size = 0x%08lx, type = %d\n",
|
||||
map->offset, map->size, map->type );
|
||||
#ifdef __linux__
|
||||
if ( (map->offset & (~PAGE_MASK)) || (map->size & (~PAGE_MASK)) ) {
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( (map->offset & PAGE_MASK) || (map->size & PAGE_MASK) ) {
|
||||
#endif
|
||||
DRM(free)( map, sizeof(*map), DRM_MEM_MAPS );
|
||||
DRM_OS_RETURN(EINVAL);
|
||||
}
|
||||
map->mtrr = -1;
|
||||
map->handle = 0;
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
TAILQ_FOREACH(list, dev->maplist, link) {
|
||||
drm_map_t *entry = list->map;
|
||||
if ( (entry->offset >= map->offset
|
||||
&& (entry->offset) < (map->offset + map->size) )
|
||||
|| ((entry->offset + entry->size) >= map->offset
|
||||
&& (entry->offset + entry->size) < (map->offset + map->size) )
|
||||
|| ((entry->offset < map->offset)
|
||||
&& (entry->offset + entry->size) >= (map->offset + map->size) ) )
|
||||
DRM_DEBUG("map collission: add(0x%x-0x%x), current(0x%x-0x%x)\n",
|
||||
entry->offset, entry->offset + entry->size - 1,
|
||||
map->offset, map->offset + map->size - 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
switch ( map->type ) {
|
||||
case _DRM_REGISTERS:
|
||||
case _DRM_FRAME_BUFFER:
|
||||
|
|
|
|||
|
|
@ -121,13 +121,33 @@ int DRM(addmap)( DRM_OS_IOCTL )
|
|||
}
|
||||
DRM_DEBUG( "offset = 0x%08lx, size = 0x%08lx, type = %d\n",
|
||||
map->offset, map->size, map->type );
|
||||
#ifdef __linux__
|
||||
if ( (map->offset & (~PAGE_MASK)) || (map->size & (~PAGE_MASK)) ) {
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( (map->offset & PAGE_MASK) || (map->size & PAGE_MASK) ) {
|
||||
#endif
|
||||
DRM(free)( map, sizeof(*map), DRM_MEM_MAPS );
|
||||
DRM_OS_RETURN(EINVAL);
|
||||
}
|
||||
map->mtrr = -1;
|
||||
map->handle = 0;
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
TAILQ_FOREACH(list, dev->maplist, link) {
|
||||
drm_map_t *entry = list->map;
|
||||
if ( (entry->offset >= map->offset
|
||||
&& (entry->offset) < (map->offset + map->size) )
|
||||
|| ((entry->offset + entry->size) >= map->offset
|
||||
&& (entry->offset + entry->size) < (map->offset + map->size) )
|
||||
|| ((entry->offset < map->offset)
|
||||
&& (entry->offset + entry->size) >= (map->offset + map->size) ) )
|
||||
DRM_DEBUG("map collission: add(0x%x-0x%x), current(0x%x-0x%x)\n",
|
||||
entry->offset, entry->offset + entry->size - 1,
|
||||
map->offset, map->offset + map->size - 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
switch ( map->type ) {
|
||||
case _DRM_REGISTERS:
|
||||
case _DRM_FRAME_BUFFER:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue