Exemple #1
0
void biosal_input_proxy_try(struct biosal_input_proxy *proxy,
                struct biosal_input_format *input, void *implementation,
                struct biosal_input_format_interface *operations, char *file,
                uint64_t offset, uint64_t maximum_offset)
{
    int error;

#ifdef BIOSAL_INPUT_DEBUG
    printf("DEBUG biosal_input_proxy_try\n");
#endif

    if (proxy->done) {
        return;
    }

    /* Assume the worst case
     */
    proxy->not_supported = 1;
    proxy->not_found = 1;

    biosal_input_format_init(input, implementation, operations, file, offset,
                    maximum_offset);

    error = biosal_input_format_error(input);

    /* File does not exist.
     */
    if (error == BIOSAL_INPUT_ERROR_FILE_NOT_FOUND) {
        biosal_input_format_destroy(input);
        proxy->not_found = 1;
        proxy->not_supported = 0;
        proxy->done = 1;
        return;
    }

    /* Format is not supported
     */
    if (!biosal_input_format_detect(input)) {
        proxy->not_supported = 1;
        proxy->not_found = 0;
        biosal_input_format_destroy(input);

    } else {
        /* Found the format
         */
        proxy->not_supported = 0;
        proxy->not_found = 0;
        proxy->done = 1;

#ifdef BIOSAL_INPUT_PROXY_DEBUG
        printf("Found format.\n");
#endif
    }
}
Exemple #2
0
int biosal_input_format_valid(struct biosal_input_format *input)
{
    return biosal_input_format_error(input) == BIOSAL_INPUT_ERROR_NO_ERROR;
}