summaryrefslogtreecommitdiff
path: root/source/include/rpc_atsvc.h
blob: 2b983f438e57b72c6f74cb62f942543766c52892 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/* 
   Unix SMB/Netbios implementation.
   Version 1.9.
   Interface header: Scheduler service
   Copyright (C) Matthew Chapman 1999
   Copyright (C) Luke Kenneth Casson Leighton 1996-1999
   Copyright (C) Andrew Tridgell 1992-1999
   
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#ifndef _RPC_ATSVC_H
#define _RPC_ATSVC_H

#define AT_ADD_JOB    0x00
#define AT_DEL_JOB    0x01
#define AT_ENUM_JOBS  0x02
#define AT_QUERY_JOB  0x03


#define JOB_PERIODIC       0x01
#define JOB_EXEC_ERR       0x02
#define JOB_RUNS_TODAY     0x04
#define JOB_INCLUDE_TODAY  0x08
#define JOB_NONINTERACTIVE 0x10

/* AT_JOB_INFO */
typedef struct at_job_info_info
{
	uint32 time;		/* milliseconds after midnight */
	uint32 monthdays;	/* bitmask of days of month */
	uint8 weekdays;		/* bitmask of days of week */
	uint8 flags;		/* JOB_xx */

	uint32 ptr_command;

} AT_JOB_INFO;

/* AT_Q_ADD_JOB */
typedef struct q_at_add_job_info
{
	uint32 ptr_srv_name;
	UNISTR2 uni_srv_name;

	AT_JOB_INFO info;
	UNISTR2 command;

} AT_Q_ADD_JOB;

/* AT_R_ADD_JOB */
typedef struct r_at_add_job_info
{
	uint32 jobid;
	uint32 status;

} AT_R_ADD_JOB;


/* AT_Q_DEL_JOB */
typedef struct q_at_del_job_info
{
	uint32 ptr_srv_name;
	UNISTR2 uni_srv_name;

	uint32 min_jobid;
	uint32 max_jobid;

} AT_Q_DEL_JOB;

/* AT_R_DEL_JOB */
typedef struct r_at_del_job_info
{
	uint32 status;

} AT_R_DEL_JOB;


/* AT_Q_ENUM_JOBS */
typedef struct q_at_enum_jobs_info
{
	uint32 ptr_srv_name;
	UNISTR2 uni_srv_name;

	uint32 unknown0; /* 0 */
	uint32 unknown1; /* 0 */
	uint32 max_len;   /* preferred max length */

	uint32 ptr_resume;
	uint32 hnd_resume; /* resume handle */

} AT_Q_ENUM_JOBS;

/* AT_ENUM_INFO */
typedef struct q_at_enum_info_info
{
	uint32 jobid;
	AT_JOB_INFO info;

} AT_ENUM_INFO;

#define AT_MAX_JOBS 256

/* AT_R_ENUM_JOBS */
typedef struct r_at_enum_jobs_info
{
	uint32 num_entries; /* entries returned */
	uint32 ptr_entries;
	uint32 num_entries2;

	AT_ENUM_INFO info[AT_MAX_JOBS];
	UNISTR2 command[AT_MAX_JOBS];

	uint32 total_entries; /* total entries */
	uint32 ptr_resume;
	uint32 hnd_resume; /* resume handle */

	uint32 status;

} AT_R_ENUM_JOBS;


/* AT_Q_QUERY_JOB */
typedef struct q_at_query_job_info
{
	uint32 ptr_srv_name;
	UNISTR2 uni_srv_name;

	uint32 jobid;

} AT_Q_QUERY_JOB;

/* AT_R_QUERY_JOB */
typedef struct r_at_query_job_info
{
	uint32 ptr_info;
	AT_JOB_INFO info;
	UNISTR2 command;

	uint32 status;

} AT_R_QUERY_JOB;

#endif /* _RPC_ATSVC_H */