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

Last change on this file since 966 was 962, checked in by alain, 10 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
RevLine 
[586]1/*
2 * \file    : reset_utils.h
[425]3 * \date    : August 2012
4 * \author  : Cesar Fuguet
5 */
6
[758]7#ifndef RESET_UTILS_H
8#define RESET_UTILS_H
[425]9
10#include <elf-types.h>
[758]11#include <inttypes.h>
[701]12#include <defs.h>
[425]13
[701]14/********************************************************************
15 * Other types definition
16 ********************************************************************/
17
18/*
[758]19 * cache line aligned disk block (sector) buffer
[701]20 */
21struct aligned_blk
22{
23    char b[BLOCK_SIZE];
24} __attribute__((aligned(CACHE_LINE_SIZE)));
25
26/********************************************************************
27 * Utility functions definition
28 ********************************************************************/
29
[758]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}
[425]38
[758]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}
[425]48
[758]49int pread(size_t file_offset, void *buf, size_t nbyte, size_t offset);
[425]50
[758]51void* memcpy(void *_dst, const void *_src, size_t n);
52void* memset(void *_dst, int c, size_t len);
[425]53
[758]54void check_elf_header(Elf32_Ehdr *ehdr);
55void reset_print_elf_phdr(Elf32_Phdr * elf_phdr_ptr);
[962]56void reset_display_block( char* buffer );
[425]57
[758]58#endif /* RESET_UTILS_H */
[653]59
[425]60// vim: tabstop=4 : softtabstop=4 : shiftwidth=4 : expandtab
61
Note: See TracBrowser for help on using the repository browser.