-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglobals.h
84 lines (59 loc) · 1.31 KB
/
globals.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#ifndef __GLOBALS__
#define __GLOBALS__
#include <pthread.h>
#include <semaphore.h>
#define CAT_HOMEM_PRO 0
#define CAT_MULHER_PRO 1
#define CAT_HOMEM_AMADOR 2
#define CAT_MULHER_AMADORA 3
#define NUM_CATEGORIAS 4
#define ETAPA_NATACAO 0
#define ETAPA_T1 1
#define ETAPA_CICLISMO 2
#define ETAPA_T2 3
#define ETAPA_CORRIDA 4
#define NUM_ETAPAS 5
#define CICLISMO_SUBIDA 0
#define CICLISMO_PLANO 1
#define CICLISMO_DESCIDA 2
typedef struct{
int min[NUM_CATEGORIAS], max[NUM_CATEGORIAS];
}velocidades;
typedef struct{
int categoria;
int id;
}info_atleta;
typedef struct{
int terreno;
int atletas[3];
}km_estrada;
typedef struct portalnode *portal;
struct portalnode{
int id;
int tempo;
portal next;
};
pthread_t *atleta;
pthread_t classificacao;
pthread_t sync_thread;
sem_t *arrive;
sem_t *libera;
portal PortalT1Ent, PortalT1Sai, PortalT2Ent, PortalT2Sai;
sem_t pt1e, pt1s, pt2e, pt2s;
km_estrada estrada[180];
sem_t mutex_estrada[180];
sem_t *classificacao_posicao;
int *categoria_atleta;
int todos_done;
int *em_portal;
int distancia_etapa[NUM_ETAPAS];
int *tempo_corrido;
int *distancia_percorrida[NUM_ETAPAS];
int *etapa_atual;
int tempo_anuncio;
velocidades *velocidades_etapa[NUM_ETAPAS];
int num_atletas;
int participantes_categoria[NUM_CATEGORIAS];
int *done;
sem_t init;
#endif /*__GLOBALS__*/