PERFORCE change 43859 for review
Sam Leffler
sam at FreeBSD.org
Fri Dec 12 09:05:47 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=43859
Change 43859 by sam at sam_ebb on 2003/12/12 09:01:44
IFC
Affected files ...
.. //depot/projects/netperf/sys/amd64/amd64/mp_machdep.c#4 integrate
.. //depot/projects/netperf/sys/amd64/amd64/mptable.c#2 integrate
.. //depot/projects/netperf/sys/amd64/ia32/ia32_sigtramp.S#3 branch
.. //depot/projects/netperf/sys/amd64/include/apicreg.h#2 integrate
.. //depot/projects/netperf/sys/boot/i386/boot0/boot0.s#4 integrate
.. //depot/projects/netperf/sys/boot/i386/cdboot/cdboot.s#2 integrate
.. //depot/projects/netperf/sys/compat/freebsd32/freebsd32_misc.c#4 integrate
.. //depot/projects/netperf/sys/compat/freebsd32/freebsd32_proto.h#3 integrate
.. //depot/projects/netperf/sys/compat/freebsd32/freebsd32_syscall.h#3 integrate
.. //depot/projects/netperf/sys/compat/freebsd32/freebsd32_syscalls.c#3 integrate
.. //depot/projects/netperf/sys/compat/freebsd32/freebsd32_sysent.c#3 integrate
.. //depot/projects/netperf/sys/compat/freebsd32/syscalls.master#3 integrate
.. //depot/projects/netperf/sys/compat/ia32/ia32_sigtramp.S#2 delete
.. //depot/projects/netperf/sys/compat/ia32/ia32_sysvec.c#5 integrate
.. //depot/projects/netperf/sys/compat/ia32/ia32_util.h#3 integrate
.. //depot/projects/netperf/sys/compat/ndis/cfg_var.h#1 branch
.. //depot/projects/netperf/sys/compat/ndis/hal_var.h#1 branch
.. //depot/projects/netperf/sys/compat/ndis/kern_ndis.c#1 branch
.. //depot/projects/netperf/sys/compat/ndis/ndis_var.h#1 branch
.. //depot/projects/netperf/sys/compat/ndis/ntoskrnl_var.h#1 branch
.. //depot/projects/netperf/sys/compat/ndis/pe_var.h#1 branch
.. //depot/projects/netperf/sys/compat/ndis/resource_var.h#1 branch
.. //depot/projects/netperf/sys/compat/ndis/subr_hal.c#1 branch
.. //depot/projects/netperf/sys/compat/ndis/subr_ndis.c#1 branch
.. //depot/projects/netperf/sys/compat/ndis/subr_ntoskrnl.c#1 branch
.. //depot/projects/netperf/sys/compat/ndis/subr_pe.c#1 branch
.. //depot/projects/netperf/sys/conf/files.amd64#8 integrate
.. //depot/projects/netperf/sys/conf/files.i386#9 integrate
.. //depot/projects/netperf/sys/conf/files.ia64#9 integrate
.. //depot/projects/netperf/sys/dev/ata/ata-lowlevel.c#13 integrate
.. //depot/projects/netperf/sys/dev/firewire/sbp.h#3 integrate
.. //depot/projects/netperf/sys/dev/firewire/sbp_targ.c#3 integrate
.. //depot/projects/netperf/sys/dev/if_ndis/if_ndis.c#1 branch
.. //depot/projects/netperf/sys/dev/if_ndis/if_ndisvar.h#1 branch
.. //depot/projects/netperf/sys/dev/led/led.c#5 integrate
.. //depot/projects/netperf/sys/dev/ofw/ofw_disk.c#4 integrate
.. //depot/projects/netperf/sys/i386/i386/local_apic.c#5 integrate
.. //depot/projects/netperf/sys/i386/i386/mp_machdep.c#18 integrate
.. //depot/projects/netperf/sys/i386/include/apicreg.h#2 integrate
.. //depot/projects/netperf/sys/i386/include/smp.h#3 integrate
.. //depot/projects/netperf/sys/ia64/ia32/Makefile#2 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32.h#2 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32_misc.c#2 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32_proto.h#4 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32_signal.c#1 branch
.. //depot/projects/netperf/sys/ia64/ia32/ia32_sigtramp.c#1 branch
.. //depot/projects/netperf/sys/ia64/ia32/ia32_syscall.h#4 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32_sysent.c#4 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32_sysvec.c#4 delete
.. //depot/projects/netperf/sys/ia64/ia32/ia32_util.h#2 delete
.. //depot/projects/netperf/sys/ia64/ia32/syscalls.conf#2 delete
.. //depot/projects/netperf/sys/ia64/ia32/syscalls.master#4 delete
.. //depot/projects/netperf/sys/ia64/include/cpufunc.h#2 integrate
.. //depot/projects/netperf/sys/ia64/include/runq.h#2 integrate
.. //depot/projects/netperf/sys/isa/psm.c#3 integrate
.. //depot/projects/netperf/sys/kern/init_sysent.c#9 integrate
.. //depot/projects/netperf/sys/kern/sched_ule.c#20 integrate
.. //depot/projects/netperf/sys/kern/syscalls.c#9 integrate
.. //depot/projects/netperf/sys/kern/syscalls.master#9 integrate
.. //depot/projects/netperf/sys/modules/Makefile#13 integrate
.. //depot/projects/netperf/sys/modules/if_ndis/Makefile#1 branch
.. //depot/projects/netperf/sys/modules/ndis/Makefile#1 branch
.. //depot/projects/netperf/sys/nfs4client/nfs4_idmap.c#2 integrate
.. //depot/projects/netperf/sys/pci/if_sis.c#20 integrate
.. //depot/projects/netperf/sys/sys/syscall.h#9 integrate
.. //depot/projects/netperf/sys/sys/syscall.mk#9 integrate
.. //depot/projects/netperf/sys/sys/sysproto.h#9 integrate
Differences ...
==== //depot/projects/netperf/sys/amd64/amd64/mp_machdep.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.230 2003/12/03 14:57:25 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.231 2003/12/11 02:47:35 peter Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -163,9 +163,9 @@
cpu_add(u_int apic_id, char boot_cpu)
{
- if (apic_id > MAXCPU) {
+ if (apic_id >= MAXCPU) {
printf("SMP: CPU %d exceeds maximum CPU %d, ignoring\n",
- apic_id, MAXCPU);
+ apic_id, MAXCPU - 1);
return;
}
KASSERT(cpu_info[apic_id].cpu_present == 0, ("CPU %d added twice",
==== //depot/projects/netperf/sys/amd64/amd64/mptable.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.228 2003/11/17 08:58:13 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.229 2003/12/11 02:47:35 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -54,7 +54,7 @@
/* string defined by the Intel MP Spec as identifying the MP table */
#define MP_SIG 0x5f504d5f /* _MP_ */
-#define NAPICID 32 /* Max number of I/O APIC's */
+#define NAPICID 32 /* Max number of APIC's */
#define BIOS_BASE (0xf0000)
#define BIOS_SIZE (0x10000)
@@ -811,7 +811,7 @@
* physical processor. If any of those ID's are
* already in the table, then kill the fixup.
*/
- for (id = 0; id <= MAXCPU; id++) {
+ for (id = 0; id < NAPICID; id++) {
if ((id_mask & 1 << id) == 0)
continue;
/* First, make sure we are on a logical_cpus boundary. */
==== //depot/projects/netperf/sys/amd64/include/apicreg.h#2 (text+ko) ====
@@ -22,7 +22,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/include/apicreg.h,v 1.25 2003/11/03 21:53:38 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/apicreg.h,v 1.26 2003/12/11 02:48:25 peter Exp $
*/
#ifndef _MACHINE_APICREG_H_
@@ -342,38 +342,6 @@
#define APIC_TDCR_128 0x0a
#define APIC_TDCR_1 0x0b
-
-/*
- * fields in IRR
- * ISA INTerrupts are in bits 16-31 of the 1st IRR register.
- * these masks DON'T EQUAL the isa IRQs of the same name.
- */
-#define APIC_IRQ0 0x00000001
-#define APIC_IRQ1 0x00000002
-#define APIC_IRQ2 0x00000004
-#define APIC_IRQ3 0x00000008
-#define APIC_IRQ4 0x00000010
-#define APIC_IRQ5 0x00000020
-#define APIC_IRQ6 0x00000040
-#define APIC_IRQ7 0x00000080
-#define APIC_IRQ8 0x00000100
-#define APIC_IRQ9 0x00000200
-#define APIC_IRQ10 0x00000400
-#define APIC_IRQ11 0x00000800
-#define APIC_IRQ12 0x00001000
-#define APIC_IRQ13 0x00002000
-#define APIC_IRQ14 0x00004000
-#define APIC_IRQ15 0x00008000
-#define APIC_IRQ16 0x00010000
-#define APIC_IRQ17 0x00020000
-#define APIC_IRQ18 0x00040000
-#define APIC_IRQ19 0x00080000
-#define APIC_IRQ20 0x00100000
-#define APIC_IRQ21 0x00200000
-#define APIC_IRQ22 0x00400000
-#define APIC_IRQ23 0x00800000
-
-
/******************************************************************************
* I/O APIC defines
*/
==== //depot/projects/netperf/sys/boot/i386/boot0/boot0.s#4 (text+ko) ====
@@ -13,7 +13,7 @@
# purpose.
#
-# $FreeBSD: src/sys/boot/i386/boot0/boot0.s,v 1.28 2003/12/09 05:40:06 obrien Exp $
+# $FreeBSD: src/sys/boot/i386/boot0/boot0.s,v 1.29 2003/12/11 20:40:12 jhb Exp $
# A 512-byte boot manager.
@@ -176,7 +176,7 @@
callw putx # item
#
# Now that we've printed the drive (if we needed to), display a prompt.
-# Get ready for the input byte noting the time.
+# Get ready for the input by noting the time.
#
main.7: movw $prompt,%si # Display
callw putstr # prompt
==== //depot/projects/netperf/sys/boot/i386/cdboot/cdboot.s#2 (text+ko) ====
@@ -13,7 +13,7 @@
# purpose.
#
-# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.9 2001/11/07 01:20:33 jhb Exp $
+# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.10 2003/12/11 22:42:50 jhb Exp $
#
# This program is a freestanding boot program to load an a.out binary
@@ -139,10 +139,26 @@
jmp error # Halt
have_vd: # Have Primary VD
#
-# Lookup the loader binary.
+# Try to look up the loader binary using the paths in the loader_paths
+# array.
#
- mov $loader_path,%si # File to lookup
- call lookup # Try to find it
+ mov $loader_paths,%si # Point to start of array
+lookup_path: push %si # Save file name pointer
+ call lookup # Try to find file
+ pop %di # Restore file name pointer
+ jnc lookup_found # Found this file
+ xor %al,%al # Look for next
+ mov $0xffff,%cx # path name by
+ repnz # scanning for
+ scasb # nul char
+ inc %di # Skip nul
+ mov %di,%si # Point %si at next path
+ mov (%si),%al # Get first char of next path
+ or %al,%al # Is it double nul?
+ jnz lookup_path # No, try it.
+ mov $msg_failed,%si # Failed message
+ jmp error # Halt
+lookup_found: # Found a loader file
#
# Load the binary into the buffer. Due to real mode addressing limitations
# we have to read it in in 64k chunks.
@@ -266,7 +282,8 @@
# Lookup the file in the path at [SI] from the root directory.
#
# Trashes: All but BX
-# Returns: BX = pointer to record
+# Returns: CF = 0 (success), BX = pointer to record
+# CF = 1 (not found)
#
lookup: mov $VD_ROOTDIR+MEM_VOLDESC,%bx # Root directory record
push %si
@@ -286,17 +303,21 @@
dec %si # Undo lodsb side effect
call find_file # Lookup first path item
jnc lookup_dir # Try next component
- mov $msg_lookupfail,%si # Not found.
+ mov $msg_lookupfail,%si # Not found message
+ call putstr
+ stc # Set carry
+ ret
jmp error
lookup_done: mov $msg_lookupok,%si # Success message
call putstr
+ clc # Clear carry
ret
#
# Lookup file at [SI] in directory whose record is at [BX].
#
# Trashes: All but returns
-# Returns: CF = 0 (success), BX = pointer to record, SX = next path item
+# Returns: CF = 0 (success), BX = pointer to record, SI = next path item
# CF = 1 (not found), SI = preserved
#
find_file: mov DIR_EXTENT(%bx),%eax # Load extent
@@ -536,7 +557,7 @@
twiddle_index: .byte 0x0
-msg_welcome: .asciz "CD Loader 1.01\r\n\n"
+msg_welcome: .asciz "CD Loader 1.2\r\n\n"
msg_bootinfo: .asciz "Building the boot loader arguments\r\n"
msg_relocate: .asciz "Relocating the loader and the BTX\r\n"
msg_jump: .asciz "Starting the BTX loader\r\n"
@@ -548,6 +569,9 @@
msg_lookupok: .asciz "Found\r\n"
msg_lookupfail: .asciz "File not found\r\n"
msg_load2big: .asciz "File too big\r\n"
-loader_path: .asciz "/BOOT/LOADER"
+msg_failed: .asciz "Boot failed\r\n"
twiddle_chars: .ascii "|/-\\"
+loader_paths: .asciz "/BOOT/LOADER"
+ .asciz "/boot/loader"
+ .byte 0
==== //depot/projects/netperf/sys/compat/freebsd32/freebsd32_misc.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.15 2003/11/07 21:27:13 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.16 2003/12/11 02:34:49 peter Exp $");
#include "opt_compat.h"
@@ -761,29 +761,21 @@
freebsd32_gettimeofday(struct thread *td,
struct freebsd32_gettimeofday_args *uap)
{
- int error;
- caddr_t sg;
- struct timeval32 *p32, s32;
- struct timeval *p = NULL, s;
+ struct timeval atv;
+ struct timeval32 atv32;
+ struct timezone rtz;
+ int error = 0;
- p32 = uap->tp;
- if (p32) {
- sg = stackgap_init();
- p = stackgap_alloc(&sg, sizeof(struct timeval));
- uap->tp = (struct timeval32 *)p;
+ if (uap->tp) {
+ microtime(&atv);
+ CP(atv, atv32, tv_sec);
+ CP(atv, atv32, tv_usec);
+ error = copyout(&atv32, uap->tp, sizeof (atv32));
}
- error = gettimeofday(td, (struct gettimeofday_args *) uap);
- if (error)
- return (error);
- if (p32) {
- error = copyin(p, &s, sizeof(s));
- if (error)
- return (error);
- CP(s, s32, tv_sec);
- CP(s, s32, tv_usec);
- error = copyout(&s32, p32, sizeof(s32));
- if (error)
- return (error);
+ if (error == 0 && uap->tzp != NULL) {
+ rtz.tz_minuteswest = tz_minuteswest;
+ rtz.tz_dsttime = tz_dsttime;
+ error = copyout(&rtz, uap->tzp, sizeof (rtz));
}
return (error);
}
==== //depot/projects/netperf/sys/compat/freebsd32/freebsd32_proto.h#3 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.14 2003/11/08 07:31:49 peter Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.26 2003/11/08 07:31:30 peter Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.16 2003/12/11 02:36:37 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.29 2003/12/11 02:36:07 peter Exp
*/
#ifndef _FREEBSD32_SYSPROTO_H_
==== //depot/projects/netperf/sys/compat/freebsd32/freebsd32_syscall.h#3 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.14 2003/11/08 07:31:49 peter Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.26 2003/11/08 07:31:30 peter Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.16 2003/12/11 02:36:37 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.29 2003/12/11 02:36:07 peter Exp
*/
#define FREEBSD32_SYS_syscall 0
@@ -53,7 +53,7 @@
#define FREEBSD32_SYS_getlogin 49
#define FREEBSD32_SYS_setlogin 50
#define FREEBSD32_SYS_acct 51
-#define FREEBSD32_SYS_sigpending 52
+ /* 52 is obsolete osigpending */
#define FREEBSD32_SYS_freebsd32_sigaltstack 53
#define FREEBSD32_SYS_ioctl 54
#define FREEBSD32_SYS_reboot 55
@@ -98,7 +98,7 @@
#define FREEBSD32_SYS_setpriority 96
#define FREEBSD32_SYS_socket 97
#define FREEBSD32_SYS_connect 98
-#define FREEBSD32_SYS_accept 99
+ /* 99 is obsolete oaccept */
#define FREEBSD32_SYS_getpriority 100
/* 101 is obsolete osend */
/* 102 is obsolete orecv */
@@ -123,7 +123,7 @@
#define FREEBSD32_SYS_freebsd32_settimeofday 122
#define FREEBSD32_SYS_fchown 123
#define FREEBSD32_SYS_fchmod 124
-#define FREEBSD32_SYS_recvfrom 125
+ /* 125 is obsolete orecvfrom */
#define FREEBSD32_SYS_setreuid 126
#define FREEBSD32_SYS_setregid 127
#define FREEBSD32_SYS_rename 128
@@ -149,7 +149,7 @@
#define FREEBSD32_SYS_quotactl 148
/* 149 is obsolete oquota */
/* 150 is obsolete ogetsockname */
-#define FREEBSD32_SYS_getdirentries 156
+ /* 156 is obsolete ogetdirentries */
#define FREEBSD32_SYS_freebsd32_statfs 157
#define FREEBSD32_SYS_freebsd32_fstatfs 158
#define FREEBSD32_SYS_getfh 161
@@ -295,4 +295,4 @@
#define FREEBSD32_SYS__umtx_lock 434
#define FREEBSD32_SYS__umtx_unlock 435
#define FREEBSD32_SYS_jail_attach 436
-#define FREEBSD32_SYS_MAXSYSCALL 437
+#define FREEBSD32_SYS_MAXSYSCALL 441
==== //depot/projects/netperf/sys/compat/freebsd32/freebsd32_syscalls.c#3 (text+ko) ====
@@ -2,8 +2,8 @@
* System call names.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.5 2003/11/08 07:31:49 peter Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.26 2003/11/08 07:31:30 peter Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.7 2003/12/11 02:36:37 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.29 2003/12/11 02:36:07 peter Exp
*/
const char *freebsd32_syscallnames[] = {
@@ -59,7 +59,7 @@
"getlogin", /* 49 = getlogin */
"setlogin", /* 50 = setlogin */
"acct", /* 51 = acct */
- "sigpending", /* 52 = sigpending */
+ "obs_osigpending", /* 52 = obsolete osigpending */
"freebsd32_sigaltstack", /* 53 = freebsd32_sigaltstack */
"ioctl", /* 54 = ioctl */
"reboot", /* 55 = reboot */
@@ -106,7 +106,7 @@
"setpriority", /* 96 = setpriority */
"socket", /* 97 = socket */
"connect", /* 98 = connect */
- "accept", /* 99 = accept */
+ "obs_oaccept", /* 99 = obsolete oaccept */
"getpriority", /* 100 = getpriority */
"obs_osend", /* 101 = obsolete osend */
"obs_orecv", /* 102 = obsolete orecv */
@@ -132,7 +132,7 @@
"freebsd32_settimeofday", /* 122 = freebsd32_settimeofday */
"fchown", /* 123 = fchown */
"fchmod", /* 124 = fchmod */
- "recvfrom", /* 125 = recvfrom */
+ "obs_orecvfrom", /* 125 = obsolete orecvfrom */
"setreuid", /* 126 = setreuid */
"setregid", /* 127 = setregid */
"rename", /* 128 = rename */
@@ -163,7 +163,7 @@
"#153", /* 153 = asyncdaemon */
"#154", /* 154 = nosys */
"#155", /* 155 = nfssvc */
- "getdirentries", /* 156 = getdirentries */
+ "obs_ogetdirentries", /* 156 = obsolete ogetdirentries */
"freebsd32_statfs", /* 157 = freebsd32_statfs */
"freebsd32_fstatfs", /* 158 = freebsd32_fstatfs */
"#159", /* 159 = nosys */
@@ -444,4 +444,8 @@
"_umtx_lock", /* 434 = _umtx_lock */
"_umtx_unlock", /* 435 = _umtx_unlock */
"jail_attach", /* 436 = jail_attach */
+ "#437", /* 437 = extattr_list_fd */
+ "#438", /* 438 = extattr_list_file */
+ "#439", /* 439 = extattr_list_link */
+ "#440", /* 440 = kse_switchin */
};
==== //depot/projects/netperf/sys/compat/freebsd32/freebsd32_sysent.c#3 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.15 2003/11/08 07:31:49 peter Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.26 2003/11/08 07:31:30 peter Exp
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.17 2003/12/11 02:36:37 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.29 2003/12/11 02:36:07 peter Exp
*/
#include "opt_compat.h"
@@ -77,7 +77,7 @@
{ SYF_MPSAFE | AS(getlogin_args), (sy_call_t *)getlogin }, /* 49 = getlogin */
{ SYF_MPSAFE | AS(setlogin_args), (sy_call_t *)setlogin }, /* 50 = setlogin */
{ SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct }, /* 51 = acct */
- { SYF_MPSAFE | 0, (sy_call_t *)sigpending }, /* 52 = sigpending */
+ { 0, (sy_call_t *)nosys }, /* 52 = obsolete osigpending */
{ SYF_MPSAFE | AS(freebsd32_sigaltstack_args), (sy_call_t *)freebsd32_sigaltstack }, /* 53 = freebsd32_sigaltstack */
{ SYF_MPSAFE | AS(ioctl_args), (sy_call_t *)ioctl }, /* 54 = ioctl */
{ SYF_MPSAFE | AS(reboot_args), (sy_call_t *)reboot }, /* 55 = reboot */
@@ -124,7 +124,7 @@
{ SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority }, /* 96 = setpriority */
{ SYF_MPSAFE | AS(socket_args), (sy_call_t *)socket }, /* 97 = socket */
{ SYF_MPSAFE | AS(connect_args), (sy_call_t *)connect }, /* 98 = connect */
- { SYF_MPSAFE | AS(accept_args), (sy_call_t *)accept }, /* 99 = accept */
+ { 0, (sy_call_t *)nosys }, /* 99 = obsolete oaccept */
{ SYF_MPSAFE | AS(getpriority_args), (sy_call_t *)getpriority }, /* 100 = getpriority */
{ 0, (sy_call_t *)nosys }, /* 101 = obsolete osend */
{ 0, (sy_call_t *)nosys }, /* 102 = obsolete orecv */
@@ -141,7 +141,7 @@
{ 0, (sy_call_t *)nosys }, /* 113 = obsolete orecvmsg */
{ 0, (sy_call_t *)nosys }, /* 114 = obsolete osendmsg */
{ 0, (sy_call_t *)nosys }, /* 115 = obsolete vtrace */
- { AS(freebsd32_gettimeofday_args), (sy_call_t *)freebsd32_gettimeofday }, /* 116 = freebsd32_gettimeofday */
+ { SYF_MPSAFE | AS(freebsd32_gettimeofday_args), (sy_call_t *)freebsd32_gettimeofday }, /* 116 = freebsd32_gettimeofday */
{ AS(freebsd32_getrusage_args), (sy_call_t *)freebsd32_getrusage }, /* 117 = freebsd32_getrusage */
{ SYF_MPSAFE | AS(getsockopt_args), (sy_call_t *)getsockopt }, /* 118 = getsockopt */
{ 0, (sy_call_t *)nosys }, /* 119 = resuba */
@@ -150,7 +150,7 @@
{ AS(freebsd32_settimeofday_args), (sy_call_t *)freebsd32_settimeofday }, /* 122 = freebsd32_settimeofday */
{ AS(fchown_args), (sy_call_t *)fchown }, /* 123 = fchown */
{ AS(fchmod_args), (sy_call_t *)fchmod }, /* 124 = fchmod */
- { SYF_MPSAFE | AS(recvfrom_args), (sy_call_t *)recvfrom }, /* 125 = recvfrom */
+ { 0, (sy_call_t *)nosys }, /* 125 = obsolete orecvfrom */
{ SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid }, /* 126 = setreuid */
{ SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid }, /* 127 = setregid */
{ AS(rename_args), (sy_call_t *)rename }, /* 128 = rename */
@@ -181,7 +181,7 @@
{ 0, (sy_call_t *)nosys }, /* 153 = asyncdaemon */
{ 0, (sy_call_t *)nosys }, /* 154 = nosys */
{ 0, (sy_call_t *)nosys }, /* 155 = nfssvc */
- { AS(getdirentries_args), (sy_call_t *)getdirentries }, /* 156 = getdirentries */
+ { 0, (sy_call_t *)nosys }, /* 156 = obsolete ogetdirentries */
{ AS(freebsd32_statfs_args), (sy_call_t *)freebsd32_statfs }, /* 157 = freebsd32_statfs */
{ AS(freebsd32_fstatfs_args), (sy_call_t *)freebsd32_fstatfs }, /* 158 = freebsd32_fstatfs */
{ 0, (sy_call_t *)nosys }, /* 159 = nosys */
@@ -462,4 +462,8 @@
{ SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock }, /* 434 = _umtx_lock */
{ SYF_MPSAFE | AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock }, /* 435 = _umtx_unlock */
{ SYF_MPSAFE | AS(jail_attach_args), (sy_call_t *)jail_attach }, /* 436 = jail_attach */
+ { 0, (sy_call_t *)nosys }, /* 437 = extattr_list_fd */
+ { 0, (sy_call_t *)nosys }, /* 438 = extattr_list_file */
+ { 0, (sy_call_t *)nosys }, /* 439 = extattr_list_link */
+ { 0, (sy_call_t *)nosys }, /* 440 = kse_switchin */
};
==== //depot/projects/netperf/sys/compat/freebsd32/syscalls.master#3 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.26 2003/11/08 07:31:30 peter Exp $
+ $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.29 2003/12/11 02:36:07 peter Exp $
; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
; from: src/sys/kern/syscalls.master 1.107
;
@@ -110,7 +110,7 @@
49 MNOPROTO BSD { int getlogin(char *namebuf, u_int namelen); }
50 MNOPROTO BSD { int setlogin(char *namebuf); }
51 MNOPROTO BSD { int acct(char *path); }
-52 MNOPROTO POSIX { int sigpending(void); }
+52 OBSOL POSIX osigpending
53 MSTD BSD { int freebsd32_sigaltstack(struct sigaltstack32 *ss, \
struct sigaltstack32 *oss); }
54 MNOPROTO POSIX { int ioctl(int fd, u_long com, caddr_t data); }
@@ -171,8 +171,7 @@
96 MNOPROTO BSD { int setpriority(int which, int who, int prio); }
97 MNOPROTO BSD { int socket(int domain, int type, int protocol); }
98 MNOPROTO BSD { int connect(int s, caddr_t name, int namelen); }
-99 MNOPROTO BSD { int accept(int s, caddr_t name, int *anamelen); } \
- accept accept_args int
+99 OBSOL BSD oaccept
100 MNOPROTO BSD { int getpriority(int which, int who); }
101 OBSOL BSD osend
102 OBSOL BSD orecv
@@ -190,7 +189,7 @@
113 OBSOL BSD orecvmsg
114 OBSOL BSD osendmsg
115 OBSOL NOHIDE vtrace
-116 STD BSD { int freebsd32_gettimeofday(struct timeval32 *tp, \
+116 MSTD BSD { int freebsd32_gettimeofday(struct timeval32 *tp, \
struct timezone *tzp); }
117 STD BSD { int freebsd32_getrusage(int who, \
struct rusage32 *rusage); }
@@ -205,9 +204,7 @@
struct timezone *tzp); }
123 NOPROTO BSD { int fchown(int fd, int uid, int gid); }
124 NOPROTO BSD { int fchmod(int fd, int mode); }
-125 MNOPROTO BSD { int recvfrom(int s, caddr_t buf, size_t len, \
- int flags, caddr_t from, int *fromlenaddr); } \
- recvfrom recvfrom_args int
+125 OBSOL BSD orecvfrom
126 MNOPROTO BSD { int setreuid(int ruid, int euid); }
127 MNOPROTO BSD { int setregid(int rgid, int egid); }
128 NOPROTO POSIX { int rename(char *from, char *to); }
@@ -249,8 +246,7 @@
154 UNIMPL NOHIDE nosys
; 155 is initialized by the NFS code, if present.
155 UNIMPL NOHIDE nfssvc
-156 NOPROTO BSD { int getdirentries(int fd, char *buf, u_int count, \
- long *basep); }
+156 OBSOL BSD ogetdirentries
157 STD BSD { int freebsd32_statfs(char *path, \
struct statfs32 *buf); }
158 STD BSD { int freebsd32_fstatfs(int fd, struct statfs32 *buf); }
@@ -633,4 +629,7 @@
434 MNOPROTO BSD { int _umtx_lock(struct umtx *umtx); }
435 MNOPROTO BSD { int _umtx_unlock(struct umtx *umtx); }
436 MNOPROTO BSD { int jail_attach(int jid); }
-
+437 UNIMPL BSD extattr_list_fd
+438 UNIMPL BSD extattr_list_file
+439 UNIMPL BSD extattr_list_link
+440 UNIMPL BSD kse_switchin
==== //depot/projects/netperf/sys/compat/ia32/ia32_sysvec.c#5 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.12 2003/11/08 07:43:44 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.14 2003/12/11 01:05:09 peter Exp $");
#include "opt_compat.h"
@@ -66,10 +66,17 @@
#include <compat/freebsd32/freebsd32_util.h>
#include <compat/freebsd32/freebsd32_proto.h>
+#include <compat/freebsd32/freebsd32_syscall.h>
#include <compat/ia32/ia32_signal.h>
+#ifdef __amd64__
#include <machine/psl.h>
#include <machine/segments.h>
#include <machine/specialreg.h>
+#else
+#include <i386/include/psl.h>
+#include <i386/include/segments.h>
+#include <i386/include/specialreg.h>
+#endif
#include <machine/frame.h>
#include <machine/md_var.h>
#include <machine/pcb.h>
@@ -93,7 +100,7 @@
SYSCTL_NODE(_compat, OID_AUTO, ia32, CTLFLAG_RW, 0, "ia32 mode");
struct sysentvec ia32_freebsd_sysvec = {
- SYS_MAXSYSCALL,
+ FREEBSD32_SYS_MAXSYSCALL,
freebsd32_sysent,
0,
0,
@@ -110,7 +117,7 @@
elf32_coredump,
NULL,
MINSIGSTKSZ,
- PAGE_SIZE,
+ IA32_PAGE_SIZE,
0,
FREEBSD32_USRSTACK,
FREEBSD32_USRSTACK,
==== //depot/projects/netperf/sys/compat/ia32/ia32_util.h#3 (text+ko) ====
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/ia32/ia32_util.h,v 1.8 2003/09/25 01:10:23 peter Exp $
+ * $FreeBSD: src/sys/compat/ia32/ia32_util.h,v 1.9 2003/12/11 01:05:09 peter Exp $
*/
#include <vm/vm.h>
@@ -37,8 +37,13 @@
#include <sys/sysent.h>
#include <sys/cdefs.h>
-#define FREEBSD32_USRSTACK ((1ul << 32) - PAGE_SIZE)
+#ifdef __ia64__
+#define FREEBSD32_USRSTACK ((1ul << 32) - IA32_PAGE_SIZE * 2)
+#else
+#define FREEBSD32_USRSTACK ((1ul << 32) - IA32_PAGE_SIZE)
+#endif
+#define IA32_PAGE_SIZE 4096
#define IA32_MAXDSIZ (512*1024*1024) /* 512MB */
#define IA32_MAXSSIZ (64*1024*1024) /* 64MB */
#define IA32_MAXVMEM 0 /* Unlimited */
==== //depot/projects/netperf/sys/conf/files.amd64#8 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.amd64,v 1.26 2003/11/17 08:58:16 peter Exp $
+# $FreeBSD: src/sys/conf/files.amd64,v 1.27 2003/12/11 01:09:51 peter Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -116,10 +116,10 @@
#
amd64/ia32/ia32_exception.S optional ia32
amd64/ia32/ia32_signal.c optional ia32
+amd64/ia32/ia32_sigtramp.S optional ia32
amd64/ia32/ia32_syscall.c optional ia32
compat/freebsd32/freebsd32_misc.c optional ia32
compat/freebsd32/freebsd32_syscalls.c optional ia32
compat/freebsd32/freebsd32_sysent.c optional ia32
-compat/ia32/ia32_sigtramp.S optional ia32
compat/ia32/ia32_sysvec.c optional ia32
kern/imgact_elf32.c optional ia32
==== //depot/projects/netperf/sys/conf/files.i386#9 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.i386,v 1.459 2003/12/07 04:18:51 imp Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.460 2003/12/11 22:34:36 wpaul Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -74,6 +74,11 @@
compat/linux/linux_sysctl.c optional compat_linux
compat/linux/linux_uid16.c optional compat_linux
compat/linux/linux_util.c optional compat_linux
+compat/ndis/kern_ndis.c optional ndisapi pci pccard
+compat/ndis/subr_hal.c optional ndisapi pci pccard
+compat/ndis/subr_ndis.c optional ndisapi pci pccard
+compat/ndis/subr_ntoskrnl.c optional ndisapi pci pccard
+compat/ndis/subr_pe.c optional ndisapi pci pccard
compat/pecoff/imgact_pecoff.c optional pecoff_support
compat/svr4/imgact_svr4.c optional compat_svr4
compat/svr4/svr4_fcntl.c optional compat_svr4
@@ -127,6 +132,7 @@
dev/fb/splash.c optional splash
dev/fb/vga.c optional vga
dev/fe/if_fe_isa.c optional fe isa
+dev/if_ndis/if_ndis.c optional ndis pci pccard
dev/kbd/atkbd.c optional atkbd
dev/kbd/atkbdc.c optional atkbdc
dev/kbd/kbd.c optional atkbd
==== //depot/projects/netperf/sys/conf/files.ia64#9 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.ia64,v 1.61 2003/10/24 06:48:41 marcel Exp $
+# $FreeBSD: src/sys/conf/files.ia64,v 1.63 2003/12/11 01:05:09 peter Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -28,6 +28,10 @@
no-obj no-implicit-rule before-depend \
clean "ukbdmap.h"
#
+compat/freebsd32/freebsd32_misc.c optional ia32
+compat/freebsd32/freebsd32_syscalls.c optional ia32
+compat/freebsd32/freebsd32_sysent.c optional ia32
+compat/ia32/ia32_sysvec.c optional ia32
contrib/ia64/libuwx/src/uwx_bstream.c standard
contrib/ia64/libuwx/src/uwx_context.c standard
contrib/ia64/libuwx/src/uwx_env.c standard
@@ -83,9 +87,8 @@
ia64/disasm/disasm_decode.c standard
ia64/disasm/disasm_extract.c standard
ia64/disasm/disasm_format.c standard
-ia64/ia32/ia32_misc.c optional ia32
-ia64/ia32/ia32_sysent.c optional ia32
-ia64/ia32/ia32_sysvec.c optional ia32
+ia64/ia32/ia32_signal.c optional ia32
+ia64/ia32/ia32_sigtramp.c optional ia32
ia64/ia64/autoconf.c standard
ia64/ia64/busdma_machdep.c standard
ia64/ia64/clock.c standard
@@ -135,7 +138,6 @@
isa/vga_isa.c optional vga
kern/imgact_elf32.c optional ia32
libkern/bcmp.c standard
-libkern/ffs.c standard
libkern/ia64/__divdi3.S standard
libkern/ia64/__divsi3.S standard
libkern/ia64/__moddi3.S standard
==== //depot/projects/netperf/sys/dev/ata/ata-lowlevel.c#13 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.24 2003/12/03 15:32:53 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.25 2003/12/10 23:06:24 sos Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -606,10 +606,14 @@
if (mask == 0x02) /* wait for slave only */
if (!(stat1 & ATA_S_BUSY) || (stat1 == 0xff && timeout > 20))
break;
- if (mask == 0x03) /* wait for both master & slave */
- if ((!(stat0 & ATA_S_BUSY) || (stat0 == 0xff && timeout > 20)) &&
- (!(stat1 & ATA_S_BUSY) || (stat1 == 0xff && timeout > 20)))
+ if (mask == 0x03) { /* wait for both master & slave */
+ if (!(stat0 & ATA_S_BUSY) && !(stat1 & ATA_S_BUSY))
break;
+ if (stat0 == 0xff && timeout > 20)
+ mask &= ~0x01;
+ if (stat1 == 0xff && timeout > 20)
+ mask &= ~0x02;
+ }
DELAY(100000);
}
==== //depot/projects/netperf/sys/dev/firewire/sbp.h#3 (text+ko) ====
@@ -31,7 +31,7 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/firewire/sbp.h,v 1.2 2003/11/12 03:29:57 simokawa Exp $
+ * $FreeBSD: src/sys/dev/firewire/sbp.h,v 1.3 2003/12/11 03:42:40 simokawa Exp $
*
*/
@@ -125,6 +125,7 @@
/* 6: Maximum payload too small */
/* 7: Reserved for future standardization */
/* 8: Resource unavailabe */
+#define STATUS_RES_UNAVAIL 8
/* 9: Function Rejected */
/* 10: Login ID not recognized */
/* 11: Dummy ORB completed */
==== //depot/projects/netperf/sys/dev/firewire/sbp_targ.c#3 (text+ko) ====
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/firewire/sbp_targ.c,v 1.2 2003/11/12 04:06:21 simokawa Exp $
+ * $FreeBSD: src/sys/dev/firewire/sbp_targ.c,v 1.3 2003/12/11 03:42:40 simokawa Exp $
*/
#include <sys/param.h>
@@ -62,14 +62,17 @@
#include <cam/cam_periph.h>
#include <cam/scsi/scsi_all.h>
-#define SBP_TARG_RECV_LEN (8)
-#define MAX_LUN 63
+#define SBP_TARG_RECV_LEN 8
+#define MAX_INITIATORS 8
+#define MAX_LUN 63
+#define MAX_LOGINS 63
+#define MAX_NODES 63
/*
* management/command block agent registers
*
* BASE 0xffff f001 0000 management port
- * BASE 0xffff f001 0020 command port for lun0
- * BASE 0xffff f001 0040 command port for lun1
+ * BASE 0xffff f001 0020 command port for login id 0
+ * BASE 0xffff f001 0040 command port for login id 1
*
*/
#define SBP_TARG_MGM 0x10000 /* offset from 0xffff f000 000 */
@@ -78,13 +81,19 @@
#define SBP_TARG_BIND_START (((u_int64_t)SBP_TARG_BIND_HI << 32) | \
SBP_TARG_BIND_LO(-1))
#define SBP_TARG_BIND_END (((u_int64_t)SBP_TARG_BIND_HI << 32) | \
- SBP_TARG_BIND_LO(MAX_LUN))
-#define SBP_TARG_LUN(lo) (((lo) - SBP_TARG_BIND_LO(0))/0x20)
+ SBP_TARG_BIND_LO(MAX_LOGINS))
+#define SBP_TARG_LOGIN_ID(lo) (((lo) - SBP_TARG_BIND_LO(0))/0x20)
#define FETCH_MGM 0
#define FETCH_CMD 1
#define FETCH_POINTER 2
+#define F_LINK_ACTIVE (1 << 0)
+#define F_ATIO_STARVED (1 << 1)
+#define F_LOGIN (1 << 2)
+#define F_HOLD (1 << 3)
+#define F_FREEZED (1 << 4)
+
MALLOC_DEFINE(M_SBP_TARG, "sbp_targ", "SBP-II/FireWire target mode");
static int debug = 0;
@@ -92,36 +101,44 @@
SYSCTL_INT(_debug, OID_AUTO, sbp_targ_debug, CTLFLAG_RW, &debug, 0,
"SBP target mode debug flag");
+struct sbp_targ_login {
+ struct sbp_targ_lstate *lstate;
+ struct fw_device *fwdev;
+ struct sbp_login_res loginres;
+ u_int32_t flags;
+ u_int16_t fifo_hi;
+ u_int16_t last_hi;
+ u_int32_t fifo_lo;
+ u_int32_t last_lo;
+ STAILQ_HEAD(, orb_info) orbs;
+ u_int16_t id;
+ STAILQ_ENTRY(sbp_targ_login) link;
+ int hold_sec;
+ struct callout hold_callout;
+};
+
+struct sbp_targ_lstate {
+ u_int16_t lun;
+ struct sbp_targ_softc *sc;
+ struct cam_path *path;
+ struct ccb_hdr_slist accept_tios;
+ struct ccb_hdr_slist immed_notifies;
+ struct crom_chunk model;
+ u_int32_t flags;
+ STAILQ_HEAD(, sbp_targ_login) logins;
+};
+
struct sbp_targ_softc {
struct firewire_dev_comm fd;
struct cam_sim *sim;
struct cam_path *path;
struct fw_bind fwb;
int ndevs;
+ int flags;
struct crom_chunk unit;
struct sbp_targ_lstate *lstate[MAX_LUN];
struct sbp_targ_lstate *black_hole;
-};
-
-struct sbp_targ_lstate {
- struct sbp_targ_softc *sc;
- struct cam_path *path;
- struct ccb_hdr_slist accept_tios;
- struct ccb_hdr_slist immed_notifies;
- struct crom_chunk model;
- /* XXX per initiater data */
- struct fw_device *fwdev;
- struct sbp_login_res loginres;
- u_int32_t flags;
-#define LINK_ACTIVE 1
-#define ATIO_STARVED 2
- u_int16_t fifo_hi;
- u_int16_t last_hi;
- u_int32_t fifo_lo;
- u_int32_t last_lo;
- STAILQ_HEAD(, orb_info) orbs;
- u_int16_t login_id;
- u_int16_t lun;
+ struct sbp_targ_login *logins[MAX_LOGINS];
};
struct corb4 {
@@ -167,7 +184,7 @@
struct orb_info {
struct sbp_targ_softc *sc;
struct fw_device *fwdev;
- struct sbp_targ_lstate *lstate;
+ struct sbp_targ_login *login;
union ccb *ccb;
struct ccb_accept_tio *atio;
u_int8_t state;
@@ -196,7 +213,7 @@
static void sbp_targ_recv(struct fw_xfer *);
static void sbp_targ_fetch_orb(struct sbp_targ_softc *, struct fw_device *,
- u_int16_t, u_int32_t, struct sbp_targ_lstate *, int);
+ u_int16_t, u_int32_t, struct sbp_targ_login *, int);
static void
sbp_targ_identify(driver_t *driver, device_t parent)
@@ -218,6 +235,42 @@
return (0);
}
+
+static void
+sbp_targ_dealloc_login(struct sbp_targ_login *login)
+{
+ struct orb_info *orbi, *next;
+
+ if (login == NULL) {
+ printf("%s: login = NULL\n", __FUNCTION__);
+ return;
+ }
+ for (orbi = STAILQ_FIRST(&login->orbs); orbi != NULL; orbi = next) {
+ next = STAILQ_NEXT(orbi, link);
+ free(orbi, M_SBP_TARG);
+ }
+ callout_stop(&login->hold_callout);
+
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list