#ifndef RNNDB_NV_M2MF_XML
#define RNNDB_NV_M2MF_XML

/* 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_m2mf.xml      (   2696 bytes, from 2011-07-09 13:43:58)
- ./rnndb/copyright.xml  (   6452 bytes, from 2011-07-09 13:43:58)
- ./rnndb/nv_object.xml  (  12672 bytes, from 2011-07-17 12:14:32)
- ./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 NV03_M2MF_DMA_NOTIFY					0x00000180

#define NV03_M2MF_DMA_BUFFER_IN					0x00000184

#define NV03_M2MF_DMA_BUFFER_OUT				0x00000188


#define NV50_M2MF_LINEAR_IN					0x00000200

#define NV50_M2MF_TILING_MODE_IN				0x00000204

#define NV50_M2MF_TILING_PITCH_IN				0x00000208

#define NV50_M2MF_TILING_HEIGHT_IN				0x0000020c

#define NV50_M2MF_TILING_DEPTH_IN				0x00000210

#define NV50_M2MF_TILING_POSITION_IN_Z				0x00000214

#define NV50_M2MF_TILING_POSITION_IN				0x00000218
#define NV50_M2MF_TILING_POSITION_IN_X__MASK			0x0000ffff
#define NV50_M2MF_TILING_POSITION_IN_X__SHIFT			0
#define NV50_M2MF_TILING_POSITION_IN_Y__MASK			0xffff0000
#define NV50_M2MF_TILING_POSITION_IN_Y__SHIFT			16

#define NV50_M2MF_LINEAR_OUT					0x0000021c

#define NV50_M2MF_TILING_MODE_OUT				0x00000220

#define NV50_M2MF_TILING_PITCH_OUT				0x00000224

#define NV50_M2MF_TILING_HEIGHT_OUT				0x00000228

#define NV50_M2MF_TILING_DEPTH_OUT				0x0000022c

#define NV50_M2MF_TILING_POSITION_OUT_Z				0x00000230

#define NV50_M2MF_TILING_POSITION_OUT				0x00000234
#define NV50_M2MF_TILING_POSITION_OUT_X__MASK			0x0000ffff
#define NV50_M2MF_TILING_POSITION_OUT_X__SHIFT			0
#define NV50_M2MF_TILING_POSITION_OUT_Y__MASK			0xffff0000
#define NV50_M2MF_TILING_POSITION_OUT_Y__SHIFT			16

#define NV50_M2MF_OFFSET_IN_HIGH				0x00000238

#define NV50_M2MF_OFFSET_OUT_HIGH				0x0000023c

#define NV03_M2MF_OFFSET_IN					0x0000030c

#define NV03_M2MF_OFFSET_OUT					0x00000310

#define NV03_M2MF_PITCH_IN					0x00000314

#define NV03_M2MF_PITCH_OUT					0x00000318

#define NV03_M2MF_LINE_LENGTH_IN				0x0000031c

#define NV03_M2MF_LINE_COUNT					0x00000320

#define NV03_M2MF_FORMAT					0x00000324
#define NV03_M2MF_FORMAT_INPUT_INC__MASK			0x000000ff
#define NV03_M2MF_FORMAT_INPUT_INC__SHIFT			0
#define NV03_M2MF_FORMAT_INPUT_INC_1				0x00000001
#define NV03_M2MF_FORMAT_INPUT_INC_2				0x00000002
#define NV03_M2MF_FORMAT_INPUT_INC_4				0x00000004
#define NV50_M2MF_FORMAT_INPUT_INC_8				0x00000008
#define NV50_M2MF_FORMAT_INPUT_INC_16				0x00000010
#define NV03_M2MF_FORMAT_OUTPUT_INC__MASK			0x0000ff00
#define NV03_M2MF_FORMAT_OUTPUT_INC__SHIFT			8
#define NV03_M2MF_FORMAT_OUTPUT_INC_1				0x00000100
#define NV03_M2MF_FORMAT_OUTPUT_INC_2				0x00000200
#define NV03_M2MF_FORMAT_OUTPUT_INC_4				0x00000400
#define NV50_M2MF_FORMAT_OUTPUT_INC_8				0x00000800
#define NV50_M2MF_FORMAT_OUTPUT_INC_16				0x00001000

#define NV03_M2MF_BUF_NOTIFY					0x00000328


#endif /* RNNDB_NV_M2MF_XML */
