示例#1
0
static int set_tapelog_enabled(int value, void *param)
{
    int val = value ? 1 : 0;

    if (tapelog_enabled == val) {
        return 0;
    }

    if (val) {
        if (enable_tapelog() < 0) {
            return -1;
        }
        tapelog_list_item = tapeport_device_register(&tapelog_device);
        if (tapelog_list_item == NULL) {
            disable_tapelog();
            return -1;
        }
    } else {
        disable_tapelog();
        tapeport_device_unregister(tapelog_list_item);
        tapelog_list_item = NULL;
    }

    tapelog_enabled = val;
    return 0;
}
示例#2
0
void tapeport_resources_shutdown(void)
{
    tapeport_device_list_t *current = tapeport_head.next;
    tapeport_snapshot_list_t *c = tapeport_snapshot_head.next;

    while (current) {
        tapeport_device_unregister(current);
        current = tapeport_head.next;
    }

    while (c) {
        tapeport_snapshot_unregister(c);
        c = tapeport_snapshot_head.next;
    }
}
static int set_tape_diag_586220_harness_enabled(int value, void *param)
{
    int val = value ? 1 : 0;

    if (tape_diag_586220_harness_enabled == val) {
        return 0;
    }

    if (val) {
        tape_diag_586220_harness_list_item = tapeport_device_register(&tape_diag_586220_harness_device);
        if (tape_diag_586220_harness_list_item == NULL) {
            return -1;
        }
    } else {
        tapeport_device_unregister(tape_diag_586220_harness_list_item);
        tape_diag_586220_harness_list_item = NULL;
    }

    tape_diag_586220_harness_enabled = val;
    return 0;
}
static int set_sense_dongle_enabled(int value, void *param)
{
    int val = value ? 1 : 0;

    if (sense_dongle_enabled == val) {
        return 0;
    }

    if (val) {
        sense_dongle_list_item = tapeport_device_register(&sense_dongle_device);
        if (sense_dongle_list_item == NULL) {
            return -1;
        }
        tapeport_set_tape_sense(1, sense_dongle_device.id);
    } else {
        tapeport_device_unregister(sense_dongle_list_item);
        sense_dongle_list_item = NULL;
    }

    sense_dongle_enabled = val;
    return 0;
}
示例#5
0
static int set_datasette_enable(int value, void *param)
{
    int val = value ? 1 : 0;

    if (datasette_enable == val) {
        return 0;
    }

    if (val) {
        datasette_list_item = tapeport_device_register(&datasette_device);
        if (datasette_list_item == NULL) {
            return -1;
        }
    } else {
        tapeport_device_unregister(datasette_list_item);
        datasette_list_item = NULL;
    }

    datasette_enable = val;

    return 0;
}
static int set_dtlbasic_dongle_enabled(int value, void *param)
{
    int val = value ? 1 : 0;

    if (dtlbasic_dongle_enabled == val) {
        return 0;
    }

    if (val) {
        dtlbasic_dongle_list_item = tapeport_device_register(&dtlbasic_dongle_device);
        if (dtlbasic_dongle_list_item == NULL) {
            return -1;
        }
        dtlbasic_counter = -1;
        dtlbasic_state = DTLBASIC_DONGLE_IDLE;
    } else {
        tapeport_device_unregister(dtlbasic_dongle_list_item);
        dtlbasic_dongle_list_item = NULL;
    }

    dtlbasic_dongle_enabled = val;
    return 0;
}