|
|
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: * dspOptions.c
24: *
25: * From v01.06 04/19/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: * dspOptions
50: *
51: * INPUTS:
52: * --> ccbRefNum refnum of connection end
53: * --> sendBlocking send blocking threshold
54: * --> sendTimer send timer interval
55: * --> rtmtTimer retransmit timer interval
56: * --> badSeqMax retransmit advice send threshold
57: * --> useCheckSum generate DDP checksum on internet packets
58: *
59: * OUTPUTS:
60: * none
61: *
62: * ERRORS:
63: * errRefNum bad connection refnum
64: */
65: int adspOptions(sp, pb) /* (DSPPBPtr pb) */
66: CCBPtr sp;
67: struct adspcmd *pb;
68: {
69: short err;
70:
71: if (sp == 0) {
72: pb->ioResult = errRefNum;
73: return EINVAL;
74: }
75:
76: if (pb->u.optionParams.sendBlocking)
77: sp->sendBlocking = pb->u.optionParams.sendBlocking;
78:
79: if (pb->u.optionParams.sendTimer)
80: sp->sendInterval = pb->u.optionParams.sendTimer;
81:
82: /* No longer allowed to set retransmit timer as of ADSP 1.5 */
83: /* Use it to specify a command blocking request specific to MacOS
84: * emulation. */
85: if (pb->u.optionParams.rtmtTimer)
86: sp->delay = pb->u.optionParams.rtmtTimer;
87: KERNEL_DEBUG(DBG_ADSP_MISC, 0, sp, sp->delay, pb, pb->u.optionParams.rtmtTimer);
88:
89: if (pb->u.optionParams.badSeqMax)
90: sp->badSeqMax = pb->u.optionParams.badSeqMax;
91:
92: sp->useCheckSum = pb->u.optionParams.useCheckSum;
93: if (pb->u.optionParams.newPID)
94: sp->pid = pb->u.optionParams.newPID;
95: pb->ioResult = 0;
96: adspioc_ack(0, pb->ioc, pb->gref);
97: return 0;
98:
99: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.