1da6c28aaSamw/*
2da6c28aaSamw * CDDL HEADER START
3da6c28aaSamw *
4da6c28aaSamw * The contents of this file are subject to the terms of the
5da6c28aaSamw * Common Development and Distribution License (the "License").
6da6c28aaSamw * You may not use this file except in compliance with the License.
7da6c28aaSamw *
8da6c28aaSamw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9da6c28aaSamw * or http://www.opensolaris.org/os/licensing.
10da6c28aaSamw * See the License for the specific language governing permissions
11da6c28aaSamw * and limitations under the License.
12da6c28aaSamw *
13da6c28aaSamw * When distributing Covered Code, include this CDDL HEADER in each
14da6c28aaSamw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15da6c28aaSamw * If applicable, add the following below this CDDL HEADER, with the
16da6c28aaSamw * fields enclosed by brackets "[]" replaced with your own identifying
17da6c28aaSamw * information: Portions Copyright [yyyy] [name of copyright owner]
18da6c28aaSamw *
19da6c28aaSamw * CDDL HEADER END
20da6c28aaSamw */
21da6c28aaSamw/*
2289dc44ceSjose borrego * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23da6c28aaSamw * Use is subject to license terms.
24*3299f39fSGordon Ross *
25*3299f39fSGordon Ross * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26da6c28aaSamw */
27da6c28aaSamw
28da6c28aaSamw#ifndef _MLSVC_LOGR_NDL_
29da6c28aaSamw#define _MLSVC_LOGR_NDL_
30da6c28aaSamw
31da6c28aaSamw/*
32da6c28aaSamw ***********************************************************************
33da6c28aaSamw *
34da6c28aaSamw * Event log RPC (EVENTLOG) interface definition.
35da6c28aaSamw *
36da6c28aaSamw ***********************************************************************
37da6c28aaSamw */
38da6c28aaSamw
39*3299f39fSGordon Ross#include <libmlrpc/ndrtypes.ndl>
40da6c28aaSamw
41da6c28aaSamw#define LOGR_OPNUM_EventLogClose		0x02
42da6c28aaSamw#define LOGR_OPNUM_EventLogQueryCount		0x04
43da6c28aaSamw#define LOGR_OPNUM_EventLogGetOldestRec		0x05
44da6c28aaSamw#define LOGR_OPNUM_EventLogOpen			0x07
45da6c28aaSamw#define LOGR_OPNUM_EventLogRead			0x0A
46da6c28aaSamw
4789dc44ceSjose borrego#define LOGR_MAXENTRYLEN			800
48da6c28aaSamw
49da6c28aaSamw
508d7e4166Sjose borregoCONTEXT_HANDLE(logr_handle) logr_handle_t;
51da6c28aaSamw
52da6c28aaSamwstruct logr_string {
5389dc44ceSjose borrego	WORD	length;
5489dc44ceSjose borrego	WORD	allosize;
5589dc44ceSjose borrego	LPTSTR	str;
56da6c28aaSamw};
57da6c28aaSamwtypedef struct logr_string logr_string_t;
58da6c28aaSamw
59da6c28aaSamwstruct logr_record {
6089dc44ceSjose borrego	DWORD  Length1;
6189dc44ceSjose borrego	DWORD  Reserved;
6289dc44ceSjose borrego	DWORD  RecordNumber;
6389dc44ceSjose borrego	DWORD  TimeGenerated;
6489dc44ceSjose borrego	DWORD  TimeWritten;
65da6c28aaSamw	DWORD  EventID;
66da6c28aaSamw	WORD   EventType;
67da6c28aaSamw	WORD   NumStrings;
68da6c28aaSamw	WORD   EventCategory;
6989dc44ceSjose borrego	WORD   ReservedFlags;
7089dc44ceSjose borrego	DWORD  ClosingRecordNumber;
7189dc44ceSjose borrego	DWORD  StringOffset;
72da6c28aaSamw	DWORD  UserSidLength;
73da6c28aaSamw	DWORD  UserSidOffset;
74da6c28aaSamw	DWORD  DataLength;
75da6c28aaSamw	DWORD  DataOffset;
7689dc44ceSjose borrego	BYTE   info[LOGR_MAXENTRYLEN];
77da6c28aaSamw	DWORD  Length2;
78da6c28aaSamw};
79da6c28aaSamwtypedef struct logr_record logr_record_t;
80da6c28aaSamw
81da6c28aaSamw/*
82da6c28aaSamw ***********************************************************************
83da6c28aaSamw * LOGR_OPNUM_EventLogClose
84da6c28aaSamw ***********************************************************************
85da6c28aaSamw */
86da6c28aaSamwOPERATION(LOGR_OPNUM_EventLogClose)
87da6c28aaSamwstruct logr_EventLogClose {
8889dc44ceSjose borrego	IN	logr_handle_t handle;
8989dc44ceSjose borrego	OUT	logr_handle_t result_handle;
90da6c28aaSamw	OUT	DWORD status;
91da6c28aaSamw};
92da6c28aaSamw
93da6c28aaSamw/*
94da6c28aaSamw ***********************************************************************
95da6c28aaSamw * LOGR_OPNUM_EventLogQueryCount
96da6c28aaSamw ***********************************************************************
97da6c28aaSamw */
98da6c28aaSamwOPERATION(LOGR_OPNUM_EventLogQueryCount)
99da6c28aaSamwstruct logr_EventLogQueryCount {
10089dc44ceSjose borrego	IN	logr_handle_t handle;
10189dc44ceSjose borrego	OUT	DWORD rec_num;
10289dc44ceSjose borrego	OUT	DWORD status;
103da6c28aaSamw};
104da6c28aaSamw
105da6c28aaSamw/*
106da6c28aaSamw ***********************************************************************
107da6c28aaSamw * LOGR_OPNUM_EventLogGetOldestRec
108da6c28aaSamw ***********************************************************************
109da6c28aaSamw */
110da6c28aaSamwOPERATION(LOGR_OPNUM_EventLogGetOldestRec)
111da6c28aaSamwstruct logr_EventLogGetOldestRec {
11289dc44ceSjose borrego	IN	logr_handle_t handle;
11389dc44ceSjose borrego	OUT	DWORD oldest_rec;
11489dc44ceSjose borrego	OUT	DWORD status;
115da6c28aaSamw};
116da6c28aaSamw
117da6c28aaSamw/*
118da6c28aaSamw ***********************************************************************
119da6c28aaSamw * LOGR_OPNUM_EventLogOpen
120da6c28aaSamw ***********************************************************************
121da6c28aaSamw */
122da6c28aaSamwOPERATION(LOGR_OPNUM_EventLogOpen)
123da6c28aaSamwstruct logr_EventLogOpen {
12489dc44ceSjose borrego	IN	DWORD *server_name;
12589dc44ceSjose borrego	IN	logr_string_t log_name;
12689dc44ceSjose borrego	IN	DWORD reg_module_name;
12789dc44ceSjose borrego	IN	DWORD major_version;
12889dc44ceSjose borrego	IN	DWORD minor_version;
12989dc44ceSjose borrego	OUT	logr_handle_t handle;
13089dc44ceSjose borrego	OUT	DWORD status;
131da6c28aaSamw};
132da6c28aaSamw
133da6c28aaSamwOPERATION(LOGR_OPNUM_EventLogRead)
134da6c28aaSamwstruct logr_EventLogRead {
13589dc44ceSjose borrego	IN	logr_handle_t handle;
13689dc44ceSjose borrego	IN	DWORD read_flags;
13789dc44ceSjose borrego	IN	DWORD rec_offset;
13889dc44ceSjose borrego	IN	DWORD nbytes_to_read;
13989dc44ceSjose borrego    SIZE_IS(nbytes_to_read)
14089dc44ceSjose borrego	OUT REFERENCE	LPBYTE buf;
14189dc44ceSjose borrego	OUT	DWORD sent_size;
14289dc44ceSjose borrego	OUT	DWORD min_bytes_needed;
14389dc44ceSjose borrego	OUT	DWORD status;
144da6c28aaSamw};
145da6c28aaSamw
146da6c28aaSamw/*
147da6c28aaSamw ***********************************************************************
148da6c28aaSamw * The EVENTLOG interface definition.
149da6c28aaSamw ***********************************************************************
150da6c28aaSamw */
151da6c28aaSamwINTERFACE(0)
152da6c28aaSamwunion logr_interface {
153da6c28aaSamw	CASE(LOGR_OPNUM_EventLogClose)
154da6c28aaSamw		struct logr_EventLogClose		EventLogClose;
155da6c28aaSamw	CASE(LOGR_OPNUM_EventLogQueryCount)
156da6c28aaSamw		struct logr_EventLogQueryCount		EventLogQueryCount;
157da6c28aaSamw	CASE(LOGR_OPNUM_EventLogGetOldestRec)
158da6c28aaSamw		struct logr_EventLogGetOldestRec	EventLogGetOldestRec;
159da6c28aaSamw	CASE(LOGR_OPNUM_EventLogOpen)
160da6c28aaSamw		struct logr_EventLogOpen		EventLogOpen;
161da6c28aaSamw	CASE(LOGR_OPNUM_EventLogRead)
162da6c28aaSamw		struct logr_EventLogRead		EventLogRead;
163da6c28aaSamw};
164da6c28aaSamwtypedef union logr_interface	logr_interface_t;
165da6c28aaSamwEXTERNTYPEINFO(logr_interface)
166da6c28aaSamw
167da6c28aaSamw#endif /* _MLSVC_LOGR_NDL_ */
168