1/* 2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. The rights granted to you under the License 10 * may not be used to create, or enable the creation or redistribution of, 11 * unlawful or unlicensed copies of an Apple operating system, or to 12 * circumvent, violate, or enable the circumvention or violation of, any 13 * terms of an Apple operating system software license agreement. 14 * 15 * Please obtain a copy of the License at 16 * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 * 18 * The Original Code and all software distributed under the License are 19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 * Please see the License for the specific language governing rights and 24 * limitations under the License. 25 * 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 */ 28/* 29 * Copyright (c) 1996 Apple Computer, Inc. 30 * 31 * Created April 8, 1996 by Tuyen Nguyen 32 * Modified, March 17, 1997 by Tuyen Nguyen for MacOSX. 33 * 34 * File: cfg.c 35 */ 36 37#ifdef AURP_SUPPORT 38 39#define RESOLVE_DBG 40#include <sys/errno.h> 41#include <sys/types.h> 42#include <sys/param.h> 43#include <machine/spl.h> 44#include <sys/systm.h> 45#include <sys/kernel.h> 46#include <sys/proc.h> 47#include <sys/filedesc.h> 48#include <sys/fcntl.h> 49#include <sys/mbuf.h> 50#include <sys/socket.h> 51#include <sys/socketvar.h> 52#include <net/if.h> 53 54#include <netat/sysglue.h> 55#include <netat/appletalk.h> 56#include <netat/at_pcb.h> 57#include <netat/at_var.h> 58#include <netat/routing_tables.h> 59#include <netat/at_pcb.h> 60#include <netat/aurp.h> 61 62static int aurp_inited = 0; 63static char aurp_minor_no[4]; 64 65int aurp_open(gref) 66 gref_t *gref; 67{ 68 extern void AURPcmdx(); 69 int i; 70 71 if (!aurp_inited) 72 aurp_inited = 1; 73 74 for (i=1; i < sizeof(aurp_minor_no); i++) { 75 if (aurp_minor_no[i] == 0) { 76 aurp_minor_no[i] = (char )i; 77 break; 78 } 79 } 80 if (i == sizeof(aurp_minor_no)) 81 return EAGAIN; 82 if (i == 1) { 83 aurp_gref = gref; 84 if (ddp_AURPfuncx(AURPCODE_REG, AURPcmdx, 0)) { 85 aurp_gref = 0; 86 aurp_minor_no[i] = 0; 87 return EPROTOTYPE; 88 } 89 } 90 91 gref->info = (void *)&aurp_minor_no[i]; 92 return 0; 93} 94 95int aurp_close(gref) 96 gref_t *gref; 97{ 98 if (*(char *)gref->info == 1) { 99 aurp_gref = 0; 100 aurp_inited = 0; 101 ddp_AURPfuncx(AURPCODE_REG, 0, 0); 102 } 103 104 *(char *)gref->info = 0; 105 gref->info = 0; 106 return 0; 107} 108 109#endif /* AURP_SUPPORT */ 110