Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../../../../../../usr/include/EGL/../libzoneadm.h
Real path: /usr/include/libzoneadm.h
Zurück
/* * Copyright (c) 2013, 2023, Oracle and/or its affiliates. */ /* * Private interface for zoneadmd clients. Note that none of these interfaces * are thread-safe. */ #ifndef _LIBZONEADM_H #define _LIBZONEADM_H #ifdef __cplusplus extern "C" { #endif #include <libzonecfg.h> #include <libdladm.h> #include <zone.h> #include <pool.h> #include <libscf.h> #include <sys/zone.h> #include <libzfs.h> #include <sys/termios.h> /* * libzoneadm error codes */ typedef enum zoneadm_err { ZONEADM_OK = 0, ZONEADM_ERR, ZONEADM_BADARG, ZONEADM_EBUSY, ZONEADM_EEXIST, ZONEADM_ENOENT, ZONEADM_ENOTSUP, ZONEADM_ERRNO, ZONEADM_MODIFIED_LCFG, ZONEADM_NAMETOOLONG, ZONEADM_NPIV_H_LOADLIBRARY, ZONEADM_NPIV_H_OPENADAPTER, ZONEADM_NPIV_H_OPENADAPTERBYWWN, ZONEADM_NPIV_H_GETADAPTERNAME, ZONEADM_NPIV_H_NPIVGETADAPTERATTRIBUTES, ZONEADM_NPIV_H_GETADAPTERPORTATTRIBUTES, ZONEADM_NPIV_H_GETPORTNPIVATTRIBUTES, ZONEADM_NPIV_H_GETNPIVPORTINFO, ZONEADM_NPIV_H_GETVPORTCAPABILITY, ZONEADM_NPIV_H_ADAPTERCREATEWWN, ZONEADM_NPIV_H_CREATENPIVPORT, ZONEADM_NPIV_H_DELETENPIVPORT, ZONEADM_NPIV_LIBZONECFG_ERR, ZONEADM_NPIV_NOT_SUPPORTED, ZONEADM_NPIV_OVERHBA_INVALID, ZONEADM_NPIV_OVERHBA_EXCCEEDS_CAP, ZONEADM_NPIV_OVERHBA_ALL_IN_USE, ZONEADM_NPIV_PWWN_PHYS_INI_IN_USE, ZONEADM_NPIV_PWWN_PHYS_TGT_IN_USE, ZONEADM_NPIV_PWWN_OTHER_NPIV_IN_USE, ZONEADM_NPIV_PWWN_DISCOVERED_PORT_IN_USE, ZONEADM_NPIV_PWWN_COLLISION, ZONEADM_NPIV_PWWN_INVALID, ZONEADM_SERVICE_DISABLED, ZONEADM_ZONE_STATE, ZONEADM_MISSING_ARG, ZONEADM_NO_ZONEADMD } zoneadm_err_t; /* * Extended zoneadm/zonecfg -x suboptions internally known to zoneadm/zonecfg. */ typedef enum x_args { XARGS_OFF = 0, XARGS_ZP_FORCE_CREATE_ALL, XARGS_ZP_FORCE_DESTROY_ALL, XARGS_ZP_FORCE_CREATE, XARGS_ZP_FORCE_DESTROY, XARGS_ZP_FORCE_IMPORT, XARGS_ZP_REMOVE_ROOTZPOOL, XARGS_FORCE_TAKEOVER, XARGS_INIT_HOSTDATA, XARGS_INIT_HOSTDATA_INC, XARGS_MIGRATING, XARGS_STOR_CREATE_MISSING, XARGS_FORCE_STOR_DES_ALL, XARGS_CREATE_SIZE, XARGS_MIGRATING_CHECK, XARGS_MIGRATED, XARGS_PRE_INSTALL_INC, XARGS_DEBUG, XARGS_DEFUNCT, XARGS_MAX } x_args_t; /* * -x suboption strings for install/clone/attach/uninstall/move handled by * zoneadm internally and by zonecfg -r. */ #define OPT_FORCE_ZPOOL_CREATE_ALL "force-zpool-create-all" #define OPT_FORCE_ZPOOL_DESTROY_ALL "force-zpool-destroy-all" #define OPT_FORCE_ZPOOL_CREATE "force-zpool-create" #define OPT_FORCE_ZPOOL_DESTROY "force-zpool-destroy" #define OPT_FORCE_ZPOOL_IMPORT "force-zpool-import" #define OPT_FORCE_TAKEOVER "force-takeover" #define OPT_INIT_HOSTDATA "initialize-hostdata" #define OPT_INIT_HOSTDATA_INC "initialize-hostdata-incomplete" #define OPT_MIGRATING "migrating" #define OPT_STORAGE_CREATE_MISSING "storage-create-missing" #define OPT_FORCE_STORAGE_DESTROY_ALL "force-storage-destroy-all" #define OPT_REMOVE_ROOTZPOOL "remove-rootzpool" #define OPT_CREATE_SIZE "create-size" #define OPT_MIGRATING_CHECK "migrating-check" #define OPT_MIGRATED "migrated" #define OPT_PRE_INSTALL_INC "pre-install-incomplete" #define OPT_DEBUG "debug" #define OPT_DEFUNCT "with-defunct" /* * Additional -x suboption strings for attach/migrate handled by the RAD * zonemgr and zonemigrate interfaces. These suboption strings are not in * x_args since they are unknown to zoneadm/zonecfg, but are known to the * brand scripts. */ #define OPT_FORCE_ZBE_CLONE "force-zbe-clone" #define OPT_DENY_ZBE_CLONE "deny-zbe-clone" #define OPT_DESTROY_ORPHAN_ZBES "destroy-orphan-zbes" #define OPT_ATTACH_LAST_BOOTED_ZBE "attach-last-booted-zbe" #define OPT_ATTACH_MATCHED_ZBE "attach-matched-zbe" #define OPT_ATTACH_LAST_MOUNTED_ZBE "attach-last-mounted-zbe" /* * Public opaque zoneadm and zones operation events handles to work the * libzoneadm library */ struct zoneadm_handle; typedef struct zoneadm_handle *zoneadm_handle_t; struct zone_op_handle; typedef struct zone_op_handle *zone_op_handle_t; /* * Zone op info structure. */ typedef struct zone_op_info { char zoi_zonename[ZONENAME_MAX]; uint64_t zoi_seq; zone_op_t zoi_op; zone_op_t zoi_last_op; zone_op_state_t zoi_state; /* zoi_auxstates is a NULL terminated array */ char **zoi_auxstates; } zone_op_info_t; /* * Public opaque zones op event */ struct zone_op_ev; typedef struct zone_op_ev zone_op_ev_t; typedef enum zone_op_ev_type { ZOPEV_STATE, ZOPEV_AUXSTATE } zone_op_ev_type_t; /* Initialize/Destroy the handler */ extern zoneadm_handle_t zoneadm_init(const char *); extern void zoneadm_fini(zoneadm_handle_t); extern const char *zoneadm_zonename(zoneadm_handle_t); /* * Process contract cookies used by Zones. */ #define COOKIE_PREFIX ((uint64_t)'Z' << 40 | (uint64_t)'o' << 32 | \ 'n' << 24 | 'e' << 16 | 's' << 8) #define ZONEADM_COOKIE (COOKIE_PREFIX | 0x1) #define ZONEADM_SETINFRA_COOKIE (COOKIE_PREFIX | 0X2) #define ZONEADMD_COOKIE (COOKIE_PREFIX | 0x3) /* Error handling */ extern zoneadm_err_t zoneadm_errcode(zoneadm_handle_t); extern int zoneadm_errno(zoneadm_handle_t); extern const char *zoneadm_strerror(zoneadm_handle_t); /* zoneadmd(8) log */ extern void zoneadm_log_print(zoneadm_handle_t); extern void zoneadm_log_str(zoneadm_handle_t, char *, size_t); extern boolean_t zoneadm_log_is_empty(zoneadm_handle_t); /* Configuration lock operations */ extern zoneadm_err_t zoneadm_grab_lock_file(zoneadm_handle_t, const char *, boolean_t); extern void zoneadm_release_lock_file(zoneadm_handle_t); /* Communication with the zones restarter */ extern zoneadm_err_t zoneadm_call_restarter(zoneadm_handle_t, zdr_door_args_t *); extern void zoneadm_init_restarter_cmd(zoneadm_handle_t, zdr_door_cmd_t, zdr_door_args_t *); /* Communication with zoneadmd(8) */ extern void zoneadm_init_zone_cmd(zone_cmd_arg_t *, zone_cmd_t, admdflags_t, const char *); extern zoneadm_err_t zoneadm_start_zoneadmd(zoneadm_handle_t); extern zoneadm_err_t zoneadm_stop_zoneadmd(zoneadm_handle_t); extern zoneadm_err_t zoneadm_ping_zoneadmd(zoneadm_handle_t); extern zoneadm_err_t zoneadm_ping_restarter(zoneadm_handle_t); extern zoneadm_err_t zoneadm_call_zoneadmd(zoneadm_handle_t, zone_cmd_arg_t *); extern zoneadm_err_t zoneadm_call_zoneadmd_fd(zoneadm_handle_t, zone_cmd_arg_t *, int *, int, boolean_t); /* Live Zone Reconfiguration */ extern zoneadm_err_t zoneadm_handle_apply(zoneadm_handle_t, zone_dochandle_t, boolean_t, boolean_t, admdflags_t); extern zoneadm_err_t zoneadm_get_live_handle(zoneadm_handle_t, zone_dochandle_t); extern zoneadm_err_t zoneadm_config_is_stale(zoneadm_handle_t, zone_dochandle_t); /* Zone auxiliary state */ extern zoneadm_err_t zoneadm_has_aux_state(zoneadm_handle_t, const char *); extern zoneadm_err_t zoneadm_get_aux_state(zoneadm_handle_t, char *, size_t, boolean_t); extern int zoneadm_has_busy_aux_state(zoneadm_handle_t); extern int zoneadm_has_dead_aux_state(zoneadm_handle_t); extern zoneadm_err_t zoneadm_enable_rcapd(zoneadm_handle_t, boolean_t); /* Runtime verification of the zone configuration */ extern zoneadm_err_t zoneadm_verify_fs(zoneadm_handle_t, zone_fstab_t *); extern zoneadm_err_t zoneadm_verify_rctl(zoneadm_handle_t, zone_rctltab_t *); extern zoneadm_err_t zoneadm_verify_ds(zoneadm_handle_t, libzfs_handle_t *, const char *); /* Network */ extern zoneadm_err_t zoneadm_verify_anet(zoneadm_handle_t, dladm_handle_t, zone_anettab_t *); extern zoneadm_err_t zoneadm_verify_shared_net(zoneadm_handle_t, zone_nettab_t *); extern zoneadm_err_t zoneadm_verify_excl_net(zoneadm_handle_t, dladm_handle_t, zone_nettab_t *); extern boolean_t zoneadm_ifname_exists(zoneadm_handle_t, sa_family_t, const char *); extern int zoneadm_abort_tcp_connections(zoneid_t); extern void zoneadm_create_pwwn(char *, size_t); extern zoneadm_err_t zoneadm_create_vports(zoneadm_handle_t); extern zoneadm_err_t zoneadm_delete_vports(zoneadm_handle_t); extern zoneadm_err_t zoneadm_verify_vports(zoneadm_handle_t); /* Creation of ephemeral zonepath */ extern zoneadm_err_t zoneadm_create_ezp(zoneadm_handle_t, const char *); extern zoneadm_err_t zoneadm_get_pool(zoneadm_handle_t, pool_conf_t *, pool_t **, pool_t **); extern zoneadm_err_t zoneadm_get_pool_pset(zoneadm_handle_t, pool_conf_t *, pool_t *, pool_t *, pool_resource_t **, pool_resource_t **, boolean_t *); extern zoneadm_err_t zoneadm_get_cpus(zoneadm_handle_t, uint64_t *); /* ZOSS zoneadm helper routine to set default suri props */ extern zoneadm_err_t zoneadm_set_default_suri_props(zoneadm_handle_t, suri_handle_t, nvlist_t **); /* Handle -x args for zoneadm and zonecfg */ extern zoneadm_err_t zoneadm_parse_xargs(const char *, x_args_t *); /* Sanity check of fd prior to passing across zone_enter() */ extern boolean_t zoneadm_fd_allowed_in_zone(int); extern boolean_t zoneadm_has_dio_device(zoneadm_handle_t); extern boolean_t zoneadm_has_mhd_allowed_device(zoneadm_handle_t); /* Convert kzone pattern to path/filename */ extern int zoneadm_kzpattern_to_path(const char *, char *, int, const char *, const char *); /* LZR interface for an HA failover */ extern zoneadm_err_t zoneadm_remove_vf(zoneadm_handle_t, datalink_id_t); extern zoneadm_err_t zoneadm_add_vf(zoneadm_handle_t, datalink_id_t); extern zoneadm_err_t zoneadm_can_suspend(zoneadm_handle_t); /* Zones OP notification */ const char *zone_op_name(zone_op_t); const char *zone_op_state_name(zone_op_state_t); zone_op_state_t zone_op_zs_to_zops(zone_state_t); zoneadm_err_t zoneadm_zone_op(zoneadm_handle_t, zone_op_t); void zoneadm_zone_op_end(zoneadm_handle_t); void zoneadm_zone_op_update(zoneadm_handle_t, zone_op_t); int zone_info_nvl_get(nvlist_t **, uint64_t *); int zone_info_nvl_timedwait(uint64_t, uint64_t *); zone_op_handle_t zone_op_handle_init(void); void zone_op_handle_fini(zone_op_handle_t); typedef int (*zone_op_ev_cb_t)(zone_op_ev_t *, void *); int zone_op_get_ev(zone_op_handle_t, zone_op_ev_cb_t, void *, uint64_t *); int zone_op_handle_info_get(zone_op_handle_t); zone_op_info_t *zone_op_info_alloc(zone_op_handle_t, const char *); void zone_op_info_free(zone_op_info_t *); void zone_ev_free(zone_op_ev_t *); const char *zone_ev_get_zonename(zone_op_ev_t *); zone_op_state_t zone_ev_get_op_state(zone_op_ev_t *); zone_op_t zone_ev_get_op(zone_op_ev_t *); zone_op_t zone_ev_get_last_op(zone_op_ev_t *); uint64_t zone_ev_get_seq(zone_op_ev_t *); zone_op_ev_type_t zone_ev_get_type(zone_op_ev_t *); const char *zone_ev_get_auxstate(zone_op_ev_t *); boolean_t zone_ev_get_auxstate_marked(zone_op_ev_t *); extern zoneadm_err_t zoneadm_in_maintenance(zoneadm_handle_t, boolean_t *); int zoneadm_remove_kz_datasets(zoneadm_handle_t, const char *, const char *); void zlogin_canonify(char c, char *cc); int zlogin_process_user_input(int, int, boolean_t, char, struct termios *, struct termios *); int zlogin_process_output(int, int); int zlogin_close_func_cb(void *, int); void zlogin_reset_tty(boolean_t, int, struct termios *); int zlogin_set_tty_rawmode(int, int *, struct termios *, struct termios *, char **); int zlogin_init_slave_pty(zoneid_t, boolean_t, boolean_t, int, struct termios *, struct winsize *, char **); int zlogin_setup_utmpx(char *); int zlogin_prefork_dropprivs(boolean_t, priv_set_t **); void zlogin_postfork_dropprivs(priv_set_t *, char *, size_t); int zlogin_doio(int, int, int, int, int, boolean_t, boolean_t, char, struct termios *, struct termios *); #ifdef __cplusplus } #endif #endif /* _LIBZONEADM_H */