kernel/eka/drivers/hcr/hcr_api.cpp
changeset 31 56f325a607ea
parent 0 a41df078684a
child 39 5d2844f35677
equal deleted inserted replaced
15:4122176ea935 31:56f325a607ea
    42                                     TSettingType aType, UValueWord& aValue)
    42                                     TSettingType aType, UValueWord& aValue)
    43     {
    43     {
    44     HCR_FUNC("GetUValueWordSetting");
    44     HCR_FUNC("GetUValueWordSetting");
    45                  
    45                  
    46     if (HCRNotReady)
    46     if (HCRNotReady)
    47         HCR_LOG_RETURN(KErrNotReady);
    47         HCR_TRACE_RETURN(KErrNotReady);
    48 
    48 
    49     TSettingRef sref(0,0);
    49     TSettingRef sref(0,0);
    50     TInt err = 0;
    50     TInt err = 0;
    51     err = HCRSingleton->FindSetting(aId, aType, sref);
    51     err = HCRSingleton->FindSetting(aId, aType, sref);
    52     if (err != KErrNone)
    52     if (err != KErrNone)
    53         HCR_LOG_RETURN(err);
    53         HCR_TRACE_RETURN(err);
    54 
    54 
    55     err = sref.iRep->GetValue(sref, aValue);
    55     err = sref.iRep->GetValue(sref, aValue);
    56     if (err != KErrNone)
    56     if (err != KErrNone)
    57         HCR_LOG_RETURN(err);
    57         HCR_TRACE_RETURN(err);
    58     
    58     
    59     return KErrNone;	
    59     return KErrNone;	
    60     }
    60     }
    61     
    61     
    62 LOCAL_C TInt GetUValueLargeSetting64 (const TSettingId& aId, 
    62 LOCAL_C TInt GetUValueLargeSetting64 (const TSettingId& aId, 
    63                                     TSettingType aType, UValueLarge& aValue)
    63                                     TSettingType aType, UValueLarge& aValue)
    64     {
    64     {
    65     HCR_FUNC("GetUValueLargeSetting64");
    65     HCR_FUNC("GetUValueLargeSetting64");
    66                  
    66                  
    67     if (HCRNotReady)
    67     if (HCRNotReady)
    68 		HCR_LOG_RETURN(KErrNotReady);
    68 		HCR_TRACE_RETURN(KErrNotReady);
    69 
    69 
       
    70     __NK_ASSERT_DEBUG(aType == ETypeInt64 || aType == ETypeUInt64);
       
    71     
    70     TSettingRef sref(0,0);
    72     TSettingRef sref(0,0);
    71     TInt err = 0;
    73     TInt err = 0;
    72     err = HCRSingleton->FindSetting(aId, aType, sref);
    74     err = HCRSingleton->FindSetting(aId, aType, sref);
    73     if (err != KErrNone)
    75     if (err != KErrNone)
    74         HCR_LOG_RETURN(err);
    76         HCR_TRACE_RETURN(err);
    75 
    77 
    76     err = sref.iRep->GetLargeValue(sref, aValue);
    78     err = sref.iRep->GetLargeValue(sref, aValue);
    77     if (err != KErrNone)
    79     if (err != KErrNone)
    78         HCR_LOG_RETURN(err);
    80         HCR_TRACE_RETURN(err);
    79     
    81     
    80     return KErrNone;	
    82     return KErrNone;	
    81     }
    83     }
    82     
    84     
    83 
    85 
    85                                         TSettingType aType, TDes8& aValue)
    87                                         TSettingType aType, TDes8& aValue)
    86     {
    88     {
    87     HCR_FUNC("GetUValueLargeSettingTDes8");
    89     HCR_FUNC("GetUValueLargeSettingTDes8");
    88                  
    90                  
    89     if (HCRNotReady)
    91     if (HCRNotReady)
    90 	    HCR_LOG_RETURN(KErrNotReady);
    92 	    HCR_TRACE_RETURN(KErrNotReady);
    91 
    93 
       
    94     __NK_ASSERT_DEBUG(aType == ETypeBinData || aType == ETypeText8);
       
    95     
    92     TSettingRef sref(0,0);
    96     TSettingRef sref(0,0);
    93     TInt err = 0;
    97     TInt err = 0;
    94     err = HCRSingleton->FindSetting(aId, aType, sref);
    98     err = HCRSingleton->FindSetting(aId, aType, sref);
    95     if (err != KErrNone)
    99     if (err != KErrNone)
    96         HCR_LOG_RETURN(err);
   100         HCR_TRACE_RETURN(err);
    97 
   101 
    98     UValueLarge value;
   102     UValueLarge value;
    99     err = sref.iRep->GetLargeValue(sref, value);
   103     err = sref.iRep->GetLargeValue(sref, value);
   100     if (err != KErrNone)
   104     if (err != KErrNone)
   101         HCR_LOG_RETURN(err);
   105         HCR_TRACE_RETURN(err);
   102    
   106    
   103     TInt len = sref.iRep->GetLength(sref);
   107     TInt len = sref.iRep->GetLength(sref);
   104     if (len > aValue.MaxSize())
   108     if (len > aValue.MaxSize())
   105         HCR_LOG_RETURN(KErrTooBig);    
   109         HCR_TRACE_RETURN(KErrTooBig);    
   106     
   110     
   107     if (aType == ETypeBinData)
   111     if (aType == ETypeBinData)
   108         aValue.Copy(value.iData, len);
   112         aValue.Copy(value.iData, len);
   109     else
   113     else
   110         aValue.Copy(value.iString8, len);
   114         aValue.Copy(value.iString8, len);
   116                                     TUint16 aMaxLen, TUint8* aValue, TUint16& aLen)
   120                                     TUint16 aMaxLen, TUint8* aValue, TUint16& aLen)
   117     {
   121     {
   118     HCR_FUNC("GetUValueLargeSettingTUint8");
   122     HCR_FUNC("GetUValueLargeSettingTUint8");
   119                  
   123                  
   120     if (HCRNotReady)
   124     if (HCRNotReady)
   121 	    HCR_LOG_RETURN(KErrNotReady);
   125 	    HCR_TRACE_RETURN(KErrNotReady);
   122 
   126 
       
   127     __NK_ASSERT_DEBUG(aType == ETypeBinData || aType == ETypeText8);
       
   128     
   123     TSettingRef sref(0,0);
   129     TSettingRef sref(0,0);
   124     TInt err = 0;
   130     TInt err = 0;
   125     err = HCRSingleton->FindSetting(aId, aType, sref);
   131     err = HCRSingleton->FindSetting(aId, aType, sref);
   126     if (err != KErrNone)
   132     if (err != KErrNone)
   127         HCR_LOG_RETURN(err);
   133         HCR_TRACE_RETURN(err);
   128 
   134 
   129     UValueLarge value;
   135     UValueLarge value;
   130     err = sref.iRep->GetLargeValue(sref, value);
   136     err = sref.iRep->GetLargeValue(sref, value);
   131 	    if (err != KErrNone)
   137 	    if (err != KErrNone)
   132         HCR_LOG_RETURN(err);
   138         HCR_TRACE_RETURN(err);
   133    
   139    
   134     aLen = sref.iRep->GetLength(sref);
   140     aLen = sref.iRep->GetLength(sref);
   135     if (aLen > aMaxLen)
   141     if (aLen > aMaxLen)
   136         HCR_LOG_RETURN(KErrTooBig);    
   142         HCR_TRACE_RETURN(KErrTooBig);    
   137     
   143     
   138     if (aType == ETypeBinData)
   144     if (aType == ETypeBinData)
   139         memcpy (aValue, value.iData, aLen);
   145         memcpy (aValue, value.iData, aLen);
   140     else
   146     else
   141         memcpy (aValue, value.iString8, aLen);
   147         memcpy (aValue, value.iString8, aLen);
   147                                     TUint16 aMaxLen, TUint32* aValue, TUint16& aLen)
   153                                     TUint16 aMaxLen, TUint32* aValue, TUint16& aLen)
   148     {
   154     {
   149     HCR_FUNC("GetUValueLargeSettingArray");
   155     HCR_FUNC("GetUValueLargeSettingArray");
   150                  
   156                  
   151     if (HCRNotReady)
   157     if (HCRNotReady)
   152 	    HCR_LOG_RETURN(KErrNotReady);
   158 	    HCR_TRACE_RETURN(KErrNotReady);
   153 
   159 
       
   160 	__NK_ASSERT_DEBUG(aType == ETypeArrayInt32 || aType == ETypeArrayUInt32);
       
   161 	
   154     TSettingRef sref(0,0);
   162     TSettingRef sref(0,0);
   155     TInt err = 0;
   163     TInt err = 0;
   156     err = HCRSingleton->FindSetting(aId, aType, sref);
   164     err = HCRSingleton->FindSetting(aId, aType, sref);
   157     if (err != KErrNone)
   165     if (err != KErrNone)
   158         HCR_LOG_RETURN(err);
   166         HCR_TRACE_RETURN(err);
   159 
   167 
   160     UValueLarge value;
   168     UValueLarge value;
   161     err = sref.iRep->GetLargeValue(sref, value);
   169     err = sref.iRep->GetLargeValue(sref, value);
   162     if (err != KErrNone)
   170 	__NK_ASSERT_DEBUG(err == KErrNone);
   163         HCR_LOG_RETURN(err);
       
   164    
   171    
   165     aLen = sref.iRep->GetLength(sref);
   172     aLen = sref.iRep->GetLength(sref);
   166     if (aLen > aMaxLen)
   173     if (aLen > aMaxLen)
   167         HCR_LOG_RETURN(KErrTooBig);    
   174         HCR_TRACE_RETURN(KErrTooBig);    
   168     
   175     
   169     if (aType == ETypeArrayInt32)
   176     if (aType == ETypeArrayInt32)
   170         memcpy (aValue, value.iArrayInt32, aLen);
   177         memcpy (aValue, value.iArrayInt32, aLen);
   171     else if (aType == ETypeArrayUInt32)
   178     else 
   172         memcpy (aValue, value.iArrayUInt32, aLen);
   179         memcpy (aValue, value.iArrayUInt32, aLen);
   173     else
       
   174     	HCR_LOG_RETURN(KErrGeneral);
       
   175     
   180     
   176     return KErrNone;	
   181     return KErrNone;	
   177     }
   182     }
   178     
   183     
   179 }
   184 }
   190     HCR_FUNC("HCR::GetInt8");
   195     HCR_FUNC("HCR::GetInt8");
   191     
   196     
   192     UValueWord value;
   197     UValueWord value;
   193     TInt err = GetUValueWordSetting(aId, ETypeInt8, value);
   198     TInt err = GetUValueWordSetting(aId, ETypeInt8, value);
   194     if (err != KErrNone)
   199     if (err != KErrNone)
   195         HCR_LOG_RETURN(err);        
   200         HCR_TRACE_RETURN(err);        
   196     
   201     
   197     aValue = value.iInt8;
   202     aValue = value.iInt8;
   198     return KErrNone;    
   203     return KErrNone;    
   199 #else    
   204 #else    
   200     return KErrNotSupported;
   205     HCR_TRACE_RETURN(KErrGeneral);
   201 #endif // MAKE_DEF_FILE
   206 #endif // MAKE_DEF_FILE
   202     }
   207     }
   203     
   208     
   204     
   209     
   205 EXPORT_C TInt HCR::GetInt(const TSettingId& aId, TInt16& aValue) 
   210 EXPORT_C TInt HCR::GetInt(const TSettingId& aId, TInt16& aValue) 
   208     HCR_FUNC("HCR::GetInt16");
   213     HCR_FUNC("HCR::GetInt16");
   209     
   214     
   210     UValueWord value;
   215     UValueWord value;
   211     TInt err = GetUValueWordSetting(aId, ETypeInt16, value);
   216     TInt err = GetUValueWordSetting(aId, ETypeInt16, value);
   212     if (err != KErrNone)
   217     if (err != KErrNone)
   213         HCR_LOG_RETURN(err);        
   218         HCR_TRACE_RETURN(err);        
   214     
   219     
   215     aValue = value.iInt16;
   220     aValue = value.iInt16;
   216     return KErrNone;    
   221     return KErrNone;    
   217 #else    
   222 #else    
   218     return KErrNotSupported;
   223     HCR_TRACE_RETURN(KErrGeneral);
   219 #endif // MAKE_DEF_FILE
   224 #endif // MAKE_DEF_FILE
   220     }
   225     }
   221     
   226     
   222 
   227 
   223 EXPORT_C TInt HCR::GetInt(const TSettingId& aId, TInt32& aValue) 
   228 EXPORT_C TInt HCR::GetInt(const TSettingId& aId, TInt32& aValue) 
   226     HCR_FUNC("HCR::GetInt32");
   231     HCR_FUNC("HCR::GetInt32");
   227     
   232     
   228         UValueWord value;
   233         UValueWord value;
   229     TInt err = GetUValueWordSetting(aId, ETypeInt32, value);
   234     TInt err = GetUValueWordSetting(aId, ETypeInt32, value);
   230     if (err != KErrNone)
   235     if (err != KErrNone)
   231         HCR_LOG_RETURN(err);        
   236         HCR_TRACE_RETURN(err);        
   232     
   237     
   233     aValue = value.iInt32;
   238     aValue = value.iInt32;
   234     return KErrNone;    
   239     return KErrNone;    
   235 #else    
   240 #else    
   236     return KErrNotSupported;
   241     HCR_TRACE_RETURN(KErrGeneral);
   237 #endif // MAKE_DEF_FILE
   242 #endif // MAKE_DEF_FILE
   238     }
   243     }
   239     
   244     
   240     
   245     
   241 EXPORT_C TInt HCR::GetInt(const TSettingId& aId, TInt64& aValue) 
   246 EXPORT_C TInt HCR::GetInt(const TSettingId& aId, TInt64& aValue) 
   244     HCR_FUNC("HCR::GetInt64");
   249     HCR_FUNC("HCR::GetInt64");
   245     
   250     
   246     UValueLarge value;
   251     UValueLarge value;
   247     TInt err = GetUValueLargeSetting64(aId, ETypeInt64, value);
   252     TInt err = GetUValueLargeSetting64(aId, ETypeInt64, value);
   248     if (err != KErrNone)
   253     if (err != KErrNone)
   249         HCR_LOG_RETURN(err);        
   254         HCR_TRACE_RETURN(err);        
   250     
   255     
   251     aValue = *(value.iInt64);
   256     aValue = *(value.iInt64);
   252     return KErrNone;    
   257     return KErrNone;    
   253 #else    
   258 #else    
   254     return KErrNotSupported;
   259     HCR_TRACE_RETURN(KErrGeneral);
   255 #endif // MAKE_DEF_FILE
   260 #endif // MAKE_DEF_FILE
   256     }
   261     }
   257     
   262     
   258 
   263 
   259 EXPORT_C TInt HCR::GetBool(const TSettingId& aId, TBool& aValue) 
   264 EXPORT_C TInt HCR::GetBool(const TSettingId& aId, TBool& aValue) 
   262     HCR_FUNC("HCR::GetBool");
   267     HCR_FUNC("HCR::GetBool");
   263                  
   268                  
   264     UValueWord value;
   269     UValueWord value;
   265     TInt err = GetUValueWordSetting(aId, ETypeBool, value);
   270     TInt err = GetUValueWordSetting(aId, ETypeBool, value);
   266     if (err != KErrNone)
   271     if (err != KErrNone)
   267         HCR_LOG_RETURN(err);        
   272         HCR_TRACE_RETURN(err);        
   268     
   273     
   269     aValue = value.iBool;
   274     aValue = value.iBool;
   270     return KErrNone;    
   275     return KErrNone;    
   271 #else    
   276 #else    
   272     return KErrNotSupported;
   277     HCR_TRACE_RETURN(KErrGeneral);
   273 #endif // MAKE_DEF_FILE
   278 #endif // MAKE_DEF_FILE
   274     }
   279     }
   275     
   280     
   276 
   281 
   277 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint8& aValue) 
   282 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint8& aValue) 
   280     HCR_FUNC("HCR::GetUInt8");
   285     HCR_FUNC("HCR::GetUInt8");
   281                  
   286                  
   282     UValueWord value;
   287     UValueWord value;
   283     TInt err = GetUValueWordSetting(aId, ETypeUInt8, value);
   288     TInt err = GetUValueWordSetting(aId, ETypeUInt8, value);
   284     if (err != KErrNone)
   289     if (err != KErrNone)
   285         HCR_LOG_RETURN(err);        
   290         HCR_TRACE_RETURN(err);        
   286     
   291     
   287     aValue = value.iUInt8;
   292     aValue = value.iUInt8;
   288     return KErrNone;    
   293     return KErrNone;    
   289 #else    
   294 #else    
   290     return KErrNotSupported;
   295     HCR_TRACE_RETURN(KErrGeneral);
   291 #endif // MAKE_DEF_FILE
   296 #endif // MAKE_DEF_FILE
   292     }
   297     }
   293     
   298     
   294     
   299     
   295 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint16& aValue) 
   300 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint16& aValue) 
   298     HCR_FUNC("HCR::GetUInt16");
   303     HCR_FUNC("HCR::GetUInt16");
   299     
   304     
   300     UValueWord value;
   305     UValueWord value;
   301     TInt err = GetUValueWordSetting(aId, ETypeUInt16,value);
   306     TInt err = GetUValueWordSetting(aId, ETypeUInt16,value);
   302     if (err != KErrNone)
   307     if (err != KErrNone)
   303         HCR_LOG_RETURN(err);        
   308         HCR_TRACE_RETURN(err);        
   304     
   309     
   305     aValue = value.iUInt16;
   310     aValue = value.iUInt16;
   306     return KErrNone;    
   311     return KErrNone;    
   307 #else    
   312 #else    
   308     return KErrNotSupported;
   313     HCR_TRACE_RETURN(KErrGeneral);
   309 #endif // MAKE_DEF_FILE
   314 #endif // MAKE_DEF_FILE
   310     }
   315     }
   311     
   316     
   312     
   317     
   313 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint32& aValue) 
   318 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint32& aValue) 
   316     HCR_FUNC("HCR::GetUInt32");
   321     HCR_FUNC("HCR::GetUInt32");
   317     
   322     
   318     UValueWord value;
   323     UValueWord value;
   319     TInt err = GetUValueWordSetting(aId, ETypeUInt32, value);
   324     TInt err = GetUValueWordSetting(aId, ETypeUInt32, value);
   320     if (err != KErrNone)
   325     if (err != KErrNone)
   321         HCR_LOG_RETURN(err);        
   326         HCR_TRACE_RETURN(err);        
   322     
   327     
   323     aValue = value.iUInt32;
   328     aValue = value.iUInt32;
   324     return KErrNone;    
   329     return KErrNone;    
   325 #else    
   330 #else    
   326     return KErrNotSupported;
   331     HCR_TRACE_RETURN(KErrGeneral);
   327 #endif // MAKE_DEF_FILE
   332 #endif // MAKE_DEF_FILE
   328     }
   333     }
   329     
   334     
   330     
   335     
   331 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint64& aValue) 
   336 EXPORT_C TInt HCR::GetUInt(const TSettingId& aId, TUint64& aValue) 
   334     HCR_FUNC("HCR::GetUInt64");
   339     HCR_FUNC("HCR::GetUInt64");
   335     
   340     
   336     UValueLarge value;
   341     UValueLarge value;
   337     TInt err = GetUValueLargeSetting64(aId, ETypeUInt64, value);
   342     TInt err = GetUValueLargeSetting64(aId, ETypeUInt64, value);
   338     if (err != KErrNone)
   343     if (err != KErrNone)
   339         HCR_LOG_RETURN(err);        
   344         HCR_TRACE_RETURN(err);        
   340     
   345     
   341     aValue = *(value.iUInt64);
   346     aValue = *(value.iUInt64);
   342     return KErrNone;    
   347     return KErrNone;    
   343 #else    
   348 #else    
   344     return KErrNotSupported;
   349     HCR_TRACE_RETURN(KErrGeneral);
   345 #endif // MAKE_DEF_FILE
   350 #endif // MAKE_DEF_FILE
   346     }
   351     }
   347 
   352 
   348     
   353     
   349 EXPORT_C TInt HCR::GetLinAddr(const TSettingId& aId, TLinAddr& aValue)
   354 EXPORT_C TInt HCR::GetLinAddr(const TSettingId& aId, TLinAddr& aValue)
   352     HCR_FUNC("HCR::GetLinAddr");
   357     HCR_FUNC("HCR::GetLinAddr");
   353     
   358     
   354     UValueWord value;
   359     UValueWord value;
   355     TInt err = GetUValueWordSetting(aId, ETypeLinAddr, value);
   360     TInt err = GetUValueWordSetting(aId, ETypeLinAddr, value);
   356     if (err != KErrNone)
   361     if (err != KErrNone)
   357         HCR_LOG_RETURN(err);        
   362         HCR_TRACE_RETURN(err);        
   358     
   363     
   359     aValue = value.iAddress;
   364     aValue = value.iAddress;
   360     return KErrNone;    
   365     return KErrNone;    
   361 #else    
   366 #else    
   362     return KErrNotSupported;
   367     HCR_TRACE_RETURN(KErrGeneral);
   363 #endif // MAKE_DEF_FILE
   368 #endif // MAKE_DEF_FILE
   364     }
   369     }
   365         
   370         
   366     
   371     
   367 EXPORT_C TInt HCR::GetData(const TSettingId& aId, TUint16 aMaxLen, 
   372 EXPORT_C TInt HCR::GetData(const TSettingId& aId, TUint16 aMaxLen, 
   370 #ifndef MAKE_DEF_FILE
   375 #ifndef MAKE_DEF_FILE
   371     HCR_FUNC("HCR::GetDataTUint8");
   376     HCR_FUNC("HCR::GetDataTUint8");
   372     
   377     
   373     TInt err = GetUValueLargeSettingTUint8(aId, ETypeBinData, aMaxLen, aValue, aLen);
   378     TInt err = GetUValueLargeSettingTUint8(aId, ETypeBinData, aMaxLen, aValue, aLen);
   374     if (err != KErrNone)
   379     if (err != KErrNone)
   375         HCR_LOG_RETURN(err);        
   380         HCR_TRACE_RETURN(err);        
   376     
   381     
   377     return KErrNone;    
   382     return KErrNone;    
   378 #else    
   383 #else    
   379     return KErrNotSupported;
   384     HCR_TRACE_RETURN(KErrGeneral);
   380 #endif // MAKE_DEF_FILE
   385 #endif // MAKE_DEF_FILE
   381     }
   386     }
   382     
   387     
   383 
   388 
   384 EXPORT_C TInt HCR::GetData(const TSettingId& aId, TDes8& aValue)
   389 EXPORT_C TInt HCR::GetData(const TSettingId& aId, TDes8& aValue)
   386 #ifndef MAKE_DEF_FILE
   391 #ifndef MAKE_DEF_FILE
   387     HCR_FUNC("HCR::GetDataTDes8");
   392     HCR_FUNC("HCR::GetDataTDes8");
   388     
   393     
   389     TInt err = GetUValueLargeSettingTDes8(aId, ETypeBinData, aValue);
   394     TInt err = GetUValueLargeSettingTDes8(aId, ETypeBinData, aValue);
   390     if (err != KErrNone)
   395     if (err != KErrNone)
   391         HCR_LOG_RETURN(err);  
   396         HCR_TRACE_RETURN(err);  
   392              
   397              
   393     return KErrNone;    
   398     return KErrNone;    
   394 #else    
   399 #else    
   395     return KErrNotSupported;
   400     HCR_TRACE_RETURN(KErrGeneral);
   396 #endif // MAKE_DEF_FILE
   401 #endif // MAKE_DEF_FILE
   397     }
   402     }
   398     
   403     
   399     
   404     
   400 EXPORT_C TInt HCR::GetString(const TSettingId& aId, TUint16 aMaxLen, 
   405 EXPORT_C TInt HCR::GetString(const TSettingId& aId, TUint16 aMaxLen, 
   403 #ifndef MAKE_DEF_FILE
   408 #ifndef MAKE_DEF_FILE
   404     HCR_FUNC("HCR::GetStringTUint8");
   409     HCR_FUNC("HCR::GetStringTUint8");
   405     
   410     
   406     TInt err = GetUValueLargeSettingTUint8(aId, ETypeText8, aMaxLen, aValue, aLen);
   411     TInt err = GetUValueLargeSettingTUint8(aId, ETypeText8, aMaxLen, aValue, aLen);
   407     if (err != KErrNone)
   412     if (err != KErrNone)
   408         HCR_LOG_RETURN(err);        
   413         HCR_TRACE_RETURN(err);        
   409     
   414     
   410     return KErrNone;    
   415     return KErrNone;    
   411 #else    
   416 #else    
   412     return KErrNotSupported;
   417     HCR_TRACE_RETURN(KErrGeneral);
   413 #endif // MAKE_DEF_FILE
   418 #endif // MAKE_DEF_FILE
   414     }
   419     }
   415     
   420     
   416     
   421     
   417 EXPORT_C TInt HCR::GetString(const TSettingId& aId, TDes8& aValue)
   422 EXPORT_C TInt HCR::GetString(const TSettingId& aId, TDes8& aValue)
   419 #ifndef MAKE_DEF_FILE
   424 #ifndef MAKE_DEF_FILE
   420     HCR_FUNC("HCR::GetStringTUint8");
   425     HCR_FUNC("HCR::GetStringTUint8");
   421     
   426     
   422     TInt err = GetUValueLargeSettingTDes8(aId, ETypeText8, aValue);
   427     TInt err = GetUValueLargeSettingTDes8(aId, ETypeText8, aValue);
   423     if (err != KErrNone)
   428     if (err != KErrNone)
   424         HCR_LOG_RETURN(err);        
   429         HCR_TRACE_RETURN(err);        
   425     
   430     
   426     return KErrNone;    
   431     return KErrNone;    
   427 #else    
   432 #else    
   428     return KErrNotSupported;
   433     HCR_TRACE_RETURN(KErrGeneral);
   429 #endif // MAKE_DEF_FILE
   434 #endif // MAKE_DEF_FILE
   430     }
   435     }
   431       
   436       
   432 EXPORT_C TInt HCR::GetArray(const TSettingId& aId, TUint16 aMaxLen, 
   437 EXPORT_C TInt HCR::GetArray(const TSettingId& aId, TUint16 aMaxLen, 
   433                                 TInt32* aValue, TUint16& aLen)
   438                                 TInt32* aValue, TUint16& aLen)
   435 #ifndef MAKE_DEF_FILE
   440 #ifndef MAKE_DEF_FILE
   436     HCR_FUNC("HCR::GetArrayTInt32");
   441     HCR_FUNC("HCR::GetArrayTInt32");
   437     
   442     
   438     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayInt32, aMaxLen, (TUint32*)aValue, aLen);
   443     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayInt32, aMaxLen, (TUint32*)aValue, aLen);
   439     if (err != KErrNone)
   444     if (err != KErrNone)
   440         HCR_LOG_RETURN(err);        
   445         HCR_TRACE_RETURN(err);        
   441     
   446     
   442     return KErrNone;    
   447     return KErrNone;    
   443 #else    
   448 #else    
   444     return KErrNotSupported;
   449     HCR_TRACE_RETURN(KErrGeneral);
   445 #endif // MAKE_DEF_FILE
   450 #endif // MAKE_DEF_FILE
   446     }
   451     }
   447 								       
   452 								       
   448 EXPORT_C TInt HCR::GetArray(const TSettingId& aId, TUint16 aMaxLen, 
   453 EXPORT_C TInt HCR::GetArray(const TSettingId& aId, TUint16 aMaxLen, 
   449                                 TUint32* aValue, TUint16& aLen)  
   454                                 TUint32* aValue, TUint16& aLen)  
   451 #ifndef MAKE_DEF_FILE
   456 #ifndef MAKE_DEF_FILE
   452     HCR_FUNC("HCR::GetArrayTUInt32");
   457     HCR_FUNC("HCR::GetArrayTUInt32");
   453     
   458     
   454     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayUInt32, aMaxLen, aValue, aLen);
   459     TInt err = GetUValueLargeSettingArray(aId, ETypeArrayUInt32, aMaxLen, aValue, aLen);
   455     if (err != KErrNone)
   460     if (err != KErrNone)
   456         HCR_LOG_RETURN(err);        
   461         HCR_TRACE_RETURN(err);        
   457     
   462     
   458     return KErrNone;    
   463     return KErrNone;    
   459 #else    
   464 #else    
   460     return KErrNotSupported;
   465     HCR_TRACE_RETURN(KErrGeneral);
   461 #endif // MAKE_DEF_FILE
   466 #endif // MAKE_DEF_FILE
   462     }
   467     }
   463 
   468 
   464 
   469 
   465 // -- MULTIPLE GETS -----------------------------------------------------------
   470 // -- MULTIPLE GETS -----------------------------------------------------------
   466   
   471   
   467 EXPORT_C TInt HCR::GetWordSettings(TInt /*aNum*/, const SSettingId /*aIds*/[],
   472 EXPORT_C TInt HCR::GetWordSettings(TInt aNum, const SSettingId aIds[],
   468         TInt32 /*aValues*/[], TSettingType /*aTypes*/[], TInt /*aErrors*/[])
   473         TInt32 aValues[], TSettingType aTypes[], TInt aErrors[])
   469     {
   474     {
   470 #ifndef MAKE_DEF_FILE
   475 
   471 
   476 #ifndef MAKE_DEF_FILE
   472     return KErrNotSupported;
   477     HCR_FUNC("GetWordSettings");
   473 #else    
   478     
   474     return KErrNotSupported;
   479     if (HCRNotReady)
       
   480         HCR_TRACE_RETURN(KErrNotReady);
       
   481     
       
   482     if(aNum <= 0 || aIds == NULL || aErrors == NULL || aValues == NULL)
       
   483         HCR_TRACE_RETURN(KErrArgument);
       
   484     
       
   485     TInt err = KErrNone;
       
   486 
       
   487     //Don't leave while the resources are not fully allocated/deallocated
       
   488     NKern::ThreadEnterCS();
       
   489 
       
   490     err = HCRSingleton->GetWordSettings(aNum, aIds, aValues, aTypes, aErrors);
       
   491 
       
   492     //All de-allocations are done, leave a critical section
       
   493     NKern::ThreadLeaveCS();
       
   494 
       
   495     if(err < KErrNone)
       
   496         HCR_TRACE_RETURN(err);
       
   497 
       
   498     return err;
       
   499     
       
   500 #else    
       
   501     HCR_TRACE_RETURN(KErrGeneral);
   475 #endif // MAKE_DEF_FILE
   502 #endif // MAKE_DEF_FILE
   476     }
   503     }
   477 
   504 
   478 
   505 
   479 // -- SETTING PROPERTIES ------------------------------------------------------
   506 // -- SETTING PROPERTIES ------------------------------------------------------
   480 
   507 
   481 EXPORT_C TInt HCR::GetTypeAndSize(const TSettingId& /*aId*/, TSettingType& /*aType*/, 
   508 EXPORT_C TInt HCR::GetTypeAndSize(const TSettingId& aId, TSettingType& aType, 
   482                                         TUint16& /*aLen*/) 
   509                                         TUint16& aLen) 
   483     {
   510     {
   484 #ifndef MAKE_DEF_FILE
   511 #ifndef MAKE_DEF_FILE
   485 
   512     HCR_FUNC("GetTypeAndSize");
   486     return KErrNotSupported;
   513     if (HCRNotReady)
   487 #else    
   514         HCR_TRACE_RETURN(KErrNotReady);
   488     return KErrNotSupported;
   515 
   489 #endif // MAKE_DEF_FILE
   516     TSettingRef sref(0,0);
       
   517     TInt err = HCRSingleton->FindSettingWithType(aId, aType, sref);
       
   518 	
       
   519     if(err == KErrNone)
       
   520         {
       
   521         aLen = sref.iRep->GetLength(sref);
       
   522         }
       
   523     else if(err == KErrNotFound)
       
   524         {
       
   525         aLen = 0;
       
   526         HCR_TRACE_RETURN(KErrNotFound);
       
   527         }
       
   528     else
       
   529         HCR_TRACE_RETURN(err);
       
   530     
       
   531     return KErrNone;
       
   532    
       
   533 #else
       
   534     HCR_TRACE_RETURN(KErrGeneral);
       
   535 #endif //MAKE_DEF_FILE
   490     }
   536     }
   491  
   537  
   492 
   538 
   493 // -- SETTING SEARCHES --------------------------------------------------------
   539 // -- SETTING SEARCHES --------------------------------------------------------
   494 
   540 
   495 EXPORT_C TInt HCR::FindNumSettingsInCategory (TCategoryUid /*aCatUid*/)
   541 EXPORT_C TInt HCR::FindNumSettingsInCategory (TCategoryUid aCatUid)
   496 	{
   542 	{
   497 #ifndef MAKE_DEF_FILE
   543 #ifndef MAKE_DEF_FILE
   498 
   544 
   499     return KErrNotSupported;
   545 	HCR_FUNC("FindNumSettingsInCategory");
   500 #else    
   546 
   501     return KErrNotSupported;
   547 	if (HCRNotReady)
   502 #endif // MAKE_DEF_FILE
   548 	    HCR_TRACE_RETURN(KErrNotReady);
   503     }
   549 	
   504 		
   550 	TInt err = HCRSingleton->FindNumSettingsInCategory(aCatUid);
   505 EXPORT_C TInt HCR::FindSettings(TCategoryUid /*aCatUid*/, 
   551   
   506 					TInt /*aMaxNum*/, TUint32& /*aNumFound*/, 
   552 	if(err < 0)
   507 					TElementId* /*aElIds*/, TSettingType* /*aTypes*/, TUint16* /*aLens*/)
   553 	    HCR_TRACE_RETURN(err);
       
   554 	
       
   555 	return err;
       
   556 
       
   557 #else    
       
   558 	HCR_TRACE_RETURN(KErrGeneral);
       
   559 #endif // MAKE_DEF_FILE
       
   560     }
       
   561 
       
   562 
       
   563 EXPORT_C TInt HCR::FindSettings(TCategoryUid aCat, TInt aMaxNum,
       
   564         TElementId aElIds[], TSettingType aTypes[], TUint16 aLens[])
   508 	{
   565 	{
   509 #ifndef MAKE_DEF_FILE
   566 #ifndef MAKE_DEF_FILE
   510 
   567 
   511     return KErrNotSupported;
   568 	HCR_FUNC("FindSettings without pattern/mask");
   512 #else    
   569 	
   513     return KErrNotSupported;
   570 
   514 #endif // MAKE_DEF_FILE
   571 	if (HCRNotReady)
   515     }
   572 	    HCR_TRACE_RETURN(KErrNotReady);
   516 
   573 
   517 EXPORT_C TInt HCR::FindSettings(TCategoryUid /*aCat*/, 
   574 	if(aMaxNum <= 0 || aElIds == NULL)
   518 					TInt /*aMaxNum*/, TUint32 /*aAtId*/,
   575 	        HCR_TRACE_RETURN(KErrArgument);
   519                     TUint32 /*aMask*/, TUint32 /*aPattern*/, TUint32& /*aNumFound*/,
   576 	
   520                     TElementId* /*aElIds*/, TSettingType* /*aTypes*/, TUint16* /*aLens*/)
   577 	TInt err = HCRSingleton->FindSettings(aCat, aMaxNum, aElIds, 
       
   578 	        aTypes, aLens);
       
   579     
       
   580 	if(err < 0)
       
   581 	    HCR_TRACE_RETURN(err);
       
   582 	
       
   583 	return err;
       
   584 
       
   585 #else    
       
   586 	HCR_TRACE_RETURN(KErrGeneral);
       
   587 #endif // MAKE_DEF_FILE
       
   588     }
       
   589 
       
   590 EXPORT_C TInt HCR::FindSettings(TCategoryUid aCat, 
       
   591 					TInt aMaxNum, TUint32 aMask, TUint32 aPattern, 
       
   592                     TElementId aElIds[], TSettingType aTypes[], TUint16 aLens[])
   521 	{
   593 	{
   522 #ifndef MAKE_DEF_FILE
   594 #ifndef MAKE_DEF_FILE
   523 
   595 
   524     return KErrNotSupported;
   596 	HCR_FUNC("FindSettings with pattern/mask");
   525 #else    
   597 	
   526     return KErrNotSupported;
   598 
       
   599 	if (HCRNotReady)
       
   600 	    HCR_TRACE_RETURN(KErrNotReady);
       
   601 
       
   602 	if(aMaxNum <= 0 || aElIds == NULL)
       
   603 	    HCR_TRACE_RETURN(KErrArgument);
       
   604 
       
   605 	TInt err = KErrNone;
       
   606 
       
   607 	//Don't leave while the resources are not fully allocated/deallocated
       
   608 	NKern::ThreadEnterCS();
       
   609 	
       
   610 	err = HCRSingleton->FindSettings(aCat, aMaxNum, aMask, aPattern, 
       
   611 	       aElIds, aTypes, aLens);
       
   612 
       
   613 	//All de-allocations are done, leave a critical section
       
   614 	NKern::ThreadLeaveCS();
       
   615 
       
   616 	if(err < 0)
       
   617 	    HCR_TRACE_RETURN(err);
       
   618 
       
   619 	return err;
       
   620 	    
       
   621 #else    
       
   622 	HCR_TRACE_RETURN(KErrGeneral);
   527 #endif // MAKE_DEF_FILE
   623 #endif // MAKE_DEF_FILE
   528     }
   624     }
   529 						
   625 						
   530 
   626 
   531 // -- KERNEL ENTRY POINT ------------------------------------------------------
   627 // -- KERNEL ENTRY POINT ------------------------------------------------------