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.8 2006/05/21 03:43:47 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_reserved[7]; 73 }; 74 75 struct ckpt_siginfo { 76 int csi_ckptpisz; 77 struct procsig csi_procsig; 78 struct sigacts csi_sigacts; 79 struct itimerval csi_itimerval; 80 int csi_sigparent; 81 sigset_t csi_sigmask; 82 int csi_reserved[6]; 83 }; 84 85 /* 86 * Elf_Phdr is based on the inclusion of elf32 or elf64. If neither was 87 * included, we don't know what to do with it. If the source needs the 88 * structure, generate a compile-time error. 89 */ 90 #ifdef __ELF_WORD_SIZE 91 92 struct vn_hdr { 93 fhandle_t vnh_fh; 94 Elf_Phdr vnh_phdr; 95 int vnh_reserved[8]; 96 }; 97 98 #endif 99 100 #ifdef _KERNEL 101 #ifdef DEBUG 102 #define TRACE_ENTER printf("entering %s at %s:%d\n", __func__, __FILE__, __LINE__) 103 #define TRACE_EXIT printf("exiting %s at %s:%d\n", __func__, __FILE__, __LINE__) 104 #define TRACE_ERR printf("failure encountered in %s at %s:%d\n", __func__, __FILE__, __LINE__) 105 #define PRINTF(args) printf args 106 #else 107 #define TRACE_ENTER 108 #define TRACE_EXIT 109 #define TRACE_ERR 110 #define PRINTF(args) 111 #endif /* DEBUG */ 112 #endif /* _KERNEL */ 113 114 #endif /* _KERNEL || _KERNEL_STRUCTURES */ 115 #endif /* _SYS_CKPT_H_ */ 116