⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xen_common.h

📁 xen虚拟机源代码安装包
💻 H
字号:
/* * Copyright (c) 2006 XenSource, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA */#ifndef XEN_COMMON_H#define XEN_COMMON_H#include <stdbool.h>#include <stddef.h>#include <stdint.h>#include <time.h>#include "xen/api/xen_host_decl.h"typedef bool (*xen_result_func)(const void *data, size_t len,                                void *result_handle);/** * len does not include a terminating \0. */typedef int (*xen_call_func)(const void *, size_t len, void *user_handle,                             void *result_handle,                             xen_result_func result_func);typedef struct{    xen_call_func call_func;    void *handle;    const char *session_id;    bool ok;    char **error_description;    int error_description_count;} xen_session;typedef struct xen_session_record{    char *uuid;    struct xen_host_record_opt *this_host;    char *this_user;    time_t last_active;} xen_session_record;/** * Allocate a xen_session_record. */extern xen_session_record *xen_session_record_alloc(void);/** * Free the given xen_session_record, and all referenced values.  The * given record must have been allocated by this library. */extern voidxen_session_record_free(xen_session_record *record);struct xen_task_;typedef struct xen_task_ * xen_task_id;typedef struct{    int progress;    long eta;    /* !!! RESULT */}  xen_task_status;typedef struct{    int major;    int minor;    int patch;    char *extraversion;} xen_version;/** * Free the given xen_version, and all referenced values. */extern void xen_version_free(xen_version *version);/** * Return the version of this client-side library.  This will be the major, * minor, and extraversion of the Xen release with which it was released, * plus the library's own version as the patch. */extern xen_version *xen_get_client_side_version(void);extern boolxen_uuid_string_to_bytes(char *uuid, char **bytes);extern boolxen_uuid_bytes_to_string(char *bytes, char **uuid);extern voidxen_uuid_free(char *uuid);extern voidxen_uuid_bytes_free(char *bytes);/** * Initialise this library.  Call this before starting to use this library. * Note that since this library depends upon libxml2, you should also call * xmlInitParser as appropriate for your program. */externvoid xen_init(void);/** * Clear up this library.  Call when you have finished using this library. * Note that since this library depends upon libxml2, you should also call * xmlCleanupParser as appropriate for your program. */externvoid xen_fini(void);/** * Log in at the server, and allocate a xen_session to represent this session. */extern xen_session *xen_session_login_with_password(xen_call_func call_func, void *handle,                                const char *uname, const char *pwd);/** * Log out at the server, and free the xen_session. */extern voidxen_session_logout(xen_session *session);/** * Clear any error condition recorded on this session. */voidxen_session_clear_error(xen_session *session);/** * Get the UUID of the second given session.  Set *result to point at a * string, yours to free. */extern boolxen_session_get_uuid(xen_session *session, char **result,                     xen_session *self_session);/** * Get the this_host field of the second given session.  Set *result to be a * handle to that host. */extern boolxen_session_get_this_host(xen_session *session, xen_host *result,                          xen_session *self_session);/** * Get the this_user field of the second given session.  Set *result to point * at a string, yours to free. */extern boolxen_session_get_this_user(xen_session *session, char **result,                          xen_session *self_session);/** * Get the last_active field of the given session, and place it in *result. */extern boolxen_session_get_last_active(xen_session *session, time_t *result,                            xen_session *self_session);/** * Get a record containing the current state of the second given session. */extern boolxen_session_get_record(xen_session *session, xen_session_record **result,                       xen_session *self_session);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -