Deleted Added
full compact
ncpl_queue.c (52153) ncpl_queue.c (52704)
1/*
2 * Copyright (c) 1999, Boris Popov
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
1/*
2 * Copyright (c) 1999, Boris Popov
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 * $FreeBSD: head/lib/libncp/ncpl_queue.c 52153 1999-10-12 11:56:41Z bp $
32 * $FreeBSD: head/lib/libncp/ncpl_queue.c 52704 1999-10-31 03:39:03Z bp $
33 *
34 * NetWare queue interface
35 *
36 */
37#include <sys/types.h>
38#include <errno.h>
39#include <stdio.h>
40#include <netncp/ncp_lib.h>
41
42int
33 *
34 * NetWare queue interface
35 *
36 */
37#include <sys/types.h>
38#include <errno.h>
39#include <stdio.h>
40#include <netncp/ncp_lib.h>
41
42int
43ncp_create_queue_job_and_file(int connid, u_int32_t queue_id,
44 struct queue_job *job)
43ncp_create_queue_job_and_file(NWCONN_HANDLE connid, u_int32_t queue_id,
44 struct queue_job *job)
45{
46 int error;
47 DECLARE_RQ;
48
49 ncp_init_request_s(conn, 121);
50 ncp_add_dword_hl(conn, queue_id);
51 ncp_add_mem(conn, &(job->j), sizeof(job->j));
52
53 if ((error = ncp_request(connid, 23, conn)) != 0)
54 return error;
55 memcpy(&(job->j), ncp_reply_data(conn, 0), 78);
56 ConvertToNWfromDWORD(job->j.JobFileHandle, &job->file_handle);
57 return 0;
58}
59
60int
45{
46 int error;
47 DECLARE_RQ;
48
49 ncp_init_request_s(conn, 121);
50 ncp_add_dword_hl(conn, queue_id);
51 ncp_add_mem(conn, &(job->j), sizeof(job->j));
52
53 if ((error = ncp_request(connid, 23, conn)) != 0)
54 return error;
55 memcpy(&(job->j), ncp_reply_data(conn, 0), 78);
56 ConvertToNWfromDWORD(job->j.JobFileHandle, &job->file_handle);
57 return 0;
58}
59
60int
61ncp_close_file_and_start_job(int connid, u_int32_t queue_id, struct queue_job *job)
61ncp_close_file_and_start_job(NWCONN_HANDLE connid, u_int32_t queue_id,
62 struct queue_job *job)
62{
63 int error;
64 DECLARE_RQ;
65
66 ncp_init_request_s(conn, 127);
67 ncp_add_dword_hl(conn, queue_id);
68 ncp_add_dword_lh(conn, job->j.JobNumber);
69 error = ncp_request(connid, 23, conn);
70 return error;
71}
72
73int
63{
64 int error;
65 DECLARE_RQ;
66
67 ncp_init_request_s(conn, 127);
68 ncp_add_dword_hl(conn, queue_id);
69 ncp_add_dword_lh(conn, job->j.JobNumber);
70 error = ncp_request(connid, 23, conn);
71 return error;
72}
73
74int
74ncp_attach_to_queue(int connid, u_int32_t queue_id) {
75ncp_attach_to_queue(NWCONN_HANDLE connid, u_int32_t queue_id) {
75 int error;
76 DECLARE_RQ;
77
78 ncp_init_request_s(conn, 111);
79 ncp_add_dword_hl(conn, queue_id);
80 error = ncp_request(connid, 23, conn);
81 return error;
82}
83
84int
76 int error;
77 DECLARE_RQ;
78
79 ncp_init_request_s(conn, 111);
80 ncp_add_dword_hl(conn, queue_id);
81 error = ncp_request(connid, 23, conn);
82 return error;
83}
84
85int
85ncp_detach_from_queue(int connid, u_int32_t queue_id) {
86ncp_detach_from_queue(NWCONN_HANDLE connid, u_int32_t queue_id) {
86 int error;
87 DECLARE_RQ;
88
89 ncp_init_request_s(conn, 112);
90 ncp_add_dword_hl(conn, queue_id);
91 error= ncp_request(connid, 23, conn);
92 return error;
93}
94
95int
87 int error;
88 DECLARE_RQ;
89
90 ncp_init_request_s(conn, 112);
91 ncp_add_dword_hl(conn, queue_id);
92 error= ncp_request(connid, 23, conn);
93 return error;
94}
95
96int
96ncp_service_queue_job(int connid, u_int32_t queue_id, u_int16_t job_type,
97 struct queue_job *job) {
97ncp_service_queue_job(NWCONN_HANDLE connid, u_int32_t queue_id,
98 u_int16_t job_type, struct queue_job *job)
99{
98 int error;
99 DECLARE_RQ;
100
101 ncp_init_request_s(conn, 124);
102 ncp_add_dword_hl(conn, queue_id);
103 ncp_add_word_hl(conn, job_type);
104 if ((error = ncp_request(connid, 23, conn)) != 0) {
105 return error;
106 }
107 memcpy(&(job->j), ncp_reply_data(conn, 0), 78);
108 ConvertToNWfromDWORD(job->j.JobFileHandle, &job->file_handle);
109 return error;
110}
111
112int
100 int error;
101 DECLARE_RQ;
102
103 ncp_init_request_s(conn, 124);
104 ncp_add_dword_hl(conn, queue_id);
105 ncp_add_word_hl(conn, job_type);
106 if ((error = ncp_request(connid, 23, conn)) != 0) {
107 return error;
108 }
109 memcpy(&(job->j), ncp_reply_data(conn, 0), 78);
110 ConvertToNWfromDWORD(job->j.JobFileHandle, &job->file_handle);
111 return error;
112}
113
114int
113ncp_finish_servicing_job(int connid, u_int32_t queue_id, u_int32_t job_number,
114 u_int32_t charge_info) {
115ncp_finish_servicing_job(NWCONN_HANDLE connid, u_int32_t queue_id,
116 u_int32_t job_number, u_int32_t charge_info)
117{
115 int error;
116 DECLARE_RQ;
117
118 ncp_init_request_s(conn, 131);
119 ncp_add_dword_hl(conn, queue_id);
120 ncp_add_dword_lh(conn, job_number);
121 ncp_add_dword_hl(conn, charge_info);
122
123 error = ncp_request(connid, 23, conn);
124 return error;
125}
126
127int
118 int error;
119 DECLARE_RQ;
120
121 ncp_init_request_s(conn, 131);
122 ncp_add_dword_hl(conn, queue_id);
123 ncp_add_dword_lh(conn, job_number);
124 ncp_add_dword_hl(conn, charge_info);
125
126 error = ncp_request(connid, 23, conn);
127 return error;
128}
129
130int
128ncp_abort_servicing_job(int connid, u_int32_t queue_id, u_int32_t job_number) {
131ncp_abort_servicing_job(NWCONN_HANDLE connid, u_int32_t queue_id,
132 u_int32_t job_number)
133{
129 int error;
130 DECLARE_RQ;
131
132 ncp_init_request_s(conn, 132);
133 ncp_add_dword_hl(conn, queue_id);
134 ncp_add_dword_lh(conn, job_number);
135 error = ncp_request(connid, 23, conn);
136 return error;
137}
138
139int
134 int error;
135 DECLARE_RQ;
136
137 ncp_init_request_s(conn, 132);
138 ncp_add_dword_hl(conn, queue_id);
139 ncp_add_dword_lh(conn, job_number);
140 error = ncp_request(connid, 23, conn);
141 return error;
142}
143
144int
140ncp_get_queue_length(int connid, u_int32_t queue_id, u_int32_t *queue_length) {
145ncp_get_queue_length(NWCONN_HANDLE connid, u_int32_t queue_id,
146 u_int32_t *queue_length)
147{
141 int error;
142 DECLARE_RQ;
143
144 ncp_init_request_s(conn, 125);
145 ncp_add_dword_hl(conn, queue_id);
146
147 if ((error = ncp_request(connid, 23, conn)) != 0)
148 return error;

--- 5 unchanged lines hidden (view full) ---

154 printf("Ouch! Server didn't reply with same queue id in ncp_get_queue_length!\n");
155 return EINVAL;
156 }
157 *queue_length = ncp_reply_dword_lh(conn,8);
158 return error;
159}
160
161int
148 int error;
149 DECLARE_RQ;
150
151 ncp_init_request_s(conn, 125);
152 ncp_add_dword_hl(conn, queue_id);
153
154 if ((error = ncp_request(connid, 23, conn)) != 0)
155 return error;

