1*d3140113Seric /* $OpenBSD: scheduler_null.c,v 1.11 2021/06/14 17:58:16 eric Exp $ */
265c4fdfbSgilles
365c4fdfbSgilles /*
465c4fdfbSgilles * Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
565c4fdfbSgilles *
665c4fdfbSgilles * Permission to use, copy, modify, and distribute this software for any
765c4fdfbSgilles * purpose with or without fee is hereby granted, provided that the above
865c4fdfbSgilles * copyright notice and this permission notice appear in all copies.
965c4fdfbSgilles *
1065c4fdfbSgilles * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1165c4fdfbSgilles * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1265c4fdfbSgilles * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1365c4fdfbSgilles * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1465c4fdfbSgilles * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1565c4fdfbSgilles * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1665c4fdfbSgilles * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1765c4fdfbSgilles */
1865c4fdfbSgilles
1965c4fdfbSgilles #include "smtpd.h"
2065c4fdfbSgilles
21acfdf0daSeric static int scheduler_null_init(const char *);
22299c4efeSeric static int scheduler_null_insert(struct scheduler_info *);
2365c4fdfbSgilles static size_t scheduler_null_commit(uint32_t);
2465c4fdfbSgilles static size_t scheduler_null_rollback(uint32_t);
25299c4efeSeric static int scheduler_null_update(struct scheduler_info *);
26299c4efeSeric static int scheduler_null_delete(uint64_t);
276dc81a07Seric static int scheduler_null_hold(uint64_t, uint64_t);
287eed50e8Seric static int scheduler_null_release(int, uint64_t, int);
29acfdf0daSeric static int scheduler_null_batch(int, int*, size_t*, uint64_t*, int*);
3065c4fdfbSgilles static size_t scheduler_null_messages(uint32_t, uint32_t *, size_t);
3165c4fdfbSgilles static size_t scheduler_null_envelopes(uint64_t, struct evpstate *, size_t);
32299c4efeSeric static int scheduler_null_schedule(uint64_t);
33299c4efeSeric static int scheduler_null_remove(uint64_t);
3435e161d3Seric static int scheduler_null_suspend(uint64_t);
3535e161d3Seric static int scheduler_null_resume(uint64_t);
3665c4fdfbSgilles
3765c4fdfbSgilles struct scheduler_backend scheduler_backend_null = {
3865c4fdfbSgilles scheduler_null_init,
3965c4fdfbSgilles
4065c4fdfbSgilles scheduler_null_insert,
4165c4fdfbSgilles scheduler_null_commit,
4265c4fdfbSgilles scheduler_null_rollback,
4365c4fdfbSgilles
4465c4fdfbSgilles scheduler_null_update,
4565c4fdfbSgilles scheduler_null_delete,
466dc81a07Seric scheduler_null_hold,
476dc81a07Seric scheduler_null_release,
4865c4fdfbSgilles
4965c4fdfbSgilles scheduler_null_batch,
5065c4fdfbSgilles
5165c4fdfbSgilles scheduler_null_messages,
5265c4fdfbSgilles scheduler_null_envelopes,
5365c4fdfbSgilles scheduler_null_schedule,
5465c4fdfbSgilles scheduler_null_remove,
5535e161d3Seric scheduler_null_suspend,
5635e161d3Seric scheduler_null_resume,
5765c4fdfbSgilles };
5865c4fdfbSgilles
59299c4efeSeric static int
scheduler_null_init(const char * arg)60acfdf0daSeric scheduler_null_init(const char *arg)
6165c4fdfbSgilles {
62299c4efeSeric return (1);
6365c4fdfbSgilles }
6465c4fdfbSgilles
65299c4efeSeric static int
scheduler_null_insert(struct scheduler_info * si)6665c4fdfbSgilles scheduler_null_insert(struct scheduler_info *si)
6765c4fdfbSgilles {
68299c4efeSeric return (0);
6965c4fdfbSgilles }
7065c4fdfbSgilles
7165c4fdfbSgilles static size_t
scheduler_null_commit(uint32_t msgid)7265c4fdfbSgilles scheduler_null_commit(uint32_t msgid)
7365c4fdfbSgilles {
7465c4fdfbSgilles return (0);
7565c4fdfbSgilles }
7665c4fdfbSgilles
7765c4fdfbSgilles static size_t
scheduler_null_rollback(uint32_t msgid)7865c4fdfbSgilles scheduler_null_rollback(uint32_t msgid)
7965c4fdfbSgilles {
8065c4fdfbSgilles return (0);
8165c4fdfbSgilles }
8265c4fdfbSgilles
83299c4efeSeric static int
scheduler_null_update(struct scheduler_info * si)8465c4fdfbSgilles scheduler_null_update(struct scheduler_info *si)
8565c4fdfbSgilles {
86299c4efeSeric return (0);
8765c4fdfbSgilles }
8865c4fdfbSgilles
89299c4efeSeric static int
scheduler_null_delete(uint64_t evpid)9065c4fdfbSgilles scheduler_null_delete(uint64_t evpid)
9165c4fdfbSgilles {
92299c4efeSeric return (0);
9365c4fdfbSgilles }
9465c4fdfbSgilles
95299c4efeSeric static int
scheduler_null_hold(uint64_t evpid,uint64_t holdq)966dc81a07Seric scheduler_null_hold(uint64_t evpid, uint64_t holdq)
976dc81a07Seric {
986dc81a07Seric return (0);
996dc81a07Seric }
1006dc81a07Seric
1016dc81a07Seric static int
scheduler_null_release(int type,uint64_t holdq,int n)1027eed50e8Seric scheduler_null_release(int type, uint64_t holdq, int n)
1036dc81a07Seric {
1046dc81a07Seric return (0);
1056dc81a07Seric }
1066dc81a07Seric
1076dc81a07Seric static int
scheduler_null_batch(int typemask,int * delay,size_t * count,uint64_t * evpids,int * types)108acfdf0daSeric scheduler_null_batch(int typemask, int *delay, size_t *count, uint64_t *evpids, int *types)
10965c4fdfbSgilles {
110acfdf0daSeric *delay = 0;
111299c4efeSeric
112299c4efeSeric return (0);
11365c4fdfbSgilles }
11465c4fdfbSgilles
115299c4efeSeric static int
scheduler_null_schedule(uint64_t evpid)11665c4fdfbSgilles scheduler_null_schedule(uint64_t evpid)
11765c4fdfbSgilles {
118299c4efeSeric return (0);
11965c4fdfbSgilles }
12065c4fdfbSgilles
121299c4efeSeric static int
scheduler_null_remove(uint64_t evpid)12265c4fdfbSgilles scheduler_null_remove(uint64_t evpid)
12365c4fdfbSgilles {
124299c4efeSeric return (0);
12565c4fdfbSgilles }
12665c4fdfbSgilles
12735e161d3Seric static int
scheduler_null_suspend(uint64_t evpid)12835e161d3Seric scheduler_null_suspend(uint64_t evpid)
12935e161d3Seric {
13035e161d3Seric return (0);
13135e161d3Seric }
13235e161d3Seric
13335e161d3Seric static int
scheduler_null_resume(uint64_t evpid)13435e161d3Seric scheduler_null_resume(uint64_t evpid)
13535e161d3Seric {
13635e161d3Seric return (0);
13735e161d3Seric }
13835e161d3Seric
13965c4fdfbSgilles static size_t
scheduler_null_messages(uint32_t from,uint32_t * dst,size_t size)14065c4fdfbSgilles scheduler_null_messages(uint32_t from, uint32_t *dst, size_t size)
14165c4fdfbSgilles {
14265c4fdfbSgilles return (0);
14365c4fdfbSgilles }
14465c4fdfbSgilles
14565c4fdfbSgilles static size_t
scheduler_null_envelopes(uint64_t from,struct evpstate * dst,size_t size)14665c4fdfbSgilles scheduler_null_envelopes(uint64_t from, struct evpstate *dst, size_t size)
14765c4fdfbSgilles {
14865c4fdfbSgilles return (0);
14965c4fdfbSgilles }
150