1 /* 2 * Python object wrapper of libvslvm_handle_t 3 * 4 * Copyright (C) 2014-2021, Joachim Metz <joachim.metz@gmail.com> 5 * 6 * Refer to AUTHORS for acknowledgements. 7 * 8 * This program is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU Lesser General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with this program. If not, see <https://www.gnu.org/licenses/>. 20 */ 21 22 #if !defined( _PYVSLVM_HANDLE_H ) 23 #define _PYVSLVM_HANDLE_H 24 25 #include <common.h> 26 #include <types.h> 27 28 #include "pyvslvm_libbfio.h" 29 #include "pyvslvm_libcerror.h" 30 #include "pyvslvm_libvslvm.h" 31 #include "pyvslvm_python.h" 32 33 #if defined( __cplusplus ) 34 extern "C" { 35 #endif 36 37 typedef struct pyvslvm_handle pyvslvm_handle_t; 38 39 struct pyvslvm_handle 40 { 41 /* Python object initialization 42 */ 43 PyObject_HEAD 44 45 /* The libvslvm handle 46 */ 47 libvslvm_handle_t *handle; 48 49 /* The libbfio file IO handle 50 */ 51 libbfio_handle_t *file_io_handle; 52 53 /* The file IO pool 54 */ 55 libbfio_pool_t *file_io_pool; 56 }; 57 58 extern PyMethodDef pyvslvm_handle_object_methods[]; 59 extern PyTypeObject pyvslvm_handle_type_object; 60 61 int pyvslvm_handle_init( 62 pyvslvm_handle_t *pyvslvm_handle ); 63 64 void pyvslvm_handle_free( 65 pyvslvm_handle_t *pyvslvm_handle ); 66 67 PyObject *pyvslvm_handle_signal_abort( 68 pyvslvm_handle_t *pyvslvm_handle, 69 PyObject *arguments ); 70 71 PyObject *pyvslvm_handle_open( 72 pyvslvm_handle_t *pyvslvm_handle, 73 PyObject *arguments, 74 PyObject *keywords ); 75 76 PyObject *pyvslvm_handle_open_file_object( 77 pyvslvm_handle_t *pyvslvm_handle, 78 PyObject *arguments, 79 PyObject *keywords ); 80 81 PyObject *pyvslvm_handle_open_physical_volume_files( 82 pyvslvm_handle_t *pyvslvm_handle, 83 PyObject *arguments, 84 PyObject *keywords ); 85 86 PyObject *pyvslvm_handle_open_physical_volume_files_as_file_objects( 87 pyvslvm_handle_t *pyvslvm_handle, 88 PyObject *arguments, 89 PyObject *keywords ); 90 91 PyObject *pyvslvm_handle_close( 92 pyvslvm_handle_t *pyvslvm_handle, 93 PyObject *arguments ); 94 95 PyObject *pyvslvm_handle_get_volume_group( 96 pyvslvm_handle_t *pyvslvm_handle, 97 PyObject *arguments ); 98 99 #if defined( __cplusplus ) 100 } 101 #endif 102 103 #endif 104 105