using System; using System.Runtime.InteropServices; using System.Runtime.InteropServices.WindowsRuntime; using Foodsoft.Alpm; namespace Foodsoft.Alpm { // ReSharper disable once InconsistentNaming [StructLayout(LayoutKind.Sequential)] internal struct alpm_list_t { internal IntPtr data; internal readonly IntPtr prev; internal readonly IntPtr next; } // ReSharper disable once InconsistentNaming internal static class alpm { [DllImport(nameof(alpm))] public static extern int alpm_pkg_should_ignore(SafeAlpmHandle handle, SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_filename(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_base(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_name(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_version(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern PackageOrigin alpm_pkg_get_origin(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_desc(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_url(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern long alpm_pkg_get_builddate(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern long alpm_pkg_get_installdate(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_packager(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_md5sum(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_sha256sum(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_arch(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern long alpm_pkg_get_size(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern long alpm_pkg_get_isize(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern InstallReason alpm_pkg_get_reason(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_licenses(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_groups(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_depends(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_optdepends(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_checkdepends(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_makedepends(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_conflicts(SafePackageHandle pkg); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_pkg_get_provides(SafePackageHandle pkg); [DllImport(nameof(alpm))] public static extern int alpm_pkg_set_reason(SafePackageHandle pkg, InstallReason reason); [DllImport(nameof(alpm))] public static extern int alpm_pkg_free(IntPtr ptr); [DllImport(nameof(alpm))] public static extern IntPtr alpm_option_get_cachedirs(SafeAlpmHandle handle); [DllImport(nameof(alpm))] public static extern int alpm_option_set_cachedirs(SafeAlpmHandle handle, IntPtr cachedirs); [DllImport(nameof(alpm))] public static extern int alpm_option_add_cachedir(SafeAlpmHandle handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string cachedir); [DllImport(nameof(alpm))] public static extern int alpm_option_remove_cachedir(SafeAlpmHandle handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string cachedir); [DllImport(nameof(alpm))] public static extern ErrNo alpm_errno(SafeAlpmHandle handle); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_strerror(ErrNo err); [DllImport(nameof(alpm))] public static extern IntPtr alpm_get_localdb(SafeAlpmHandle handle); [DllImport(nameof(alpm))] public static extern unsafe alpm_list_t* alpm_option_get_syncdbs(); [DllImport(nameof(alpm))] public static extern IntPtr alpm_register_syncdb(SafeAlpmHandle handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string treename, SigLevel sigLevel); [DllImport(nameof(alpm))] public static extern int alpm_db_unregister_all_syncdbs(SafeAlpmHandle handle); [DllImport(nameof(alpm))] public static extern unsafe alpm_list_t* alpm_list_next(alpm_list_t* list); [DllImport(nameof(alpm))] public static extern UIntPtr alpm_list_count(IntPtr list); [DllImport(nameof(alpm))] public static extern void alpm_list_free(IntPtr list); [DllImport(nameof(alpm))] public static extern IntPtr alpm_list_find_str(IntPtr list, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string needle); [DllImport(nameof(alpm))] public static extern int alpm_unlock(Handle handle); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_version(); [DllImport(nameof(alpm))] public static extern caps alpm_capabilities(); [DllImport(nameof(alpm))] public static extern SafeAlpmHandle alpm_initialize( [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string root, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string dbpath, out ErrNo err); [DllImport(nameof(alpm))] public static extern int alpm_release(IntPtr handle); [DllImport(nameof(alpm))] public static extern int alpm_db_remove_server(SafeDatabaseHandle db, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string url); [DllImport(nameof(alpm))] public static extern int alpm_db_unregister(SafeDatabaseHandle db); [DllImport(nameof(alpm))] [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8OutMarshaler))] public static extern string alpm_db_get_name(SafeDatabaseHandle db); [DllImport(nameof(alpm))] public static extern SigLevel alpm_db_get_siglevel(SafeDatabaseHandle db); [DllImport(nameof(alpm))] public static extern int alpm_db_get_valid(SafeDatabaseHandle db); [DllImport(nameof(alpm))] public static extern int alpm_db_update(int force, SafeDatabaseHandle db); [DllImport(nameof(alpm))] public static extern IntPtr alpm_db_get_servers(SafeDatabaseHandle db); [DllImport(nameof(alpm))] public static extern int alpm_db_set_servers(SafeDatabaseHandle db, IntPtr list); [DllImport(nameof(alpm))] public static extern int alpm_db_add_server(SafeDatabaseHandle db, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string url); [DllImport(nameof(alpm))] public static extern IntPtr alpm_pkg_get_pkg(SafeDatabaseHandle db, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8InMarshaler))] string name); [DllImport(nameof(alpm))] public static extern IntPtr alpm_db_get_pkgcache(SafeDatabaseHandle db); } }