OpenCores
URL https://opencores.org/ocsvn/adv_debug_sys/adv_debug_sys/trunk

Subversion Repositories adv_debug_sys

[/] [adv_debug_sys/] [trunk/] [Software/] [adv_jtag_bridge/] [utilities.c] - Blame information for rev 59

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 43 nyawn
 
2
#include <stdlib.h>
3 59 nyawn
#include <stdio.h>
4
#include <string.h>
5
 
6
#include "utilities.h"
7 43 nyawn
#include "errcodes.h"
8
 
9
 
10
int check_buffer_size(char **buf, int *buf_size_bytes, int requested_size_bytes)
11
{
12
  int ret = APP_ERR_NONE;
13
 
14
  if(*buf_size_bytes >= requested_size_bytes)
15
    {
16
      return APP_ERR_NONE;
17
    }
18
 
19
  free(*buf);
20
  *buf = (char *) malloc(requested_size_bytes);
21
  if(*buf != NULL) {
22
    *buf_size_bytes = requested_size_bytes;
23
  }
24
  else {
25
    *buf_size_bytes = 0;
26
    ret = APP_ERR_MALLOC;
27
  }
28
 
29
  return ret;
30
}
31 59 nyawn
 
32
 
33
int create_timer(timeout_timer * timer)
34
{
35
        int r;
36
        //first timer alarm
37
        timer->wait_time.it_value.tv_sec = 1;
38
        timer->wait_time.it_value.tv_nsec = 0;
39
        //continuous timer alarm -> 0 (we only want one alarm)
40
        timer->wait_time.it_interval.tv_sec = 0;
41
        timer->wait_time.it_interval.tv_nsec = 0;
42
 
43
        timer->sev.sigev_notify = SIGEV_NONE;
44
 
45
        r = timer_create(CLOCK_REALTIME, &timer->sev, &timer->timer);
46
        if ( r )
47
        {
48
                fprintf(stderr, "Timer for timeout failed: %s\n", strerror(r));
49
                return APP_ERR_USB;
50
        }
51
 
52
        //remaining timer time
53
        timer->remaining_time = timer->wait_time;
54
        r = timer_settime(timer->timer, 0, &timer->wait_time, NULL);
55
        if ( r )
56
        {
57
                fprintf(stderr, "Setting timer failed: %s\n", strerror(r));
58
                return APP_ERR_USB;
59
        }
60
        return APP_ERR_NONE;
61
}
62
 
63
int timedout(timeout_timer * timer)
64
{
65
        int timed_out = 0;
66
        timer_gettime(timer->timer, &timer->remaining_time);
67
        timed_out = timer->remaining_time.it_value.tv_sec == 0 && timer->remaining_time.it_value.tv_nsec == 0;
68
        return timed_out;
69
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.