add some missing parts for addmap on FreeBSD

This commit is contained in:
Alan Hourihane 2001-05-10 15:21:39 +00:00
parent be0b238286
commit 7e9a4ce4b3
2 changed files with 40 additions and 0 deletions

View file

@ -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:

View file

@ -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: