Esempio n. 1
0
_ped_Disk *PedDisk2_ped_Disk(PedDisk *disk) {
    _ped_Disk *ret = NULL;

    if (disk == NULL) {
        PyErr_SetString(PyExc_TypeError, "Empty PedDisk()");
        return NULL;
    }

    ret = (_ped_Disk *) _ped_Disk_Type_obj.tp_new(&_ped_Disk_Type_obj, NULL, NULL);
    if (!ret) {
        ped_disk_destroy(disk);
        return (_ped_Disk *) PyErr_NoMemory();
    }
    ret->ped_disk = disk;

    ret->dev = (PyObject *) PedDevice2_ped_Device(disk->dev);
    if (!ret->dev)
        goto error;

    ret->type = (PyObject *) PedDiskType2_ped_DiskType(disk->type);
    if (!ret->type)
        goto error;

    return ret;

error:
    Py_DECREF(ret);
    return NULL;
}
Esempio n. 2
0
/*
 * Returns the _ped.DiskType for the specified _ped.Device.
 * Even though this function is part of pydisk.c, it's a method
 * on _ped.Device since it operates on _ped.Device objects and
 * not on _ped.Disk objects.
 */
PyObject *py_ped_disk_probe(PyObject *s, PyObject *args) {
    PedDevice *device = NULL;
    PedDiskType *type = NULL;
    _ped_DiskType *ret = NULL;

    device = _ped_Device2PedDevice(s);
    if (device) {
        type = ped_disk_probe(device);
        if (type == NULL) {
            PyErr_Format(IOException, "Could not probe device %s", device->path);
            return NULL;
        }

        ret = PedDiskType2_ped_DiskType(type);
        if (ret == NULL) {
            return NULL;
        }
    }

    return (PyObject *) ret;
}