/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef _BOOTCACHE_H
#define _BOOTCACHE_H

#include <linux/types.h>

enum {	BLK_SHIFT = 12,
	BLK_SIZE = 1<<BLK_SHIFT,
	BLK_MASK = BLK_SIZE - 1,
	SECTOR_BLOCK_SHIFT = 3,
	BOOTCACHE_MAGIC = 1651470196,
	BOOTCACHE_VERSION = 2,
	MAX_SIGNATURE = 256
};


#define BLK_ALIGN(_x)	(((_x) + BLK_MASK) >> BLK_SHIFT)

struct Trace {
	__u64	blkno;	/* Block number for data */
	__u64	count;	/* Number of blocks in request */
	__u64	ino;	/* Used for anaysis of traces */
};

struct Bootcache_hdr {
	__u64	blkno;		/* Block number for where header is stored */
	__u32	magic;		/* Magic number */
	__u32	version;	/* Verion of boot cache */
	__u32	state;		/* Curent state */
	__u32	num_blks_meta;	/* Size of trace data on disk */
	__u32	num_blks_data;	/* Size of the data area */
	char	date[12];	/* Date and time bootcache was compiled */
	char	time[12];
	__u32	max_sectors;	/* Max sectors that can to read */
	__u32	max_hw_sectors;	/* Max hardware sectore that can be read */
	char	signature[MAX_SIGNATURE];
};

#endif
