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

Last change on this file since 887 was 758, checked in by cfuguet, 10 years ago

tsar_boot: improving configuration infrastructure

  • Using hard_config.h which respects the same sintax that the hard_config.h file of all TSAR platforms. This file can be then generated by the GIET-VM genmap tool or written manually.
  • All peripheral drivers have been moved to a drivers directory and they are compiled as a static library. This allows GCC to only include in the final .ELF the object files of used peripherals and not all of them.
  • Example hard_config.h and ldscripts have been introduced in the conf directory.
  • Improving comments in all files
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);
56
57#endif /* RESET_UTILS_H */
58
59// vim: tabstop=4 : softtabstop=4 : shiftwidth=4 : expandtab
60
Note: See TracBrowser for help on using the repository browser.