source: trunk/softs/tsar_boot/include/reset_utils.h @ 962

Last change on this file since 962 was 962, checked in by alain, 9 years ago

Introducing a new IOC driver supporting the VciMultiAhci? disk controller (in polling mode only).
Extending the MMC driver to support the SYNC command requested by the AHCI protocol on the tsar_generic_iob platform.

File size: 1.4 KB
Line 
1/*
2 * \file    : reset_utils.h
3 * \date    : August 2012
4 * \author  : Cesar Fuguet
5 */
6
7#ifndef RESET_UTILS_H
8#define RESET_UTILS_H
9
10#include <elf-types.h>
11#include <inttypes.h>
12#include <defs.h>
13
14/********************************************************************
15 * Other types definition
16 ********************************************************************/
17
18/*
19 * cache line aligned disk block (sector) buffer
20 */
21struct aligned_blk
22{
23    char b[BLOCK_SIZE];
24} __attribute__((aligned(CACHE_LINE_SIZE)));
25
26/********************************************************************
27 * Utility functions definition
28 ********************************************************************/
29
30/**
31 * \brief processor waits for n cycles
32 */
33static inline void reset_sleep(int cycles)
34{
35    volatile int i;
36    for (i = 0; i < cycles; i++);
37}
38
39/**
40 * \brief returns processor count
41 */
42static inline unsigned int proctime()
43{
44    register unsigned int ret asm ("v0");
45    asm volatile ("mfc0   %0,        $9":"=r" (ret));
46    return ret;
47}
48
49int pread(size_t file_offset, void *buf, size_t nbyte, size_t offset);
50
51void* memcpy(void *_dst, const void *_src, size_t n);
52void* memset(void *_dst, int c, size_t len);
53
54void check_elf_header(Elf32_Ehdr *ehdr);
55void reset_print_elf_phdr(Elf32_Phdr * elf_phdr_ptr);
56void reset_display_block( char* buffer );
57
58#endif /* RESET_UTILS_H */
59
60// vim: tabstop=4 : softtabstop=4 : shiftwidth=4 : expandtab
61
Note: See TracBrowser for help on using the repository browser.