summaryrefslogtreecommitdiff
path: root/linux-core/drm_ioctl.c
AgeCommit message (Expand)Author
2007-03-19more return values fixupDave Airlie
2007-03-19fixup return values in drm ioctlDave Airlie
2006-12-19make sizeof match the copy structDave Airlie
2006-08-28drm: lots of small cleanups and whitespace issues fixed upDave Airlie
2006-08-28remove local copies of pci domain/bus/slot/numDave Airlie
2006-07-24switch drm to use Linux mutexes instead of semaphore.Dave Airlie
2005-08-16add Egberts 32/64 bit patch (its in kernel already...)Dave Airlie
2005-08-05Rename the driver hooks in the DRM to something a little moreEric Anholt
2005-03-08Fix for bug 2673 from Egbert Eich - memset the versionDave Airlie
2005-01-24hopefully fix drm_core setversion ioctl... pointed out by Eric on ircDave Airlie
2004-10-20Switch linux-core from using dev->pdev->driver->name toJon Smirl
2004-10-20Fix dd vs di version typo in drm_setversionJon Smirl
2004-10-19Add a protective check against a possible buffer overflowJon Smirl
2004-10-18Update Doxygen configuration & comments.Jose Fonseca
2004-10-12Breakout heads into their own data structures.Jon Smirl
2004-10-10Rename fn_tbl to driver. Core driver now uses pci_driver name whichJon Smirl
2004-09-30Lindent of core build. Drivers checked for no binary diffs. A few filesJon Smirl
2004-09-30Move things around to reduce public symbols and even out files. Switch toJon Smirl
2004-09-27First check in for DRM that splits core from personality modulesJon Smirl
2004-09-05merge back bunch of whitespace and misc changes from kernelDave Airlie
2004-08-27__NO_VERSION__ hasn't been needed since 2.3 days ditch it...Dave Airlie
2004-08-24Merged drmfntbl-0-0-2Dave Airlie
2004-07-25sync up with current 2.6 kernel bk tree - mostly __user annotationsDave Airlie
2004-07-20first set of __user annotations from kernel (Al Viro)Dave Airlie
2004-06-07The dev->devname being passed to request_irq in drm_irq.h is null. With theDave Airlie
2003-11-05- Tie the DRM to a specific device: setunique no longer succeeds when givenEric Anholt
2003-10-23- Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows theEric Anholt
2003-05-27Merged DRM documentation.Jose Fonseca
2003-04-24Remove unused dev->map_count. We always iterate the maplist withLeif Delgass
2003-04-08Use list_entry() to get container struct from struct list_head pointers.Leif Delgass
2003-03-25linux merge for drmAlan Hourihane
2002-10-08Fix error condition...Keith Whitwell
2002-10-08Call pci_enable_device() in DRM(irq_busid).Keith Whitwell
2001-09-25merge with 2.4.10 kernelAlan Hourihane
2001-08-14A few warning fixes when actually building under 2.4.9-pre2 + someJeff Hartmann
2001-08-10Commit Keith Owens kernel Makefile changes, merge and commit alpha patchJeff Hartmann
2001-08-07Lots of DRM fixes: added new pieces of template code so the ffb driver canJeff Hartmann
2001-07-20Merge checker fixes from Alan Cox made to the drm in the ac kernel tree.Jeff Hartmann
2001-05-01Import of XFree86 4.0.99.3David Dawes
2001-04-09Import -f XFree86 4.0.99.2David Dawes
2001-04-05Merged ati-pcigart-1-0-0Kevin E Martin
2001-03-14Merged sarea-1-0-0Kevin E Martin
2001-02-15Merge mga-1-0-0-branch into trunk.Gareth Hughes
n class="hl opt">(*offset) (void *private, void *ref); }; struct drm_memblock_item { struct list_head owner_list; struct drm_hash_item user_hash; void *mm_info; struct drm_sman_mm *mm; struct drm_sman *sman; }; struct drm_sman { struct drm_sman_mm *mm; int num_managers; struct drm_open_hash owner_hash_tab; struct drm_open_hash user_hash_tab; struct list_head owner_items; }; /* * Take down a memory manager. This function should only be called after a * successful init and after a call to drm_sman_cleanup. */ extern void drm_sman_takedown(struct drm_sman * sman); /* * Allocate structures for a manager. * num_managers are the number of memory pools to manage. (VRAM, AGP, ....) * user_order is the log2 of the number of buckets in the user hash table. * set this to approximately log2 of the max number of memory regions * that will be allocated for _all_ pools together. * owner_order is the log2 of the number of buckets in the owner hash table. * set this to approximately log2 of * the number of client file connections that will * be using the manager. * */ extern int drm_sman_init(struct drm_sman * sman, unsigned int num_managers, unsigned int user_order, unsigned int owner_order); /* * Initialize a drm_memrange.c allocator. Should be called only once for each * manager unless a customized allogator is used. */ extern int drm_sman_set_range(struct drm_sman * sman, unsigned int manager, unsigned long start, unsigned long size); /* * Initialize a customized allocator for one of the managers. * (See the SiS module). The object pointed to by "allocator" is copied, * so it can be destroyed after this call. */ extern int drm_sman_set_manager(struct drm_sman * sman, unsigned int mananger, struct drm_sman_mm * allocator); /* * Allocate a memory block. Aligment is not implemented yet. */ extern struct drm_memblock_item *drm_sman_alloc(struct drm_sman * sman, unsigned int manager, unsigned long size, unsigned alignment, unsigned long owner); /* * Free a memory block identified by its user hash key. */ extern int drm_sman_free_key(struct drm_sman * sman, unsigned int key); /* * returns 1 iff there are no stale memory blocks associated with this owner. * Typically called to determine if we need to idle the hardware and call * drm_sman_owner_cleanup. If there are no stale memory blocks, it removes all * resources associated with owner. */ extern int drm_sman_owner_clean(struct drm_sman * sman, unsigned long owner); /* * Frees all stale memory blocks associated with this owner. Note that this * requires that the hardware is finished with all blocks, so the graphics engine * should be idled before this call is made. This function also frees * any resources associated with "owner" and should be called when owner * is not going to be referenced anymore. */ extern void drm_sman_owner_cleanup(struct drm_sman * sman, unsigned long owner); /* * Frees all stale memory blocks associated with the memory manager. * See idling above. */ extern void drm_sman_cleanup(struct drm_sman * sman); #endif