예제 #1
0
pch_status PCHReadModuleData( void )
{
    uint_8 has_state_table;

    module_init_func = SymbolPCHRead();
    module_init_scope = ScopePCHRead();
    module_fd.fn_scope = ScopePCHRead();
    PCHReadVar( has_state_table );
    module_fd.has_state_tab = ( has_state_table != 0 );
    LabelPCHRead( &module_fd.label_mem );
    return( PCHCB_OK );
}
예제 #2
0
pch_status PCHReadGenerators( void )
{
    SYMBOL read_symbol;
    TYPE read_type;

    carveRTN_GEN = CarveRestart( carveRTN_GEN );
    useSYMBOL = NULL;
    useTYPE = NULL;
    while( (read_symbol = SymbolPCHRead()) != NULL ) {
        addGenRoutine( &useSYMBOL, PCHReadUInt(), read_symbol );
    }
    while( (read_type = TypePCHRead()) != NULL ) {
        addGenRoutine( &useTYPE, PCHReadUInt(), read_type );
    }
    return( PCHCB_OK );
}
예제 #3
0
static void readExtrefs( void )
{
    SYMBOL       sym;
    unsigned     len;
    PRAG_EXT_REF *entry;

    RingFree( &pragmaExtrefs );
    while( (sym = SymbolPCHRead()) != NULL ) {
        entry = RingAlloc( &pragmaExtrefs, offsetof( PRAG_EXT_REF, name ) + 1 );
        entry->symbol = sym;
        entry->name[0] = '\0';
    }
    while( (len = PCHReadUInt()) != 0 ) {
        entry = RingAlloc( &pragmaExtrefs, offsetof( PRAG_EXT_REF, name ) + len + 1 );
        PCHRead( entry->name, len + 1 );
        entry->symbol = NULL;
    }
}