#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "parser.h"
#include "dallocate.h"
#include "global.h"
Go to the source code of this file.
Functions | |
void | free_cfgframe_object (struct cfg_frame *cfg) |
void | free_dataframe_object (struct data_frame *df) |
void | free_2darray (unsigned char **array, int n) |
void free_2darray | ( | unsigned char ** | array, | |
int | n | |||
) |
Definition at line 164 of file dallocate.c.
References i.
Referenced by free_cfgframe_object(), and free_dataframe_object().
00164 { 00165 00166 int i; 00167 for(i = 0; i < n; i++) 00168 free(array[i]); 00169 free(array); 00170 }
void free_cfgframe_object | ( | struct cfg_frame * | cfg | ) |
Definition at line 53 of file dallocate.c.
References channel_names::angnames, for_each_pmu::annmr, for_each_pmu::anunit, for_each_pmu::cfg_cnt, for_each_pmu::cnext, for_each_pmu::data_format, cfg_frame::data_rate, dgnames::dg_next, dgnames::dgn, for_each_pmu::dgnmr, for_each_pmu::dgunit, channel_names::first, for_each_pmu::fmt, for_each_pmu::fnom, fp_log, cfg_frame::fracsec, cfg_frame::framesize, free_2darray(), cfg_frame::idcode, for_each_pmu::idcode, cfg_frame::num_pmu, channel_names::phnames, for_each_pmu::phnmr, for_each_pmu::phunit, cfg_frame::pmu, cfg_frame::soc, for_each_pmu::stn, cfg_frame::time_base, and to_intconvertor().
Referenced by cfgparser(), and remove_llnode().
00053 { 00054 00055 int j = 0; 00056 unsigned int phn,ann,dgn,num_pmu; 00057 struct dgnames *t_dgnames,*r_dgnames; 00058 fprintf(fp_log,"Inside free_cfgframe_object()\n"); 00059 00060 num_pmu = to_intconvertor(cfg->num_pmu); 00061 00062 while(j<num_pmu) { 00063 00064 00065 free(cfg->pmu[j]->stn); 00066 free(cfg->pmu[j]->idcode); 00067 free(cfg->pmu[j]->data_format); 00068 free(cfg->pmu[j]->fmt); 00069 00070 // Extract PHNMR, DGNMR, ANNMR 00071 00072 phn = to_intconvertor(cfg->pmu[j]->phnmr); 00073 ann = to_intconvertor(cfg->pmu[j]->annmr); 00074 dgn = to_intconvertor(cfg->pmu[j]->dgnmr); 00075 00076 if(phn != 0) 00077 free_2darray(cfg->pmu[j]->cnext->phnames,phn); 00078 if(ann != 0) 00079 free_2darray(cfg->pmu[j]->cnext->angnames,ann); 00080 00081 if(dgn != 0) { 00082 t_dgnames = cfg->pmu[j]->cnext->first; 00083 00084 while(t_dgnames != NULL) { 00085 00086 r_dgnames = t_dgnames->dg_next; 00087 free_2darray(t_dgnames->dgn,16); 00088 t_dgnames = r_dgnames; 00089 00090 } 00091 } 00092 if(phn != 0) 00093 free_2darray(cfg->pmu[j]->phunit,phn); 00094 if(ann != 0) 00095 free_2darray(cfg->pmu[j]->anunit,ann); 00096 if(dgn != 0) 00097 free_2darray(cfg->pmu[j]->dgunit,dgn); 00098 00099 free(cfg->pmu[j]->phnmr); 00100 free(cfg->pmu[j]->annmr); 00101 free(cfg->pmu[j]->dgnmr); 00102 free(cfg->pmu[j]->fnom); 00103 free(cfg->pmu[j]->cfg_cnt); 00104 00105 j++; 00106 } // End of While 00107 00108 free(cfg->framesize); 00109 free(cfg->idcode); 00110 free(cfg->soc); 00111 free(cfg->fracsec); 00112 free(cfg->time_base); 00113 free(cfg->data_rate); 00114 free(cfg->num_pmu); 00115 free(cfg); 00116 00117 }
void free_dataframe_object | ( | struct data_frame * | df | ) |
Definition at line 124 of file dallocate.c.
References data_for_each_pmu::analog, data_for_each_pmu::annmr, data_for_each_pmu::dfreq, data_for_each_pmu::dgnmr, data_for_each_pmu::digital, data_frame::dpmu, fp_log, data_frame::fracsec, data_frame::framesize, free_2darray(), data_for_each_pmu::freq, data_frame::idcode, data_for_each_pmu::phasors, data_for_each_pmu::phnmr, data_frame::soc, and data_for_each_pmu::stat.
Referenced by assign_df_to_TSB(), and clear_TSB().
00124 { 00125 00126 int j = 0; 00127 fprintf(fp_log,"Inside free_dataframe_object()\n"); 00128 00129 // Free the blocks 00130 while(j < df->num_pmu) { 00131 00132 if(df->dpmu[j]->stat[1] == 0x0F) { 00133 00134 free(df->dpmu[j]->stat); 00135 j++; 00136 continue; 00137 } 00138 00139 free(df->dpmu[j]->stat); 00140 free(df->dpmu[j]->freq); 00141 free(df->dpmu[j]->dfreq); 00142 00143 if(df->dpmu[j]->phnmr != 0) 00144 free_2darray(df->dpmu[j]->phasors,df->dpmu[j]->phnmr); 00145 if(df->dpmu[j]->annmr != 0) 00146 free_2darray(df->dpmu[j]->analog,df->dpmu[j]->annmr); 00147 if(df->dpmu[j]->dgnmr != 0) 00148 free_2darray(df->dpmu[j]->digital,df->dpmu[j]->dgnmr); 00149 j++; 00150 } // End of While 00151 00152 free(df->framesize); 00153 free(df->idcode); 00154 free(df->soc); 00155 free(df->fracsec); 00156 free(df); 00157 }