sys_param.h File Reference


Detailed Description

Operating system support module parameter C header file.

REVISION

Definition in file sys_param.h.

#include "stdio.h"
#include "stdlib.h"
#include "../ctype.h"
#include "../c54regs.h"
#include "../feature.h"

Include dependency graph for sys_param.h:

Include dependency graph

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

Included by dependency graph

Go to the source code of this file.

Functions

BOOL SYS_getParams (NEUROS_PARAM, void *)
 Function fetches corresponding system parameters.
BOOL SYS_setParams (NEUROS_PARAM, void *)
 Function sets corresponding system parameters.


Function Documentation

BOOL SYS_getParams NEUROS_PARAM  paramID,
void *  pParamData
 

Function fetches corresponding system parameters.

Parameters:
paramID Parameter ID.
pParamData Parameter data pointer.
Returns:
TRUE if parameter successfully read, otherwise FALSE.

Definition at line 275 of file SYS_params.c.

References GEN_checksum(), MEDIA_RSV_SEC_LEN, NAND_readSec(), st_NAND::nativeMaxAddr, and SYS_loadDefaultEq().

Referenced by FAT_format().

00276 {
00277     unsigned short      buf[256];
00278     int                 ii;
00279     unsigned short *    data = (unsigned short *)pParamData;
00280 
00281     buf[MEDIA_RSV_SEC_MAGIC_WORD_ADDR] = 0;
00282     NAND_readSec( Nand.nativeMaxAddr-MEDIA_RSV_SEC_LEN+1+(paramID/256), buf, FALSE );
00283     if(buf[MEDIA_RSV_SEC_MAGIC_WORD_ADDR] != MEDIA_RSV_SEC_MAGIC_WORD) return FALSE;
00284     
00285     switch ( paramID ) 
00286     {
00287     case READ_PARAMS:
00288         memcpy(pParamData, buf, 256);
00289         break;
00290 
00291     case BTLDR_BACKUP_START_SECTOR:
00292         *data = buf[1];
00293         data++;
00294         *data = buf[2];
00295         break;
00296 
00297     case PREV_HDD_SERIAL_NUMBER:
00298         for ( ii = 0; ii < BKPK_HDD_SERIAL_LEN; ii++ )
00299         {
00300             *data = buf[PREV_HDD_SERIAL_NUMBER+ii];
00301             data++;
00302         }
00303         break;
00304 
00305     case PRESET_CTL:
00306         for ( ii = 0; ii < sizeof(st_PRESET)*6; ii++ )
00307         {
00308             *data = buf[PRESET_CTL+ii];
00309             data++;
00310         }
00311         break;
00312     case PRESET_CHKSUM:
00313     {
00314         for ( ii = 0; ii < 6; ii++ )
00315         {
00316             *data = buf[PRESET_CHKSUM+ii];
00317             data++;
00318         }
00319         break;
00320     }
00321     
00322     case EQUALIZER_STORE:
00323         for ( ii = 0; ii < sizeof(st_EQ); ii++ )
00324         {
00325             *data = buf[EQUALIZER_STORE+ii];
00326             data++;
00327         }
00328         if(GEN_checksum(&buf[EQUALIZER_STORE], sizeof(st_EQ)) != buf[EQUALIZER_STORE+sizeof(st_EQ)])
00329         {
00330             SYS_loadDefaultEq();
00331         }
00332         break;
00333 //DeepB 
00334     case STORE_MYFI:
00335         for ( ii = 0; ii < sizeof(st_RADIOPRESET)*5; ii++ )
00336         {
00337             *data = buf[STORE_MYFI+ii];
00338             data++;     
00339         }
00340         break;
00341     
00342     case STORE_FM:
00343         for ( ii = 0; ii < sizeof(st_RADIOPRESET)*5; ii++ )
00344         {
00345             *data = buf[STORE_FM+ii];
00346             data++;     
00347         }
00348         break;
00349 /*  
00350     case STORE_ARTIST:
00351         for ( ii = 0; ii < sizeof(st_AUDIOPRESET)*5; ii++ )
00352         {
00353             *data = buf[STORE_ARTIST+ii];
00354             data++;     
00355         }
00356         break;
00357     
00358     case STORE_ALBUM:
00359         for ( ii = 0; ii < sizeof(st_AUDIOPRESET)*5; ii++ )
00360         {
00361             *data = buf[STORE_ALBUM+ii];
00362             data++;     
00363         }
00364         break;
00365     
00366     case STORE_GENRE:
00367         for ( ii = 0; ii < sizeof(st_AUDIOPRESET)*5; ii++ )
00368         {
00369             *data = buf[STORE_GENRE+ii];
00370             data++;     
00371         }
00372         break;
00373 */  
00374     #ifdef ALARM_SUPPORT
00375     case ALARM_CTL:
00376         for(ii = 0; ii < sizeof(st_ALARM)*5; ii++)
00377         {
00378             *data = buf[ALARM_CTL+ii];
00379             data++;
00380         }   
00381         break;
00382 
00383     case ALARM_CKSUM:
00384         *data = buf[ALARM_CKSUM];
00385         break;
00386     #endif
00387     
00388     case UNFINISHED_ACTION:
00389         memcpy(data, &buf[paramID%256], 128);
00390         break;
00391 
00392     default: // Get one-word parameter.
00393         *data = buf[paramID];
00394         break;
00395     }
00396     
00397     return TRUE;
00398 }

