|
|
1.1 root 1: /*
2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: * dspNewCID.c
24: *
25: * From v01.04 04/20/90 mbs
26: * Modified, April 9, 1997 by Tuyen Nguyen for MacOSX.
27: */
28:
29: #include <sys/errno.h>
30: #include <sys/types.h>
31: #include <sys/param.h>
32: #include <machine/spl.h>
33: #include <sys/systm.h>
34: #include <sys/kernel.h>
35: #include <sys/proc.h>
36: #include <sys/filedesc.h>
37: #include <sys/fcntl.h>
38: #include <sys/mbuf.h>
39: #include <sys/socket.h>
40:
41: #include <netat/sysglue.h>
42: #include <netat/appletalk.h>
43: #include <netat/at_pcb.h>
44: #include <netat/debug.h>
45: #include <netat/adsp.h>
46: #include <netat/adsp_internal.h>
47:
48: /*
49: * dspNewCID
50: *
51: * INPUTS:
52: * --> ccbRefNum refnum of connection end
53: *
54: * OUTPUTS:
55: * <-- newCID new connection identifier
56: *
57: * ERRORS:
58: * errRefNum bad connection refnum
59: * errState connection is not closed
60: */
61: int adspNewCID(sp, pb) /* (DSPPBPtr pb) */
62: CCBPtr sp;
63: struct adspcmd *pb;
64: {
65: if (sp == 0) {
66: pb->ioResult = errRefNum;
67: return EINVAL;
68: }
69:
70: if (sp->state != sClosed) { /* Can only assign to a closed connection */
71: pb->ioResult = errState;
72: return EINVAL;
73: }
74:
75: /*
76: * Assign a unique connection ID to this ccb
77: */
78: sp->locCID = pb->u.newCIDParams.newcid = NextCID();
79:
80: pb->ioResult = 0;
81: adspioc_ack(0, pb->ioc, pb->gref);
82: return 0;
83: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.