Annotation of ADD_ver_10/Source Code/Header Files/tipos.h, revision 1.1

1.1     ! rico        1: /*****************************************************************************/
        !             2: /* MÓDULO: tipos.h                                                           */
        !             3: /*                                                                           */
        !             4: /* Módulo con definiciones de tipos.                                         */
        !             5: /*****************************************************************************/
        !             6: /* Fecha: 15 de septiembre de 2005                                           */
        !             7: /*****************************************************************************/
        !             8: 
        !             9: /* siempre que "defines.h" haya sido incluido previamente en el mismo módulo */
        !            10: /* que utiliza éste fichero no hace falta añadir esto: #include "defines.h"  */
        !            11: 
        !            12: 
        !            13: 
        !            14: /* CONFIGURACIÓN */
        !            15: /* estructura con los argumentos de configuración */
        !            16: 
        !            17: struct argumentos {
        !            18:     /* OBSERVACIONES */
        !            19:     char captura[MAX_LINE];                /* tipo de captura de configuración (OBSERVACIONES) */
        !            20:     /* FICHERO DE CONFIGURACIÓN POR DEFECTO */
        !            21:     char ficheroconfig[MAX_LINE];        /* fichero de configuración */
        !            22:     /* FICHEROS DE BASE DE DATOS */
        !            23:     char ficheronemos[MAX_LINE];        /* fichero de operaciones */
        !            24:     char ficheroubis[MAX_LINE];            /* fichero de símbolos */
        !            25:     char ficherociclos[MAX_LINE];        /* fichero de ciclos */
        !            26:     /* ORIGEN DE DATOS */
        !            27:     char origen;                        /* código de origen de datos */
        !            28:                                         /* 0: TRAZA; 1: SECUENCIA; 2: CADENAHEX */
        !            29:     char ficherodatos[MAX_LINE];        /* fichero de origen de datos -si existe- */
        !            30:     char cadenahex[MAX_HEX];            /* instrucción en hexadecimal */
        !            31:     double rango;                        /* porcentaje a analizar -sólo TRAZA- */
        !            32:     double comienzo;                    /* comienzo en porcentaje a analizar -sólo TRAZA- */
        !            33:     unsigned long primera;                /* instrucción de comienzo */
        !            34:     unsigned long ultima;                /* instrucción de final */
        !            35:     /* EVALUAR */
        !            36:     char recuentos;                        /* ¿hacer recuentos? */
        !            37:     char cpi;                            /* ¿asignar ciclos a cada instrucción? */
        !            38:     char dependencias;                    /* ¿hacer análisis de dependencias de datos? */
        !            39:     /* PARÁMETROS DE ANÁLISIS DE DEPENDENCIAS DE DATOS */
        !            40:     unsigned int ventana;                /* tamaño de la ventana de instrucciones */
        !            41:     char listaubis[MAX_LISTA];            /* listado de ubicaciones que van a la pizarra */
        !            42:     char desacoplartipos;                /* ¿desacoplar tipos de dependencias? */
        !            43:     char verdaderas;                    /* ¿considerar dependencias verdaderas? */
        !            44:     char antidependencias;                /* ¿considerar antidependencias? */
        !            45:     char salida;                        /* ¿considerar dependencias de salida? */
        !            46:     char desacoplarorigen;                /* ¿desacoplar implìcitas-explícitas? */
        !            47:     char explicitos;                    /* ¿considerar explícitas? */
        !            48:     char implicitos;                    /* ¿considerar implícitas? */
        !            49:     char desacoplarfuentes;                /* ¿desacoplar fuentes de dependencias? */
        !            50:     char datos;                            /* ¿origen de dependencias de datos? */
        !            51:     char direcciones;                    /* ¿origen de dependencias de direcciones? */
        !            52:     char pila;                            /* ¿origen de dependencias de pila? */
        !            53:     char cc;                            /* ¿origen de dependencias de códigos de condición? */
        !            54:     /* CALCULAR */
        !            55:     char CPImedio;                        /* ¿calcular CPI medio? */
        !            56:     char tiempo;                        /* ¿calcular tiempo de ejecución? */
        !            57:     char ordenparcial;                    /* ¿obtener lista orden parcial? */
        !            58:     char matrizcaminos;                    /* ¿calcular la matriz de caminos? */
        !            59:     char pasoscomputacion;                /* ¿calcular pasos de computación? */
        !            60:     char gradoparalelismo;                /* ¿determinar grado de paralelismo? */
        !            61:     char acoplamiento;                    /* ¿calcular acoplamiento? */
        !            62:     char distribucionpasos;                /* ¿construir distribución de pasos de computación para D? */
        !            63:     /* CONFIGURACIÓN DEL INFORME */
        !            64:     char volcarBD;                        /* volcar BD a ficheros */
        !            65:     char crearficheroconfig;            /* volcar configuracion en un fichero nuevo */
        !            66:     char nuevoficheroconfig[MAX_LINE];    /* nombre del nuevo fichero de configuración */
        !            67:     char volcarventana[MAX_LISTA];        /* listado de ventanas a volcar en ficheros EXCEL */
        !            68:     char ficheroresultados[MAX_LINE];    /* fichero de resultados */
        !            69:     char nivelnotificaciones;            /* nivel de gravedad de los mensajes registrados en el */
        !            70:                                         /* fichero de log de sucesos: 0(ALL), 1(EX_CFG), 2(ERRORS) */
        !            71:     /* GUI */
        !            72:     char verinstruccion;                /* muestra información de la instrucción en pantalla */
        !            73:     char verventana;                    /* muestra información de la ventana en pantalla */
        !            74: };
        !            75: 
        !            76: 
        !            77: 
        !            78: /* BASES DE DATOS */
        !            79: /* defino tipo para los registros de las operaciones */
        !            80: 
        !            81: typedef struct {
        !            82:     char nemonico[MAX_NEMO];         /* nemónico */
        !            83:     char tipo;                       /* tipo de operación */
        !            84:     char modo_op1;                   /* leída, escrita o leída y escrita */
        !            85:     char modo_op2;                   /* leído, escrito o leído y escrito */
        !            86:     char implicitos_escritos[MAX_LISTA];    /* implícitos escritos */
        !            87:     char implicitos_leidos[MAX_LISTA];      /* implícitos leídos */
        !            88: }operacion;
        !            89: 
        !            90: 
        !            91: /* defino tipo para los registros de los operandos */
        !            92: 
        !            93: typedef struct {
        !            94:     char simbolo[MAX_UBI];           /* símbolos de datos */
        !            95:     char tipo;                       /* tipo de ubicación */
        !            96:     char dependencias[MAX_DEPEN];    /* dependencias con otros símbolos */
        !            97:     char segmento;                   /* segmento por defecto */
        !            98: }operando;
        !            99: 
        !           100: 
        !           101: /* defino tipo para los registros de los tiempos */
        !           102: 
        !           103: typedef struct {
        !           104:     char identificador[MAX_NEMO];    /* identificador de operación, operando, etc. */
        !           105:     char ciclos;                     /* tiempo en ciclos */
        !           106: }tiempo;
        !           107: 
        !           108: 
        !           109: 
        !           110: /* DESENSAMBLADO */
        !           111: /* estructura de desensamblado */
        !           112: 
        !           113: struct desensamblado{
        !           114:     char nemonico[MAX_NEMO];         /* nemónico de la instrucción */
        !           115:     char op1[MAX_OPE];               /* operando 1 (destino) */
        !           116:     char op2[MAX_OPE];               /* operando 2 (fuente) */
        !           117:     char longitud;                   /* longitud del formato */
        !           118: };
        !           119: 
        !           120: 
        !           121: /* defino tipo para salvar el análisis completo de los operandos */
        !           122: /* aunque se usa una vez es posible que en el futuro se deba */
        !           123: /* construir un array para hacer un análisis más fino en 2 pasadas */
        !           124: 
        !           125: typedef struct {
        !           126:     char nemonico[MAX_NEMO];         /* nemónico de la instrucción */
        !           127:     char op1[MAX_OPE];               /* operando 1 (destino) */
        !           128:     char op2[MAX_OPE];               /* operando 2 (fuente) */
        !           129:     char hexadecimal[MAX_HEX];       /* cadena hexadecimal */
        !           130:     char longitud;                   /* longitud de la instrucción en bytes */
        !           131: 
        !           132:     char prefijo[MAX_NEMO];          /* prefijo -si lo hay- */
        !           133:     char salto;                      /* 0 incond; 1 no salto; 2 salta; 3 no salta */
        !           134: 
        !           135:     unsigned short int ciclosALU;    /* ciclos de operación */
        !           136:     unsigned short int ciclosBIU;    /* ciclos debidos a los operandos */
        !           137: 
        !           138:     char leidoimpldatos[MAX_LISTA];         /* datos leídos implícitamente */
        !           139:     char leidoimpldir[MAX_LISTA];           /* leídos implícitamente direccionar */
        !           140:     char leidoimplpila[MAX_LISTA];          /* leídos implícitamente acceso a pila */
        !           141:     char leidoimplestado[MAX_LISTA];        /* cód. condición leídos implícitamente */
        !           142: 
        !           143:     char leidoexpldatos[MAX_LISTA];         /* datos leídos explícitamente */
        !           144:     char leidoexpldir[MAX_LISTA];           /* leídos explícitamente direccionar */
        !           145:     char leidoexplpila[MAX_LISTA];          /* leídos explícitamente acceso a pila */
        !           146:     char leidoexplestado[MAX_LISTA];        /* cc. leídos explícitamente */
        !           147: 
        !           148:     char escritoimpldatos[MAX_LISTA];       /* datos escritos implícitamente */
        !           149:     char escritoimpldir[MAX_LISTA];         /* escritos implícitamente direccionar */
        !           150:     char escritoimplpila[MAX_LISTA];        /* escritos implícitamente acceso a pila */
        !           151:     char escritoimplestado[MAX_LISTA];      /* cc. escritos implícitamente */
        !           152: 
        !           153:     char escritoexpldatos[MAX_LISTA];       /* datos escritos explícitamente */
        !           154:     char escritoexpldir[MAX_LISTA];         /* escritos explícitamente direccionar */
        !           155:     char escritoexplpila[MAX_LISTA];        /* escritos explícitamente acceso a pila */
        !           156:     char escritoexplestado[MAX_LISTA];      /* cc. escritos explícitamente */
        !           157: }fichainstruccion;
        !           158: 
        !           159: 
        !           160: 
        !           161: /* ANÁLISIS DE DEPENDENCIAS */
        !           162: /* defino tipo para los identificadores de ubicaciones de datos */
        !           163: 
        !           164: typedef struct {
        !           165:     char nombre[MAX_UBI];            /* identificador de ubicación */
        !           166: }ubicacion;
        !           167: 
        !           168: 
        !           169: /* estructura con los punteros de las matrices de dependencias */
        !           170: 
        !           171: struct punterosD{
        !           172:     unsigned char **Ddatoexp;        /* matriz de dependencias de datos explícitos */ 
        !           173:     unsigned char **Ddir_exp;        /* matriz de dependencias de direcciones explícitas */
        !           174:     unsigned char **Dpilaexp;        /* matriz de dependencias de pila explícitas */ 
        !           175:     unsigned char **Destadoexp;        /* matriz de dependencias de estado explícitas */
        !           176:     unsigned char **Ddatoimp;        /* matriz de dependencias de datos implícitos */ 
        !           177:     unsigned char **Ddir_imp;        /* matriz de dependencias de direcciones implícitas */
        !           178:     unsigned char **Dpilaimp;        /* matriz de dependencias de pila implícitas */ 
        !           179:     unsigned char **Destadoimp;        /* matriz de dependencias de estado implícitas */
        !           180: 
        !           181:     unsigned char **ADdatoexp;        /* matriz de antidependencias de datos explícitos */ 
        !           182:     unsigned char **ADdir_exp;        /* matriz de antidependencias de direcciones explícitas */
        !           183:     unsigned char **ADpilaexp;        /* matriz de antidependencias de pila explícitas */ 
        !           184:     unsigned char **ADestadoexp;    /* matriz de antidependencias de estado explícitas */
        !           185:     unsigned char **ADdatoimp;        /* matriz de antidependencias de datos implícitos */ 
        !           186:     unsigned char **ADdir_imp;        /* matriz de antidependencias de direcciones implícitas */
        !           187:     unsigned char **ADpilaimp;        /* matriz de antidependencias de pila implícitas */ 
        !           188:     unsigned char **ADestadoimp;    /* matriz de antidependencias de estado implícitas */
        !           189: 
        !           190:     unsigned char **Sdatoexp;        /* matriz de dependencias de salida de datos explícitos */ 
        !           191:     unsigned char **Sdir_exp;        /* matriz de dependencias de salida de direcciones explícitas */
        !           192:     unsigned char **Spilaexp;        /* matriz de dependencias de salida de pila explícitas */ 
        !           193:     unsigned char **Sestadoexp;        /* matriz de dependencias de salida de estado explícitas */
        !           194:     unsigned char **Sdatoimp;        /* matriz de dependencias de salida de datos implícitos */ 
        !           195:     unsigned char **Sdir_imp;        /* matriz de dependencias de salida de direcciones implícitas */
        !           196:     unsigned char **Spilaimp;        /* matriz de dependencias de salida de pila implícitas */ 
        !           197:     unsigned char **Sestadoimp;        /* matriz de dependencias de salida de estado implícitas */
        !           198: 
        !           199:     unsigned char **D;                /* matriz composición de todas las dependencias */
        !           200: };
        !           201: 
        !           202: 
        !           203: /* defino tipo para salvar parámetros relativos a las matrices de dependencias */
        !           204: 
        !           205: typedef struct {
        !           206:     double Ddatoexp;        /* parámetro asociado a matriz de dependencias de datos explícitos */ 
        !           207:     double Ddir_exp;        /* parámetro asociado a matriz de dependencias de direcciones explícitas */
        !           208:     double Dpilaexp;        /* parámetro asociado a matriz de dependencias de pila explícitas */ 
        !           209:     double Destadoexp;        /* parámetro asociado a matriz de dependencias de estado explícitas */
        !           210:     double Ddatoimp;        /* parámetro asociado a matriz de dependencias de datos implícitos */ 
        !           211:     double Ddir_imp;        /* parámetro asociado a matriz de dependencias de direcciones implícitas */
        !           212:     double Dpilaimp;        /* parámetro asociado a matriz de dependencias de pila implícitas */ 
        !           213:     double Destadoimp;        /* parámetro asociado a matriz de dependencias de estado implícitas */
        !           214: 
        !           215:     double ADdatoexp;        /* parámetro asociado a matriz de antidependencias de datos explícitos */ 
        !           216:     double ADdir_exp;        /* parámetro asociado a matriz de antidependencias de direcciones explícitas */
        !           217:     double ADpilaexp;        /* parámetro asociado a matriz de antidependencias de pila explícitas */ 
        !           218:     double ADestadoexp;        /* parámetro asociado a matriz de antidependencias de estado explícitas */
        !           219:     double ADdatoimp;        /* parámetro asociado a matriz de antidependencias de datos implícitos */ 
        !           220:     double ADdir_imp;        /* parámetro asociado a matriz de antidependencias de direcciones implícitas */
        !           221:     double ADpilaimp;        /* parámetro asociado a matriz de antidependencias de pila implícitas */ 
        !           222:     double ADestadoimp;        /* parámetro asociado a matriz de antidependencias de estado implícitas */
        !           223: 
        !           224:     double Sdatoexp;        /* parámetro asociado a matriz de dependencias de salida de datos explícitos */ 
        !           225:     double Sdir_exp;        /* parámetro asociado a matriz de dependencias de salida de direcciones explícitas */
        !           226:     double Spilaexp;        /* parámetro asociado a matriz de dependencias de salida de pila explícitas */ 
        !           227:     double Sestadoexp;        /* parámetro asociado a matriz de dependencias de salida de estado explícitas */
        !           228:     double Sdatoimp;        /* parámetro asociado a matriz de dependencias de salida de datos implícitos */ 
        !           229:     double Sdir_imp;        /* parámetro asociado a matriz de dependencias de salida de direcciones implícitas */
        !           230:     double Spilaimp;        /* parámetro asociado a matriz de dependencias de salida de pila implícitas */ 
        !           231:     double Sestadoimp;        /* parámetro asociado a matriz de dependencias de salida de estado implícitas */
        !           232: 
        !           233:     double D;                /* parámetro asociado a matriz composición de todas las dependencias */
        !           234: }parametromatriz;
        !           235: 
        !           236: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>