1 /*	$NetBSD: returns.h,v 1.1 2011/04/10 09:55:09 blymn Exp $	*/
2 
3 /*-
4  * Copyright 2009 Brett Lymn <blymn@NetBSD.org>
5  *
6  * All rights reserved.
7  *
8  * This code has been donated to The NetBSD Foundation by the Author.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. The name of the author may not be used to endorse or promote products
16  *    derived from this software withough specific prior written permission
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  *
29  *
30  */
31 #ifndef CTF_RETURNS_H
32 #define CTF_RETURNS_H 1
33 
34 
35 typedef enum {
36 	ret_number = 1,
37 	ret_string,
38 	ret_byte,
39 	ret_err,
40 	ret_ok,
41 	ret_null,
42 	ret_nonnull,
43 	ret_var,
44 	ret_ref,
45 	ret_count,
46 	ret_slave_error
47 } returns_enum_t;
48 
49 typedef struct {
50 	returns_enum_t	return_type;
51 	void		*return_value;	/* used if return_type is ret_num or
52 					   or ret_byte or ret_string */
53 	size_t		return_len;	/* number of bytes in return_value iff
54 					   return_type is ret_byte */
55 	int		return_index;	/* index into var array for return
56 					   if return_type is ret_var */
57 } returns_t;
58 
59 typedef struct {
60 	size_t	count;
61 	size_t	allocated;
62 	size_t	readp;
63 	char	*data;
64 } saved_data_t;
65 
66 #endif /* CTF_RETURNS_H */
67