vfs_init.c (4ae860afdeeb831297f634e4da397db9aba0a923) vfs_init.c (f1d19042b082d95f07a0027e596ba2405aa8a9a5)
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed
6 * to Berkeley by John Heidemann of the UCLA Ficus project.
7 *
8 * Source: * @(#)i405_init.c 2.10 92/04/27 UCLA Ficus project

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

31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)vfs_init.c 8.3 (Berkeley) 1/4/94
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed
6 * to Berkeley by John Heidemann of the UCLA Ficus project.
7 *
8 * Source: * @(#)i405_init.c 2.10 92/04/27 UCLA Ficus project

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

31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)vfs_init.c 8.3 (Berkeley) 1/4/94
39 * $Id: vfs_init.c,v 1.39 1998/11/10 09:04:09 peter Exp $
39 * $Id: vfs_init.c,v 1.40 1998/11/15 15:18:30 bde Exp $
40 */
41
42
43#include <sys/param.h>
44#include <sys/systm.h>
45#include <sys/kernel.h>
46#include <sys/mount.h>
47#include <sys/sysctl.h>

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

157vfs_add_vnodeops(void *data)
158{
159 struct vnodeopv_desc *opv;
160 struct vnodeopv_desc **newopv;
161 struct vnodeop_desc **newop;
162 int *newref;
163 vop_t **opv_desc_vector;
164 struct vnodeop_desc *desc;
40 */
41
42
43#include <sys/param.h>
44#include <sys/systm.h>
45#include <sys/kernel.h>
46#include <sys/mount.h>
47#include <sys/sysctl.h>

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

157vfs_add_vnodeops(void *data)
158{
159 struct vnodeopv_desc *opv;
160 struct vnodeopv_desc **newopv;
161 struct vnodeop_desc **newop;
162 int *newref;
163 vop_t **opv_desc_vector;
164 struct vnodeop_desc *desc;
165 struct vnodeopv_entry_desc *opve_descp;
166 int i, j, k;
165 int i, j;
167
168 opv = (struct vnodeopv_desc *)data;
169 MALLOC(newopv, struct vnodeopv_desc **,
170 (vnodeopv_num + 1) * sizeof(*newopv), M_VNODE, M_WAITOK);
171 if (newopv == NULL)
172 panic("vfs_add_vnodeops: no memory");
173 if (vnodeopv_descs) {
174 bcopy(vnodeopv_descs, newopv, vnodeopv_num * sizeof(*newopv));

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

225vfs_rm_vnodeops(void *data)
226{
227 struct vnodeopv_desc *opv;
228 struct vnodeopv_desc **newopv;
229 struct vnodeop_desc **newop;
230 int *newref;
231 vop_t **opv_desc_vector;
232 struct vnodeop_desc *desc;
166
167 opv = (struct vnodeopv_desc *)data;
168 MALLOC(newopv, struct vnodeopv_desc **,
169 (vnodeopv_num + 1) * sizeof(*newopv), M_VNODE, M_WAITOK);
170 if (newopv == NULL)
171 panic("vfs_add_vnodeops: no memory");
172 if (vnodeopv_descs) {
173 bcopy(vnodeopv_descs, newopv, vnodeopv_num * sizeof(*newopv));

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

224vfs_rm_vnodeops(void *data)
225{
226 struct vnodeopv_desc *opv;
227 struct vnodeopv_desc **newopv;
228 struct vnodeop_desc **newop;
229 int *newref;
230 vop_t **opv_desc_vector;
231 struct vnodeop_desc *desc;
233 struct vnodeopv_entry_desc *opve_descp;
234 int i, j, k;
235
236 opv = (struct vnodeopv_desc *)data;
237 /* Lower ref counts on descs in the table and release if zero */
238 opv_desc_vector = *(opv->opv_desc_vector_p);
239 for (i = 0; (desc = opv->opv_desc_ops[i].opve_op); i++) {
240 for (j = 0; j < num_op_descs; j++) {
241 if (desc == vfs_op_descs[j]) {

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

437 maxvfsconf = maxtypenum + 1;
438 return 0;
439}
440
441int
442vfs_modevent(module_t mod, int type, void *data)
443{
444 struct vfsconf *vfc;
232 int i, j, k;
233
234 opv = (struct vnodeopv_desc *)data;
235 /* Lower ref counts on descs in the table and release if zero */
236 opv_desc_vector = *(opv->opv_desc_vector_p);
237 for (i = 0; (desc = opv->opv_desc_ops[i].opve_op); i++) {
238 for (j = 0; j < num_op_descs; j++) {
239 if (desc == vfs_op_descs[j]) {

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

435 maxvfsconf = maxtypenum + 1;
436 return 0;
437}
438
439int
440vfs_modevent(module_t mod, int type, void *data)
441{
442 struct vfsconf *vfc;
445 struct vnodeopv_desc *opv;
446 int i;
447 int error = 0;
448
449 vfc = (struct vfsconf *)data;
450
451 switch (type) {
452 case MOD_LOAD:
453 if (vfc)
454 error = vfs_register(vfc);
455 break;
456
457 case MOD_UNLOAD:
458 if (vfc)
459 error = vfs_unregister(vfc);
460 break;
461 default: /* including MOD_SHUTDOWN */
462 break;
463 }
464 return (error);
465}
443 int error = 0;
444
445 vfc = (struct vfsconf *)data;
446
447 switch (type) {
448 case MOD_LOAD:
449 if (vfc)
450 error = vfs_register(vfc);
451 break;
452
453 case MOD_UNLOAD:
454 if (vfc)
455 error = vfs_unregister(vfc);
456 break;
457 default: /* including MOD_SHUTDOWN */
458 break;
459 }
460 return (error);
461}