#ifndef RNNDB_NV_OBJECT_XML
#define RNNDB_NV_OBJECT_XML

/* WARNING ABOUT NOT EDITING AUTOGENERATED FILE IGNORED, _CLASS SUFFIX HAS
 * BEEN ADDED TO ALL THE OBJECT CLASS DEFINITIONS TO AVOID CONFLICTS WITH
 * THE RING MACROS WE WANT TO USE
 */

/* Autogenerated file, DO NOT EDIT manually!

This file was generated by the rules-ng-ng headergen tool in this git repository:
http://0x04.net/cgit/index.cgi/rules-ng-ng
git clone git://0x04.net/rules-ng-ng

The rules-ng-ng source files this header was generated from are:
- rnndb/nv_object.xml    (  12672 bytes, from 2011-07-17 12:14:32)
- ./rnndb/copyright.xml  (   6452 bytes, from 2011-07-09 13:43:58)
- ./rnndb/nvchipsets.xml (   3701 bytes, from 2012-04-06 13:21:15)
- ./rnndb/nv_defs.xml    (   4437 bytes, from 2011-07-09 13:43:58)
- ./rnndb/nv50_defs.xml  (   5468 bytes, from 2011-07-09 13:43:58)

Copyright (C) 2006-2011 by the following authors:
- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
- Ben Skeggs (darktama, darktama_)
- B. R. <koala_br@users.sourceforge.net> (koala_br)
- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
- Dmitry Baryshkov
- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
- EdB <edb_@users.sf.net> (edb_)
- Erik Waling <erikwailing@users.sf.net> (erikwaling)
- Francisco Jerez <currojerez@riseup.net> (curro)
- imirkin <imirkin@users.sf.net> (imirkin)
- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
- Marcin Kościelnicki <koriakin@0x04.net> (mwk, koriakin)
- Mark Carey <mark.carey@gmail.com> (careym)
- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
- Patrice Mandin <patmandin@gmail.com> (pmandin, pmdata)
- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
- Peter Popov <ironpeter@users.sf.net> (ironpeter)
- Richard Hughes <hughsient@users.sf.net> (hughsient)
- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
- Serge Martin
- Simon Raffeiner
- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
- sturmflut <sturmflut@users.sf.net> (sturmflut)
- Sylvain Munaut <tnt@246tNt.com>
- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
- Younes Manton <younes.m@gmail.com> (ymanton)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, 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 NONINFRINGEMENT.
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) 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.
*/


