summaryrefslogtreecommitdiff
path: root/shared-core/nouveau_fifo.c
AgeCommit message (Expand)Author
2006-10-14Fix some randomness in activating a second channel on NV40 (odd GET/PUT vals)...Ben Skeggs
2006-10-12Still more work on the context switching code.Stephane Marchesin
2006-10-12More work on the context switch code. Still doesn't work. I'm mostly convince...Stephane Marchesin
2006-10-11Context switching work.Stephane Marchesin
2006-09-07Fix second start of X server without module reload beforehand, and a couple o...Ben Skeggs
2006-09-03Allow cmdbuf location(AGP,VRAM) and size to be configured.Ben Skeggs
2006-08-30Add stub {get,set}param ioctls.Ben Skeggs
2006-08-27initial import of nouveau code from nouveau CVSDave Airlie
ftware"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. * * **************************************************************************/ /* * Simple open hash tab implementation. * * Authors: * Thomas Hellström <thomas-at-tungstengraphics-dot-com> */ #ifndef DRM_HASHTAB_H #define DRM_HASHTAB_H #define drm_hash_entry(_ptr, _type, _member) container_of(_ptr, _type, _member) typedef struct drm_hash_item{ struct hlist_node head; unsigned long key; } drm_hash_item_t; typedef struct drm_open_hash{ unsigned int size; unsigned int order; unsigned int fill; struct hlist_head *table; int use_vmalloc; } drm_open_hash_t; extern int drm_ht_create(drm_open_hash_t *ht, unsigned int order); extern int drm_ht_insert_item(drm_open_hash_t *ht, drm_hash_item_t *item); extern int drm_ht_just_insert_please(drm_open_hash_t *ht, drm_hash_item_t *item, unsigned long seed, int bits, int shift, unsigned long add); extern int drm_ht_find_item(drm_open_hash_t *ht, unsigned long key, drm_hash_item_t **item); extern void drm_ht_verbose_list(drm_open_hash_t *ht, unsigned long key); extern int drm_ht_remove_key(drm_open_hash_t *ht, unsigned long key); extern int drm_ht_remove_item(drm_open_hash_t *ht, drm_hash_item_t *item); extern void drm_ht_remove(drm_open_hash_t *ht); #endif