Home | History | Annotate | Download | only in snoop
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*
     23  * Copyright (c) 1993 by Sun Microsystems, Inc.
     24  */
     25 
     26 #ifndef _FW_H
     27 #define	_FW_H
     28 
     29 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     30 
     31 #include <rpc/rpc.h>
     32 #include "fakewin.h"
     33 
     34 #ifdef __cplusplus
     35 extern "C" {
     36 #endif
     37 
     38 /*
     39  * Header file for the framework.
     40  */
     41 #define	CTXTLEN 1024
     42 
     43 struct Op_arg_item {
     44 	char _TKFAR *name;
     45 	char _TKFAR *value;
     46 	struct Op_arg_item _TKFAR *next;
     47 };
     48 typedef struct Op_arg_item Op_arg_item;
     49 
     50 struct Op_row_link {
     51 	Op_arg_item _TKFAR *first;
     52 	Op_arg_item _TKFAR *last;
     53 	struct Op_row_link _TKFAR *next;
     54 };
     55 typedef struct Op_row_link Op_row_link;
     56 
     57 struct Op_arg {
     58 	Op_row_link _TKFAR *first;
     59 	Op_row_link _TKFAR *last;
     60 	Op_row_link _TKFAR *curr;
     61 	Op_arg_item _TKFAR *cura;
     62 	u_long rows;
     63 	bool_t xdr_flag;
     64 };
     65 typedef struct Op_arg Op_arg;
     66 
     67 enum Fw_err {
     68 	FW_ERR_NONE = 0,
     69 	FW_ERR_FW = 1,
     70 	FW_ERR_OP = 2
     71 };
     72 typedef enum Fw_err Fw_err;
     73 
     74 struct Op_err {
     75 	Fw_err type;
     76 	u_long code;
     77 	bool_t xdr_flag;
     78 	char _TKFAR *message;
     79 };
     80 typedef struct Op_err Op_err;
     81 
     82 typedef char invk_context[CTXTLEN];
     83 
     84 struct invk_result {
     85 	Op_err _TKFAR *err;
     86 	Op_arg _TKFAR *arg;
     87 	bool_t eof;
     88 };
     89 typedef struct invk_result invk_result;
     90 
     91 struct invk_request {
     92 	char _TKFAR *category;
     93 	char _TKFAR *op;
     94 	char _TKFAR *vers;
     95 	char _TKFAR *locale;
     96 	u_long threshold;
     97 	invk_context context;
     98 	Op_arg _TKFAR *arg;
     99 };
    100 typedef struct invk_request invk_request;
    101 
    102 struct more_request {
    103 	invk_context context;
    104 	u_long threshold;
    105 };
    106 typedef struct more_request more_request;
    107 
    108 struct kill_request {
    109 	invk_context context;
    110 };
    111 typedef struct kill_request kill_request;
    112 
    113 #define	FW_KV_DELIM		"="
    114 #define	FW_KV_DELIM_CH		'='
    115 #define	FW_VK_DELIM		"\n"
    116 #define	FW_VK_DELIM_CH		'\n';
    117 #define	FW_INPUT_VERS_VAL	1
    118 #define	FW_INPUT_VERS_STR	"1"
    119 #define	FW_OUTPUT_VERS_VAL	1
    120 #define	FW_OUTPUT_VERS_STR	"1"
    121 #define	FW_INPUT_VERS_KEY	"_SUNW_AO_INPUT_VERS"
    122 #define	FW_OUTPUT_VERS_KEY	"_SUNW_AO_OUTPUT_VERS"
    123 #define	FW_ROW_MARKER_KEY	"_SUNW_AO_BEGIN_ROW"
    124 #define	FW_ROW_MARKER	FW_ROW_MARKER_KEY FW_KV_DELIM FW_OUTPUT_VERS_STR \
    125     FW_VK_DELIM
    126 #define	FW_INPUT_VERS	FW_INPUT_VERS_KEY FW_KV_DELIM FW_INPUT_VERS_STR \
    127     FW_VK_DELIM
    128 #define	FW_OUTPUT_VERS	FW_OUTPUT_VERS_KEY FW_KV_DELIM FW_OUTPUT_VERS_STR \
    129     FW_VK_DELIM
    130 #define	FW_ERR_MSG_MAX		2047
    131 #define	FW_UNIX_USER		"UU"
    132 
    133 #define	FW_SUCCESS		0
    134 #define	FW_ERROR		-1
    135 #define	FW_TIMEOUT		-2
    136 
    137 #define	SN_LOCALE_PATH_VAR	"_SN_LOCALE_PATH"
    138 #define	SN_UNAME_VAR	"_SN_UNAME"
    139 #define	SN_UID_VAR	"_SN_UID"
    140 
    141 #include "fw_lib.h"
    142 
    143 #ifdef __cplusplus
    144 }
    145 #endif
    146 
    147 #endif /* !_FW_H */
    148