#define NV01_DMA_FROM_MEMORY_CLASS				0x00000002
#define NV01_DMA_TO_MEMORY_CLASS				0x00000003
#define NV01_NULL_CLASS						0x00000030
#define NV03_DMA_IN_MEMORY_CLASS				0x0000003d
#define NV01_OP_CLIP_CLASS					0x00000010
#define NV01_OP_BLEND_AND_CLASS					0x00000011
#define NV01_BETA_CLASS						0x00000012
#define NV04_BETA4_CLASS					0x00000072
#define NV01_OP_ROP_AND_CLASS					0x00000013
#define NV01_ROP_CLASS						0x00000014
#define NV03_ROP_CLASS						0x00000043
#define NV01_OP_CHROMA_CLASS					0x00000015
#define NV01_OP_PLANE_SWITCH_CLASS				0x00000016
#define NV01_CHROMA_CLASS					0x00000017
#define NV04_CHROMA_CLASS					0x00000057
#define NV01_PATTERN_CLASS					0x00000018
#define NV04_PATTERN_CLASS					0x00000044
#define NV01_CLIP_CLASS						0x00000019
#define NV01_OP_SRCCOPY_AND_CLASS				0x00000064
#define NV03_OP_SRCCOPY_CLASS					0x00000065
#define NV04_OP_SRCCOPY_PREMULT_CLASS				0x00000066
#define NV04_OP_BLEND_PREMULT_CLASS				0x00000067
#define NV01_POINT_CLASS					0x0000001a
#define NV01_LINE_CLASS						0x0000001b
#define NV01_LIN_CLASS						0x0000001c
#define NV04_LIN_CLASS						0x0000005c
#define NV30_LIN_CLASS						0x0000035c
#define NV40_LIN_CLASS						0x0000305c
#define NV01_TRI_CLASS						0x0000001d
#define NV04_TRI_CLASS						0x0000005d
#define NV01_RECT_CLASS						0x0000001e
#define NV04_RECT_CLASS						0x0000005e
#define NV01_BLIT_CLASS						0x0000001f
#define NV04_BLIT_CLASS						0x0000005f
#define NV15_BLIT_CLASS						0x0000009f
#define NV01_IFROMMEM_CLASS					0x00000020
#define NV01_IFC_CLASS						0x00000021
#define NV04_IFC_CLASS						0x00000061
#define NV05_IFC_CLASS						0x00000065
#define NV10_IFC_CLASS						0x0000008a
#define NV30_IFC_CLASS						0x0000038a
#define NV40_IFC_CLASS						0x0000308a
#define NV01_BITMAP_CLASS					0x00000022
#define NV01_ITOMEM_CLASS					0x00000025
#define NV03_SIFC_CLASS						0x00000036
#define NV04_SIFC_CLASS						0x00000076
#define NV05_SIFC_CLASS						0x00000066
#define NV30_SIFC_CLASS						0x00000366
#define NV40_SIFC_CLASS						0x00003066
#define NV03_SIFM_CLASS						0x00000037
#define NV04_SIFM_CLASS						0x00000077
#define NV05_SIFM_CLASS						0x00000063
#define NV10_SIFM_CLASS						0x00000089
#define NV30_SIFM_CLASS						0x00000389
#define NV40_SIFM_CLASS						0x00003089
#define NV50_SIFM_CLASS						0x00005089
#define NV03_SYFM_CLASS						0x00000038
#define NV03_GDI_CLASS						0x0000004b
#define NV04_GDI_CLASS						0x0000004a
#define NV04_SURFACE_SWZ_CLASS					0x00000052
#define NV20_SURFACE_SWZ_CLASS					0x0000009e
#define NV30_SURFACE_SWZ_CLASS					0x0000039e
#define NV40_SURFACE_SWZ_CLASS					0x0000309e
#define NV03_SURFACE_DST_CLASS					0x00000058
#define NV03_SURFACE_SRC_CLASS					0x00000059
#define NV04_SURFACE_2D_CLASS					0x00000042
#define NV10_SURFACE_2D_CLASS					0x00000062
#define NV30_SURFACE_2D_CLASS					0x00000362
#define NV40_SURFACE_2D_CLASS					0x00003062
#define NV50_SURFACE_2D_CLASS					0x00005062
#define NV04_INDEX_CLASS					0x00000060
#define NV05_INDEX_CLASS					0x00000064
#define NV30_INDEX_CLASS					0x00000364
#define NV40_INDEX_CLASS					0x00003064
#define NV10_TEXUPLOAD_CLASS					0x0000007b
#define NV30_TEXUPLOAD_CLASS					0x0000037b
#define NV40_TEXUPLOAD_CLASS					0x0000307b
#define NV04_DVD_SUBPICTURE_CLASS				0x00000038
#define NV10_DVD_SUBPICTURE_CLASS				0x00000088
#define NV03_M2MF_CLASS						0x00000039
#define NV50_M2MF_CLASS						0x00005039
#define NVC0_M2MF_CLASS						0x00009039
#define NV03_SURFACE_COLOR_CLASS				0x0000005a
#define NV03_SURFACE_ZETA_CLASS					0x0000005b
#define NV03_TEXTURED_TRIANGLE_CLASS				0x00000048
#define NV04_TEXTURED_TRIANGLE_CLASS				0x00000054
#define NV10_TEXTURED_TRIANGLE_CLASS				0x00000094
#define NV04_SURFACE_3D_CLASS					0x00000053
#define NV10_SURFACE_3D_CLASS					0x00000093
#define NV04_MULTITEX_TRIANGLE_CLASS				0x00000055
#define NV10_MULTITEX_TRIANGLE_CLASS				0x00000095
#define NV10_3D_CLASS						0x00000056
#define NV15_3D_CLASS						0x00000096
#define NV11_3D_CLASS						0x00000098
#define NV17_3D_CLASS						0x00000099
#define NV20_3D_CLASS						0x00000097
#define NV25_3D_CLASS						0x00000597
#define NV30_3D_CLASS						0x00000397
#define NV35_3D_CLASS						0x00000497
#define NV34_3D_CLASS						0x00000697
#define NV40_3D_CLASS						0x00004097
#define NV44_3D_CLASS						0x00004497
#define NV50_3D_CLASS						0x00005097
#define NV84_3D_CLASS						0x00008297
#define NVA0_3D_CLASS						0x00008397
#define NVA3_3D_CLASS						0x00008597
#define NVAF_3D_CLASS						0x00008697
#define NVC0_3D_CLASS						0x00009097
#define NVC1_3D_CLASS						0x00009197
#define NVC8_3D_CLASS						0x00009297
#define NVE4_3D_CLASS						0x0000a097
#define NVF0_3D_CLASS						0x0000a197
#define NVEA_3D_CLASS						0x0000a297
#define GM107_3D_CLASS						0x0000b097
#define GM200_3D_CLASS						0x0000b197
#define GP100_3D_CLASS						0x0000c097
#define GP102_3D_CLASS						0x0000c197
#define GV100_3D_CLASS						0x0000c397
#define TU102_3D_CLASS						0x0000c597
#define NV50_2D_CLASS						0x0000502d
#define NVC0_2D_CLASS						0x0000902d
#define NV50_COMPUTE_CLASS					0x000050c0
#define NVA3_COMPUTE_CLASS					0x000085c0
#define NVC0_COMPUTE_CLASS					0x000090c0
#define NVC8_COMPUTE_CLASS					0x000092c0
#define NVE4_COMPUTE_CLASS					0x0000a0c0
#define NVF0_COMPUTE_CLASS					0x0000a1c0
#define GM107_COMPUTE_CLASS					0x0000b0c0
#define GM200_COMPUTE_CLASS					0x0000b1c0
#define GP100_COMPUTE_CLASS					0x0000c0c0
#define GP104_COMPUTE_CLASS					0x0000c1c0
#define GV100_COMPUTE_CLASS					0x0000c3c0
#define TU102_COMPUTE_CLASS					0x0000c5c0
#define NV84_CRYPT_CLASS					0x000074c1
#define BLOB_NVC0_PCOPY1_CLASS					0x000090b8
#define BLOB_NVC0_PCOPY0_CLASS					0x000090b5
#define NVE4_COPY_CLASS						0x0000a0b5
#define NVE4_P2MF_CLASS						0x0000a040
#define NVF0_P2MF_CLASS						0x0000a140
#define NV31_MPEG_CLASS						0x00003174
#define NV84_MPEG_CLASS						0x00008274

