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