/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA0 2111-1307
 * USA
 */
/* DO NOT EDIT!! - this file automatically generated
 *		   from .s file by awk -f s2h.awk
 */
/*  Size defintions
 *  Copyright (C) ARM Limited 1998. All rights reserved.
 */

#ifndef __sizes_h
#define __sizes_h			1

/* handy sizes */
#define SZ_1K		0x00000400
#define SZ_4K		0x00001000
#define SZ_8K		0x00002000
#define SZ_16K		0x00004000
#define SZ_64K		0x00010000
#define SZ_128K	0x00020000
#define SZ_256K	0x00040000
#define SZ_512K	0x00080000

#define SZ_1M		0x00100000
#define SZ_2M		0x00200000
#define SZ_4M		0x00400000
#define SZ_8M		0x00800000
#define SZ_16M		0x01000000
#define SZ_32M		0x02000000
#define SZ_64M		0x04000000
#define SZ_128M	0x08000000
#define SZ_256M	0x10000000
#define SZ_512M	0x20000000

#define SZ_1G		0x40000000
#define SZ_2G		0x80000000

#endif	/* __sizes_h */