#define NV01_SUBCHAN__SIZE					0x00008000
#define NV01_SUBCHAN						0x00000000

#define NV01_SUBCHAN_OBJECT					0x00000000


#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_HIGH			0x00000010

#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_LOW			0x00000014

#define NV84_SUBCHAN_SEMAPHORE_SEQUENCE				0x00000018

#define NV84_SUBCHAN_SEMAPHORE_TRIGGER				0x0000001c
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACQUIRE_EQUAL		0x00000001
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_WRITE_LONG		0x00000002
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACQUIRE_GEQUAL		0x00000004

#define NV84_SUBCHAN_NOTIFY_INTR				0x00000020

#define NV84_SUBCHAN_WRCACHE_FLUSH				0x00000024

#define NV10_SUBCHAN_REF_CNT					0x00000050


#define NV11_SUBCHAN_DMA_SEMAPHORE				0x00000060

#define NV11_SUBCHAN_SEMAPHORE_OFFSET				0x00000064

#define NV11_SUBCHAN_SEMAPHORE_ACQUIRE				0x00000068

#define NV11_SUBCHAN_SEMAPHORE_RELEASE				0x0000006c

#define NV40_SUBCHAN_YIELD					0x00000080

#define NV01_GRAPH						0x00000000

#define NV04_GRAPH_NOP						0x00000100

#define NV04_GRAPH_NOTIFY					0x00000104
#define NV04_GRAPH_NOTIFY_WRITE					0x00000000
#define NV04_GRAPH_NOTIFY_WRITE_AND_AWAKEN			0x00000001

#define NVC0_GRAPH_NOTIFY_ADDRESS_HIGH				0x00000104

#define NVC0_GRAPH_NOTIFY_ADDRESS_LOW				0x00000108

#define NVC0_GRAPH_NOTIFY					0x0000010c
#define NVC0_GRAPH_NOTIFY_WRITE					0x00000000
#define NVC0_GRAPH_NOTIFY_WRITE_AND_AWAKEN			0x00000001

#define NV50_GRAPH_SERIALIZE					0x00000110

#define NVC0_GRAPH_MACRO_UPLOAD_POS				0x00000114

#define NVC0_GRAPH_MACRO_UPLOAD_DATA				0x00000118

#define NVC0_GRAPH_MACRO_ID					0x0000011c

#define NVC0_GRAPH_MACRO_POS					0x00000120

#define NVA3_GRAPH_UNK0120					0x00000120

#define NVA3_GRAPH_UNK0124					0x00000124

#define NVC0_GRAPH_UNK0124					0x00000124

#define NVC0_GRAPH_COND_ADDRESS_HIGH				0x00000130

#define NVC0_GRAPH_COND_ADDRESS_LOW				0x00000134

#define NVC0_GRAPH_COND_MODE					0x00000138
#define NVC0_GRAPH_COND_MODE_NEVER				0x00000000
#define NVC0_GRAPH_COND_MODE_ALWAYS				0x00000001
#define NVC0_GRAPH_COND_MODE_RES_NON_ZERO			0x00000002
#define NVC0_GRAPH_COND_MODE_EQUAL				0x00000003
#define NVC0_GRAPH_COND_MODE_NOT_EQUAL				0x00000004

#define NVC0_GRAPH_UNK013C					0x0000013c

#define NV40_GRAPH_PM_TRIGGER					0x00000140

#define NVC0_GRAPH_UNK0150					0x00000150

#define NVC0_GRAPH_UNK0154					0x00000154

#define NVC0_GRAPH_SCRATCH(i0)				       (0x00003400 + 0x4*(i0))
#define NVC0_GRAPH_SCRATCH__ESIZE				0x00000004
#define NVC0_GRAPH_SCRATCH__LEN					0x00000080

#define NVC0_GRAPH_MACRO(i0)				       (0x00003800 + 0x8*(i0))
#define NVC0_GRAPH_MACRO__ESIZE					0x00000008
#define NVC0_GRAPH_MACRO__LEN					0x00000080

#define NVC0_GRAPH_MACRO_PARAM(i0)			       (0x00003804 + 0x8*(i0))
#define NVC0_GRAPH_MACRO_PARAM__ESIZE				0x00000008
#define NVC0_GRAPH_MACRO_PARAM__LEN				0x00000080


#endif /* RNNDB_NV_OBJECT_XML */
