Annotation of src/lib/libdm/dm.h, Revision 1.1
1.1 ! haad 1: /*
! 2: * Copyright (c) 2010 The NetBSD Foundation, Inc.
! 3: * All rights reserved.
! 4: *
! 5: * This code is derived from software contributed to The NetBSD Foundation
! 6: * by Adam Hamsik.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: *
! 17: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
! 18: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
! 19: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
! 20: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
! 21: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
! 22: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
! 23: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
! 24: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
! 25: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
! 26: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! 27: * POSSIBILITY OF SUCH DAMAGE.
! 28: */
! 29:
! 30:
! 31: #ifndef _LIB_DM_H_
! 32: #define _LIB_DM_H_
! 33:
! 34: __BEGIN_DECLS
! 35:
! 36: #define DM_DEVICE_PATH "/dev/mapper/control"
! 37:
! 38: #define IOCTL_TYPE_IN 0x1
! 39: #define IOCTL_TYPE_OUT 0x2
! 40:
! 41: struct libdm_task;
! 42: struct libdm_cmd;
! 43: struct libdm_target;
! 44: struct libdm_table;
! 45: struct libdm_dev;
! 46: struct libdm_iter;
! 47:
! 48: typedef struct libdm_task* libdm_task_t;
! 49: typedef struct libdm_cmd* libdm_cmd_t;
! 50: typedef struct libdm_target* libdm_target_t;
! 51: typedef struct libdm_table* libdm_table_t;
! 52: typedef struct libdm_dev* libdm_dev_t;
! 53: typedef struct libdm_iter* libdm_iter_t;
! 54:
! 55: struct cmd_version {
! 56: const char *cmd;
! 57: uint32_t version[3];
! 58: };
! 59:
! 60: void libdm_iter_destroy(libdm_iter_t);
! 61:
! 62: libdm_task_t libdm_task_create(const char *);
! 63: void libdm_task_destroy(libdm_task_t);
! 64:
! 65: char *libdm_task_get_command(libdm_task_t);
! 66: int32_t libdm_task_get_cmd_version(libdm_task_t, uint32_t *, size_t);
! 67:
! 68: int libdm_task_set_name(const char *, libdm_task_t);
! 69: char *libdm_task_get_name(libdm_task_t);
! 70:
! 71: int libdm_task_set_uuid(const char *, libdm_task_t);
! 72: char *libdm_task_get_uuid(libdm_task_t);
! 73:
! 74: int libdm_task_set_minor(uint32_t, libdm_task_t);
! 75: uint32_t libdm_task_get_minor(libdm_task_t);
! 76:
! 77: uint32_t libdm_task_get_flags(libdm_task_t);
! 78: void libdm_task_set_flags(libdm_task_t, uint32_t);
! 79:
! 80: void libdm_task_set_suspend_flag(libdm_task_t);
! 81: void libdm_task_del_suspend_flag(libdm_task_t);
! 82:
! 83: void libdm_task_set_status_flag(libdm_task_t);
! 84: void libdm_task_del_status_flag(libdm_task_t);
! 85:
! 86: void libdm_task_set_exists_flag(libdm_task_t);
! 87: void libdm_task_del_exists_flag(libdm_task_t);
! 88:
! 89: void libdm_task_set_nocount_flag(libdm_task_t);
! 90: void libdm_task_del_nocount_flag(libdm_task_t);
! 91:
! 92: uint32_t libdm_task_get_target_num(libdm_task_t);
! 93: int32_t libdm_task_get_open_num(libdm_task_t);
! 94: uint32_t libdm_task_get_event_num(libdm_task_t);
! 95:
! 96: int libdm_task_set_cmd(libdm_cmd_t, libdm_task_t);
! 97: libdm_cmd_t libdm_task_get_cmd(libdm_task_t);
! 98:
! 99: /* cmd_data dictionary entry manipulating functions */
! 100: libdm_cmd_t libdm_cmd_create(void);
! 101: void libdm_cmd_destroy(libdm_cmd_t);
! 102: libdm_iter_t libdm_cmd_iter_create(libdm_cmd_t);
! 103:
! 104: int libdm_cmd_set_table(libdm_table_t, libdm_cmd_t);
! 105:
! 106: /* cmd is array of table dictionaries */
! 107: libdm_table_t libdm_cmd_get_table(libdm_iter_t);
! 108:
! 109: /* cmd is array of dev dictionaries */
! 110: libdm_dev_t libdm_cmd_get_dev(libdm_iter_t);
! 111:
! 112: /* cmd is array of target dictonaries */
! 113: libdm_target_t libdm_cmd_get_target(libdm_iter_t);
! 114: /* cmd is array of dev_t's */
! 115: uint64_t libdm_cmd_get_deps(libdm_iter_t);
! 116:
! 117: /* Table functions. */
! 118: libdm_table_t libdm_table_create(void);
! 119: void libdm_table_destroy(libdm_table_t);
! 120:
! 121: int libdm_table_set_start(uint64_t, libdm_table_t);
! 122: uint64_t libdm_table_get_start(libdm_table_t);
! 123:
! 124: int libdm_table_set_length(uint64_t, libdm_table_t);
! 125: uint64_t libdm_table_get_length(libdm_table_t);
! 126:
! 127: int libdm_table_set_target(const char *, libdm_table_t);
! 128: char * libdm_table_get_target(libdm_table_t);
! 129:
! 130: int libdm_table_set_params(const char *, libdm_table_t);
! 131: char * libdm_table_get_params(libdm_table_t);
! 132:
! 133: int32_t libdm_table_get_status(libdm_table_t);
! 134:
! 135: /* Target manipulating functions. */
! 136: void libdm_target_destroy(libdm_target_t);
! 137:
! 138: char * libdm_target_get_name(libdm_target_t);
! 139: int32_t libdm_target_get_version(libdm_target_t, uint32_t *, size_t);
! 140:
! 141: /* Dev manipulating functions. */
! 142: void libdm_dev_destroy(libdm_dev_t);
! 143:
! 144: char * libdm_dev_get_name(libdm_dev_t);
! 145: uint32_t libdm_dev_get_minor(libdm_dev_t);
! 146:
! 147: int libdm_dev_set_newname(const char *, libdm_cmd_t);
! 148:
! 149: /* task run routine */
! 150: int libdm_task_run(libdm_task_t);
! 151:
! 152: __END_DECLS
! 153:
! 154: #endif /* _LIB_DM_H_ */
CVSweb <webmaster@jp.NetBSD.org>