Print the entire path to where the checkpoint file is being created to avoid
[dragonfly.git] / sys / checkpt / checkpt.h
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/checkpt/Attic/checkpt.h,v 1.2 2003/11/20 06:05:27 dillon Exp $
26  */
27
28 #ifndef PRIVATE_CKPT_H_
29 #define PRIVATE_CKPT_H_
30
31 #define CKPT_FREEZE    0x1
32 #define CKPT_THAW      0x2
33 #define CKPT_FREEZEPID 0x3
34 #define CKPT_THAWBIN   0x4
35
36 char *ckpt_expand_name(const char *name, uid_t uid, pid_t pid);
37
38 struct ckpt_generic_args {
39         int type;
40         int fd;
41 };
42
43 struct ckpt_freeze_args {
44         struct ckpt_generic_args gen;
45 };
46
47 struct ckpt_thaw_args {
48         struct ckpt_generic_args gen;
49         int retval;
50 }; 
51
52 struct ckpt_freeze_pid_args {
53         struct ckpt_generic_args gen;
54         int pid;
55 };
56
57 struct ckpt_thaw_bin_args {
58         struct ckpt_generic_args gen;
59         char *bin;
60         int binlen;
61 };
62
63 struct ckpt_args {
64         struct sysmsg sysmsg;
65         union usrmsg usrmsg;
66         union {
67                 struct ckpt_generic_args gen;
68                 struct ckpt_freeze_args cfa;
69                 struct ckpt_thaw_args cta;
70                 struct ckpt_freeze_pid_args cfpa;
71                 struct ckpt_thaw_bin_args ctba;
72         } args;
73 };
74
75 typedef struct {
76         prstatus_t *status;
77         prfpregset_t *fpregset;
78         prpsinfo_t *psinfo;
79 } pstate_t;
80
81 typedef struct {
82         pstate_t *pstate;
83         int offset;
84         int nthreads;
85 } lc_args_t;
86
87 #endif /* PRIVATE_CKPT_H_ */
88