Changeset 157 for trunk/include


Ignore:
Timestamp:
11/22/09 19:47:22 (15 years ago)
Author:
tim
Message:

reorganized data parsing in regfi

simplified some length validation

added big data support to reglookup-recover

fixed reglookup-recover's handling of data values in the offset

Location:
trunk/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/regfi.h

    r152 r157  
    105105#define REGFI_SK_MIN_LENGTH        0x14
    106106#define REGFI_SUBKEY_LIST_MIN_LEN  0x4
     107#define REGFI_BIG_DATA_MIN_LENGTH  0xC
    107108
    108109
     
    444445
    445446
     447
     448
    446449/******************************************************************************/
    447450/*                         Main iterator API                                  */
     
    468471bool                  regfi_iterator_to_root(REGFI_ITERATOR* i);
    469472
    470 bool                  regfi_iterator_find_subkey(REGFI_ITERATOR* i,
    471                                                  const char* subkey_name);
    472473bool                  regfi_iterator_walk_path(REGFI_ITERATOR* i,
    473474                                               const char** path);
     
    478479REGFI_NK_REC*         regfi_iterator_cur_subkey(REGFI_ITERATOR* i);
    479480REGFI_NK_REC*         regfi_iterator_next_subkey(REGFI_ITERATOR* i);
    480 
    481 bool                  regfi_iterator_find_value(REGFI_ITERATOR* i,
    482                                                 const char* value_name);
     481bool                  regfi_iterator_find_subkey(REGFI_ITERATOR* i,
     482                                                 const char* subkey_name);
     483
    483484REGFI_VK_REC*         regfi_iterator_first_value(REGFI_ITERATOR* i);
    484485REGFI_VK_REC*         regfi_iterator_cur_value(REGFI_ITERATOR* i);
    485486REGFI_VK_REC*         regfi_iterator_next_value(REGFI_ITERATOR* i);
     487bool                  regfi_iterator_find_value(REGFI_ITERATOR* i,
     488                                                const char* value_name);
     489
     490REGFI_DATA*           regfi_iterator_cur_data(REGFI_ITERATOR* i);
    486491
    487492
     
    500505                                           bool strict);
    501506
     507REGFI_BUFFER          regfi_load_data(REGFI_FILE* file, uint32 voffset,
     508                                      uint32 length, bool data_in_offset,
     509                                      bool strict);
     510
     511REGFI_BUFFER          regfi_load_big_data(REGFI_FILE* file, uint32 offset,
     512                                          uint32 data_length,uint32 cell_length,
     513                                          range_list* used_ranges,
     514                                          bool strict);
     515
    502516/* These are cached so return values don't need to be freed. */
    503517const REGFI_SK_REC*   regfi_load_sk(REGFI_FILE* file, uint32 offset,
    504518                                    bool strict);
    505 const REGFI_HBIN*     regfi_lookup_hbin(REGFI_FILE* file, uint32 voffset);
    506 
     519const REGFI_HBIN*     regfi_lookup_hbin(REGFI_FILE* file, uint32 offset);
    507520
    508521
     
    535548                                     uint32 max_size, bool strict);
    536549
    537 REGFI_BUFFER          regfi_load_data(REGFI_FILE* file,
    538                                       uint32 data_type, uint32 offset,
    539                                       uint32 length, uint32 max_size,
    540                                       bool data_in_offset, bool strict);
    541 
    542 REGFI_BUFFER          regfi_load_big_data(REGFI_FILE* file,
    543                                           uint32 offset, uint32 data_length,
    544                                           uint32 cell_length, bool strict);
    545 
    546550REGFI_SK_REC*         regfi_parse_sk(REGFI_FILE* file, uint32 offset,
    547551                                     uint32 max_size, bool strict);
     
    556560                                            uint16* name_length,
    557561                                            uint32 max_size, bool strict);
     562
     563REGFI_BUFFER          regfi_parse_data(REGFI_FILE* file, uint32 offset,
     564                                       uint32 length, bool strict);
     565
     566REGFI_BUFFER          regfi_parse_little_data(REGFI_FILE* file, uint32 voffset,
     567                                              uint32 length, bool strict);
     568
    558569
    559570/* Dispose of previously parsed records */
     
    588599REGFI_NK_REC*         regfi_copy_nk(const REGFI_NK_REC* nk);
    589600REGFI_VK_REC*         regfi_copy_vk(const REGFI_VK_REC* vk);
     601int32                 regfi_calc_maxsize(REGFI_FILE* file, uint32 offset);
    590602
    591603#endif  /* _REGFI_H */
  • trunk/include/smb_deps.h

    r134 r157  
    4040#include "byteorder.h"
    4141
    42 #define DEBUG(lvl,body) 0
    43 
    44 void* zalloc(size_t size);
    45 void* zcalloc(size_t size, unsigned int count);
    46 
    4742/* From includes.h */
    4843
     44/* XXX: convert all code to use the more standard "*_t" types */
    4945#define uint8  uint8_t
    5046#define int16  int8_t
     
    5248#define int32  int32_t
    5349#define uint32 uint32_t
     50#define int64  int64_t
     51#define uint64 uint64_t
    5452
    5553#define MIN(a,b) ((a)<(b)?(a):(b))
    5654#define MAX(a,b) ((a)>(b)?(a):(b))
    57 
    58 extern int DEBUGLEVEL;
    5955
    6056/* End of stuff from includes.h */
Note: See TracChangeset for help on using the changeset viewer.