--- 5 unchanged lines hidden (view full) ---

161 printf("Ouch! Server didn't reply with same queue id in ncp_get_queue_length!\n");
162 return EINVAL;
163 }
164 *queue_length = ncp_reply_dword_lh(conn,8);
165 return error;
166}
167
168int
162ncp_get_queue_job_ids(int connid, u_int32_t queue_id, u_int32_t queue_section,
163 u_int32_t *length1, u_int32_t *length2, u_int32_t ids[])
169ncp_get_queue_job_ids(NWCONN_HANDLE connid, u_int32_t queue_id,
170 u_int32_t queue_section, u_int32_t *length1, u_int32_t *length2,
171 u_int32_t ids[])
164{
165 int error;
166 DECLARE_RQ;
167
168 ncp_init_request_s(conn,129);
169 ncp_add_dword_hl(conn, queue_id);
170 ncp_add_dword_lh(conn, queue_section);
171

--- 16 unchanged lines hidden (view full) ---

188 *ids++ = ncp_reply_dword_lh(conn, 8+pos);
189 }
190 }
191 *length1 = ncp_reply_dword_lh(conn,0);
192 return error;
193}
194
195int
172{
173 int error;
174 DECLARE_RQ;
175
176 ncp_init_request_s(conn,129);
177 ncp_add_dword_hl(conn, queue_id);
178 ncp_add_dword_lh(conn, queue_section);
179

--- 16 unchanged lines hidden (view full) ---

196 *ids++ = ncp_reply_dword_lh(conn, 8+pos);
197 }
198 }
199 *length1 = ncp_reply_dword_lh(conn,0);
200 return error;
201}
202
203int
196ncp_get_queue_job_info(int connid, u_int32_t queue_id, u_int32_t job_id,
197 struct nw_queue_job_entry *jobdata) {
204ncp_get_queue_job_info(NWCONN_HANDLE connid, u_int32_t queue_id,
205 u_int32_t job_id, struct nw_queue_job_entry *jobdata)
206{
198 int error;
199 DECLARE_RQ;
200
201 ncp_init_request_s(conn,122);
202 ncp_add_dword_hl(conn, queue_id);
203 ncp_add_dword_lh(conn, job_id);
204
205 if ((error = ncp_request(connid, 23, conn)) != 0)
206 return error;
207
208 if (conn->rpsize < sizeof(struct nw_queue_job_entry)) {
209 ncp_printf("ncp_reply_size %d < %d\n", conn->rpsize,sizeof(struct nw_queue_job_entry));
210 return EINVAL;
211 }
212 memcpy(jobdata,ncp_reply_data(conn,0), sizeof(struct nw_queue_job_entry));
213 return error;
214}
207 int error;
208 DECLARE_RQ;
209
210 ncp_init_request_s(conn,122);
211 ncp_add_dword_hl(conn, queue_id);
212 ncp_add_dword_lh(conn, job_id);
213
214 if ((error = ncp_request(connid, 23, conn)) != 0)
215 return error;
216
217 if (conn->rpsize < sizeof(struct nw_queue_job_entry)) {
218 ncp_printf("ncp_reply_size %d < %d\n", conn->rpsize,sizeof(struct nw_queue_job_entry));
219 return EINVAL;
220 }
221 memcpy(jobdata,ncp_reply_data(conn,0), sizeof(struct nw_queue_job_entry));
222 return error;
223}