sysinfo.h revision 299742
1/* 2 * sysinfo.h: share svn_sysinfo__* functions 3 * 4 * ==================================================================== 5 * Licensed to the Apache Software Foundation (ASF) under one 6 * or more contributor license agreements. See the NOTICE file 7 * distributed with this work for additional information 8 * regarding copyright ownership. The ASF licenses this file 9 * to you under the Apache License, Version 2.0 (the 10 * "License"); you may not use this file except in compliance 11 * with the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, 16 * software distributed under the License is distributed on an 17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 * KIND, either express or implied. See the License for the 19 * specific language governing permissions and limitations 20 * under the License. 21 * ==================================================================== 22 */ 23 24#ifndef SVN_LIBSVN_SUBR_SYSINFO_H 25#define SVN_LIBSVN_SUBR_SYSINFO_H 26 27#include <apr_pools.h> 28#include <apr_tables.h> 29 30#ifdef __cplusplus 31extern "C" { 32#endif /* __cplusplus */ 33 34/* Return a canonical name similar to the output of config.guess, 35 * identifying the running system. 36 * 37 * All allocations are done in POOL. 38 */ 39const char *svn_sysinfo__canonical_host(apr_pool_t *pool); 40 41/* Return the release name (i.e., marketing name) of the running 42 * system, or NULL if it's not available. 43 * 44 * All allocations are done in POOL. 45 */ 46const char *svn_sysinfo__release_name(apr_pool_t *pool); 47 48/* Return an array of svn_version_linked_lib_t of descriptions of the 49 * link-time and run-time versions of dependent libraries, or NULL of 50 * the info is not available. 51 * 52 * All allocations are done in POOL. 53 */ 54const apr_array_header_t *svn_sysinfo__linked_libs(apr_pool_t *pool); 55 56/* Return an array of svn_version_loaded_lib_t of descriptions of 57 * shared libraries loaded by the running process, including their 58 * versions where applicable, or NULL if the information is not 59 * available. 60 * 61 * All allocations are done in POOL. 62 */ 63const apr_array_header_t *svn_sysinfo__loaded_libs(apr_pool_t *pool); 64 65#ifdef WIN32 66/* Obtain the Windows version information as OSVERSIONINFOEXW structure. 67 * 68 * !!! Unlike other apis the caller is expected to pre-allocate the buffer 69 * !!! to allow using this api from the crash handler. 70 */ 71svn_boolean_t 72svn_sysinfo___fill_windows_version(OSVERSIONINFOEXW *version_info); 73#endif 74 75 76#ifdef __cplusplus 77} 78#endif /* __cplusplus */ 79 80#endif /* SVN_LIBSVN_SUBR_SYSINFO_H */ 81