#ifndef STATE_BLT_XML
#define STATE_BLT_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:
- state.xml     (  29355 bytes, from 2024-01-19 10:18:54)
- common.xml    (  35664 bytes, from 2023-12-06 10:55:32)
- common_3d.xml (  15069 bytes, from 2023-11-22 10:05:24)
- state_hi.xml  (  35854 bytes, from 2023-12-11 15:50:17)
- copyright.xml (   1597 bytes, from 2016-11-10 13:58:32)
- state_2d.xml  (  52271 bytes, from 2023-06-02 12:35:03)
- state_3d.xml  (  89522 bytes, from 2024-01-19 10:18:54)
- state_blt.xml (  14592 bytes, from 2023-11-22 10:05:09)
- state_vg.xml  (   5975 bytes, from 2016-11-10 13:58:32)

Copyright (C) 2012-2023 by the following authors:
- Wladimir J. van der Laan <laanwj@gmail.com>
- Christian Gmeiner <christian.gmeiner@gmail.com>
- Lucas Stach <l.stach@pengutronix.de>
- Russell King <rmk@arm.linux.org.uk>

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, 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 AUTHORS OR COPYRIGHT HOLDERS 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.
*/

/* This is a cut-down version of the state_blt.xml.h file */

#define VIVS_BLT_SET_COMMAND					0x000140ac

#define VIVS_BLT_ENABLE						0x000140b8
#define VIVS_BLT_ENABLE_ENABLE					0x00000001

#endif /* STATE_BLT_XML */