Here is the call graph for this function:

BOOL SYS_setParams NEUROS_PARAM  paramID,
void *  pParamData
 

Function sets corresponding system parameters.

Parameters:
paramID Parameter ID.
pParamData Parameter data pointer.
Returns:
TRUE if parameter successfully written, otherwise FALSE.

Definition at line 412 of file SYS_params.c.

References GEN_checksum(), MEDIA_RSV_SEC_LEN, NAND_readSec(), NAND_writeSec(), and st_NAND::nativeMaxAddr.

Referenced by FAT__format(), FAT_format(), and SYS_saveParams().

00413 {
00414     unsigned long       sec;
00415     int                 ii;
00416     unsigned short *    data = (unsigned short *)pParamData;
00417     unsigned short      buf[256];
00418 
00419     sec = Nand.nativeMaxAddr-MEDIA_RSV_SEC_LEN+1+(paramID/256);
00420     NAND_readSec( sec, buf, FALSE);
00421     buf[MEDIA_RSV_SEC_MAGIC_WORD_ADDR] = MEDIA_RSV_SEC_MAGIC_WORD;
00422     
00423     switch ( paramID ) 
00424     {
00425     case WRITE_PARAMS:
00426         memcpy(buf, pParamData, 256);
00427         break;
00428         
00429     case BTLDR_BACKUP_START_SECTOR:
00430         buf[1] = *data;
00431         data++;
00432         buf[2] = *data;
00433         break;
00434 
00435     case PREV_HDD_SERIAL_NUMBER:
00436         for ( ii = 0; ii < BKPK_HDD_SERIAL_LEN; ii++ )
00437         {
00438             buf[PREV_HDD_SERIAL_NUMBER+ii] = *data;
00439             data++;
00440         }
00441         break;
00442 
00443     case PRESET_CTL:    
00444         for ( ii = 0; ii < sizeof(st_PRESET)*6; ii++)
00445         {
00446             buf[PRESET_CTL+ii] = *data;
00447             data++;     
00448         }
00449         break;
00450         
00451     case PRESET_CHKSUM: 
00452         for ( ii = 0; ii < 6; ii++)
00453         {
00454             buf[PRESET_CHKSUM+ii] = *data;
00455             data++;     
00456         }
00457         break;
00458 
00459     case EQUALIZER_STORE:
00460         for ( ii = 0; ii < sizeof(st_EQ); ii++ )
00461         {
00462             buf[EQUALIZER_STORE+ii] = *data;
00463             data++;     
00464         }
00465         buf[EQUALIZER_STORE+sizeof(st_EQ)] = GEN_checksum(&buf[EQUALIZER_STORE], sizeof(st_EQ));
00466         break;
00467 //DeepB 
00468     case STORE_MYFI:
00469         for ( ii = 0; ii < sizeof(st_RADIOPRESET)*5; ii++ )
00470         {
00471             buf[STORE_MYFI+ii] = *data;
00472             data++;     
00473         }
00474         break;
00475     
00476     case STORE_FM:
00477         for ( ii = 0; ii < sizeof(st_RADIOPRESET)*5; ii++ )
00478         {
00479             buf[STORE_FM+ii] = *data;
00480             data++;     
00481         }
00482         break;
00483 /*  
00484     case STORE_ARTIST:
00485         for ( ii = 0; ii < sizeof(st_AUDIOPRESET)*5; ii++ )
00486         {
00487             buf[STORE_ARTIST+ii] = *data;
00488             data++;     
00489         }
00490         break;
00491     
00492     case STORE_ALBUM:
00493         for ( ii = 0; ii < sizeof(st_AUDIOPRESET)*5; ii++ )
00494         {
00495             buf[STORE_ALBUM+ii] = *data;
00496             data++;     
00497         }
00498         break;
00499     
00500     case STORE_GENRE:
00501         for ( ii = 0; ii < sizeof(st_AUDIOPRESET)*5; ii++ )
00502         {
00503             buf[STORE_GENRE+ii] = *data;
00504             data++;     
00505         }
00506         break;
00507 */  
00508     #ifdef ALARM_SUPPORT
00509     case ALARM_CTL:
00510         for ( ii = 0; ii < sizeof(st_ALARM)*5; ii++)
00511         {
00512             buf[ALARM_CTL+ii] = *data;
00513             data++;     
00514         }
00515         break;
00516 
00517     case ALARM_CKSUM:
00518         buf[ALARM_CKSUM] = *data;
00519         break;
00520     #endif
00521     
00522     case UNFINISHED_ACTION:
00523         memcpy(&buf[paramID%256], data, 128);
00524         break;
00525 
00526     default: // set one-word parameter.
00527         buf[paramID] = *data;
00528         break;
00529     }
00530 
00531     NAND_writeSec(sec, buf, FALSE );
00532 
00533     return TRUE;
00534 }

Here is the call graph for this function:


Generated on Wed Jan 19 01:13:19 2005 for neuros-firmware by  doxygen 1.3.9.1