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

Subversion Repositories 1664

[/] [1664/] [trunk/] [c/] [cpu_1664/] [cpu_1664_asm_asm_comanda__inclui.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mrdmkg
#include "cpu_1664.h"
2
#ifndef linux
3
#include <stdio.h>
4
#endif
5
 
6
void cpu_1664_asm_asm_comanda__inclui(struct cpu_1664 *cpu, n1 *cadena)
7
{
8
 struct lista *lista_parametre=cpu_1664_asm_lista_parametre__cadena(cadena);
9
 #ifdef linux
10
 sN fix_enflue=-1;
11
 #else
12
 FILE *fix_enflue=0;
13
 #endif
14
 
15
 nN i;
16
 for(i=0;((fix_enflue<=0)&&(i<(cpu->lista_inclui_curso->contador/sizeof(P))));i++)
17
 {
18
  struct lista *curso=lista_nova__lista(((struct lista **)(cpu->lista_inclui_curso->datos))[i]);
19
 
20
  if((curso->datos[curso->contador-1]!='/')&&(((struct lista **)(lista_parametre->datos))[0]->datos[0]!='/'))
21
  {
22
   lista_ajunta__dato(curso, '/');
23
  }
24
 
25
  lista_ajunta__lista(curso, ((struct lista **)(lista_parametre->datos))[0]);
26
  #ifdef linux
27
  fix_enflue=open(curso->datos, O_RDONLY);
28
  #else
29
  fix_enflue=fopen((char *)curso->datos, "r");
30
  #endif
31
  lista_libri(curso);
32
 }
33
 
34
 if(fix_enflue<=0)
35
 {
36
  // eror fix_enflue
37
  cadena__f((P)scrive_stdout, "\neror fix_enflue inclui %s\n",((struct lista **)(lista_parametre->datos))[0]->datos);
38
 }
39
 else
40
 {
41
  #ifdef linux
42
  nN grandia_fix_enflue=lseek(fix_enflue, 0, SEEK_END);
43
  lseek(fix_enflue, 0, SEEK_SET);
44
  #else
45
  fseek(fix_enflue, 0, SEEK_END);
46
  nN grandia_fix_enflue=ftell(fix_enflue);
47
  rewind(fix_enflue);
48
  #endif
49
 
50
  if(grandia_fix_enflue>0)
51
  {
52
   #ifdef linux
53
   n1 *mmap_fix_enflue=(n1 *)memoria_nova(grandia_fix_enflue);
54
   read(fix_enflue, mmap_fix_enflue, grandia_fix_enflue);
55
   //n1 *mmap_fix_enflue=mmap(0, grandia_fix_enflue, PROT_READ, MAP_SHARED, fix_enflue, 0);
56
   cpu_1664_asm_ajunta__cadena(cpu, mmap_fix_enflue, grandia_fix_enflue);
57
   //munmap(mmap_fix_enflue, grandia_fix_enflue);
58
   #else
59
   n1 *fix_m=(n1 *)memoria_nova(grandia_fix_enflue);
60
   grandia_fix_enflue=fread(fix_m, 1, grandia_fix_enflue, fix_enflue);
61
   cpu_1664_asm_ajunta__cadena(cpu, fix_m, grandia_fix_enflue);
62
   memoria_libri(fix_m);
63
   #endif
64
  }
65
 
66
  #ifdef linux
67
  close(fix_enflue);
68
  #else
69
  fclose(fix_enflue);
70
  #endif
71
 }
72
 
73
 lista_2_libri(lista_parametre);
74
}

powered by: WebSVN 2.1.0

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