1 /*- 2 * Copyright (c) 2003 Kip Macy All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 * SUCH DAMAGE. 24 * 25 * $DragonFly: src/sys/sys/ckpt.h,v 1.11 2007/06/29 23:39:58 dillon Exp $ 26 */ 27 #ifndef _SYS_CKPT_H_ 28 #define _SYS_CKPT_H_ 29 30 #if !defined(_KERNEL) && !defined(_KERNEL_STRUCTURES) 31 32 #error "This file should not be included by userland programs." 33 34 #else 35 36 #ifndef _SYS_TYPES_H_ 37 #include <sys/types.h> 38 #endif 39 #ifndef _SYS_MOUNT_H_ 40 #include <sys/mount.h> 41 #endif 42 #ifndef _SYS_PROC_H_ 43 #include <sys/proc.h> 44 #endif 45 #ifndef _SYS_SIGNALVAR_H_ 46 #include <sys/signalvar.h> 47 #endif 48 49 #define CKPT_MAXTHREADS 256 50 51 struct ckpt_filehdr { 52 int cfh_magic; /* XXX implement */ 53 int cfh_nfiles; 54 int cfh_reserved[8]; 55 }; 56 57 struct ckpt_vminfo { 58 segsz_t cvm_dsize; 59 segsz_t cvm_tsize; 60 segsz_t cvm_reserved1[4]; 61 caddr_t cvm_daddr; 62 caddr_t cvm_taddr; 63 caddr_t cvm_reserved2[4]; 64 }; 65 66 struct ckpt_fileinfo { 67 int cfi_index; 68 u_int cfi_flags; /* saved f_flag */ 69 off_t cfi_offset; /* saved f_offset */ 70 fhandle_t cfi_fh; 71 int cfi_type; 72 int cfi_ckflags; 73 int cfi_reserved[6]; 74 }; 75 76 #define CKFIF_ISCKPTFD 0x0001 77 78 struct ckpt_siginfo { 79 int csi_ckptpisz; 80 struct sigacts csi_sigacts; 81 struct itimerval csi_itimerval; 82 int csi_sigparent; 83 sigset_t csi_sigmask; 84 int csi_reserved[6]; 85 }; 86 87 /* 88 * Elf_Phdr is based on the inclusion of elf32 or elf64. If neither was 89 * included, we don't know what to do with it. If the source needs the 90 * structure, generate a compile-time error. 91 */ 92 #ifdef __ELF_WORD_SIZE 93 94 struct vn_hdr { 95 fhandle_t vnh_fh; 96 Elf_Phdr vnh_phdr; 97 int vnh_reserved[8]; 98 }; 99 100 #endif 101 102 #ifdef _KERNEL 103 #ifdef DEBUG 104 #define TRACE_ENTER kprintf("entering %s at %s:%d\n", __func__, __FILE__, __LINE__) 105 #define TRACE_EXIT kprintf("exiting %s at %s:%d\n", __func__, __FILE__, __LINE__) 106 #define TRACE_ERR kprintf("failure encountered in %s at %s:%d\n", __func__, __FILE__, __LINE__) 107 #define PRINTF(args) kprintf args 108 #else 109 #define TRACE_ENTER 110 #define TRACE_EXIT 111 #define TRACE_ERR 112 #define PRINTF(args) 113 #endif /* DEBUG */ 114 #endif /* _KERNEL */ 115 116 #endif /* _KERNEL || _KERNEL_STRUCTURES */ 117 #endif /* _SYS_CKPT_H_ */ 118