dallocate.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void free_cfgframe_object (struct cfg_frame *cfg)
void free_dataframe_object (struct data_frame *)
void free_2darray (unsigned char **array, int x)

Function Documentation

void free_2darray ( unsigned char **  array,
int  x 
)

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 } 

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

void free_dataframe_object ( struct data_frame  ) 

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Tue Jun 7 13:36:07 2011 for iPDC-(PhasorDataConcentrator) by  doxygen 1.6.3