xref: /csrg-svn/sys/kern/subr_xxx.c (revision 47543)
1 /*
2  * Copyright (c) 1982, 1986, 1991 Regents of the University of California.
3  * All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  *
7  *	@(#)subr_xxx.c	7.9 (Berkeley) 03/17/91
8  */
9 
10 /*
11  * Miscellaneous trivial functions, including many
12  * that are often inline-expanded or done in assembler.
13  */
14 #include "types.h"
15 #include "machine/cpu.h"
16 #include "errno.h"
17 
18 /*
19  * Unsupported device function (e.g. writing to read-only device).
20  */
21 enodev()
22 {
23 
24 	return (ENODEV);
25 }
26 
27 /*
28  * Unconfigured device function; driver not configured.
29  */
30 enxio()
31 {
32 
33 	return (ENXIO);
34 }
35 
36 /*
37  * Return error for unsupported operation.
38  */
39 eopnotsupp()
40 {
41 
42 	return (EOPNOTSUPP);
43 }
44 
45 /*
46  * Generic null operation, always returns success.
47  */
48 nullop()
49 {
50 
51 	return (0);
52 }
53 
54 /*
55  * Definitions of various trivial functions;
56  * usually expanded inline rather than being defined here.
57  */
58 #if !defined(vax) && !defined(tahoe)
59 imin(a, b)
60 	int a, b;
61 {
62 
63 	return (a < b ? a : b);
64 }
65 
66 imax(a, b)
67 	int a, b;
68 {
69 
70 	return (a > b ? a : b);
71 }
72 
73 unsigned int
74 min(a, b)
75 	unsigned int a, b;
76 {
77 
78 	return (a < b ? a : b);
79 }
80 
81 unsigned int
82 max(a, b)
83 	unsigned int a, b;
84 {
85 
86 	return (a > b ? a : b);
87 }
88 
89 long
90 lmin(a, b)
91 	long a, b;
92 {
93 
94 	return (a < b ? a : b);
95 }
96 
97 long
98 lmax(a, b)
99 	long a, b;
100 {
101 
102 	return (a > b ? a : b);
103 }
104 
105 unsigned long
106 ulmin(a, b)
107 	unsigned long a, b;
108 {
109 
110 	return (a < b ? a : b);
111 }
112 
113 unsigned long
114 ulmax(a, b)
115 	unsigned long a, b;
116 {
117 
118 	return (a > b ? a : b);
119 }
120 #endif
121 
122 #if !defined(vax) && !defined(tahoe) && !defined(hp300)
123 ffs(mask)
124 	register long mask;
125 {
126 	register int bit;
127 
128 	if (!mask)
129 		return(0);
130 	for (bit = 1;; ++bit) {
131 		if (mask&0x01)
132 			return(bit);
133 		mask >>= 1;
134 	}
135 }
136 #endif
137 
138 #if !defined(vax) && !defined(hp300)
139 bcmp(v1, v2, len)
140 	void *v1, *v2;
141 	register unsigned len;
142 {
143 	register u_char *s1 = v1, *s2 = v2;
144 
145 	while (len--)
146 		if (*s1++ != *s2++)
147 			return (1);
148 	return (0);
149 }
150 
151 strlen(s1)
152 	register char *s1;
153 {
154 	register int len;
155 
156 	for (len = 0; *s1++ != '\0'; len++)
157 		;
158 	return (len);
159 }
160 #endif
161