• Robert Sprowson's avatar
    Fix display of bytes-to-go when there are > 2G left. · b5fe2ebd
    Robert Sprowson authored
    Was doing a widening cast of a signed number to 64 bits, so showed 16 trillion bytes remaining.
    Fix templates to not say "stuff" by default in the name, as this was left on screen if an error occured before processing began.
    Things that read from clock() now use clock_t.
    Uncurled some "} else {" to match all the other files.
    Deleted the USE_LONG_LONG switch, it's been needed ever since harddiscs got bigger than 4G anyway.
    Anything assigned 'Yes' or 'No' changed to type BOOL.
    Variable 'source_of_finished_file' was signalling that a directory had been copied by setting the length to a -ve number. This has been refactored to use a BOOL instead, so files can have top bit set sizes.
    Fix bug in stack grab in count_objects_in_dir(), was grabbing an array of 2048 pointers (=8k) not 2048 bytes.
    Functions bytes_left_to_read() and bytes_left_to_write() reprototyped to return uint32_t not signed numbers.
    Still falls over copying files > 2G, but at least it gets the display right!
    
    Version 0.51. Tagged as 'FilerAct-0_51'
    b5fe2ebd
memmanage 2.07 KB
/* Copyright 1996 Acorn Computers Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
     This header describes the interface to the manipulation of
     large lumps of memory and files.

Revision History:

0.00  13-Jun-89  JSR  Created.
*/

/*
     For c.memmanage
*/
extern void action_slot( int );
extern os_error *init_memmanagement( void );
extern os_error *init_for_copying( void );
extern os_error *add_file_to_chain( char *dest, char *source,
                                    int size, int reload, int exec, int attr, int objtype,
                                    int force, int *full
                                    #ifdef USE_PROGRESS_BAR
                                    , unsigned int progress, void **ref
                                    #endif
);
extern os_error *read_a_block( int *i_am_full, int *need_another_file, int *that_finished_a_file, unsigned int *progress);
extern os_error *write_a_block( int *i_am_empty, int *that_finished_a_file, unsigned int *progress );
extern char *next_file_to_be_written( void );
extern char *next_file_to_be_read( void );
extern void restart_file_read( void );
extern void restart_file_write( void );
extern void skip_file_read( void );
extern void skip_file_write( void );
extern uint32_t bytes_left_to_read( void );
extern uint32_t bytes_left_to_write( void );
extern void closedown_memmanagement( void );
extern void copy_go_faster( int do_it );
#ifdef USE_PROGRESS_BAR
extern void modify_chain_file_progress(void *ref, unsigned int progress);
#endif

extern BOOL  finished_obj_was_file;
extern char *finished_obj_source_name;