From owner-freebsd-current Sat Apr 26 09:31:40 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id JAA27546 for current-outgoing; Sat, 26 Apr 1997 09:31:40 -0700 (PDT) Received: from mexico.brainstorm.eu.org (root@mexico.brainstorm.fr [193.56.58.253]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id JAA27536; Sat, 26 Apr 1997 09:31:22 -0700 (PDT) Received: from brasil.brainstorm.eu.org (brasil.brainstorm.fr [193.56.58.33]) by mexico.brainstorm.eu.org (8.8.4/8.8.4) with ESMTP id SAA01127; Sat, 26 Apr 1997 18:31:17 +0200 Received: (from uucp@localhost) by brasil.brainstorm.eu.org (8.8.4/8.6.12) with UUCP id SAA01115; Sat, 26 Apr 1997 18:31:07 +0200 Received: (from roberto@localhost) by keltia.freenix.fr (8.8.5/keltia-uucp-2.9) id SAA00537; Sat, 26 Apr 1997 18:25:47 +0200 (CEST) Message-ID: <19970426182547.39184@keltia.freenix.fr> Date: Sat, 26 Apr 1997 18:25:47 +0200 From: Ollivier Robert To: "FreeBSD Current Users' list" , se@freebsd.org Subject: Size mismatch between kernel and ncrcontrol Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.67 X-Operating-System: FreeBSD 3.0-CURRENT ctm#3245 Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I get struct size mismatch between ncrcontrol and a freshly compiled kernel (obviously this leads to ncrcontrol being unusable). I don't understand why... After several kernel/ncrcontrol recompiles, the problem persists. ncrcontrol think ncr_version (generated in /sys/pci/ncr.c with various sizes) is 26402 and the kernel has 27186 ! Within /sys/pci/ncr.c: #define NCR_VERSION (2) static const u_long ncr_version = NCR_VERSION * 11 + (u_long) sizeof (struct ncb) * 7 + (u_long) sizeof (struct ccb) * 5 + (u_long) sizeof (struct lcb) * 3 + (u_long) sizeof (struct tcb) * 2; A test with ncrcontrol leads to: sizeof ncb=3356 sizeof ccb=500 sizeof lcb=36 sizeof tcb=140 2*11 + 7*3356 + 5*500 + 3*36 + 2*140 = 26402. Why the kernel is thinking ncr_version is 27186 ?!? I've checked with DDB. Which structure(s) gets a different size ? Here are the relevant part of /etc/make.conf: COPTFLAGS= -O -pipe CFLAGS= -O -pipe Here is my kernel config. file # # NKELTIA -- the new Keltia with P133, 64 MB & 2x NCR # machine "i386" cpu "I486_CPU" cpu "I586_CPU" ident "NKELTIA" maxusers 20 options INET #InterNETworking options FFS #Berkeley Fast Filesystem options MFS #Berkeley Fast Filesystem options PROCFS #Berkeley proc Filesystem options "COMPAT_43" #Compatible with BSD 4.3 options UCONSOLE #for xconsole # options "SCSI_NCR_DFLT_TAGS=8" options SYSVSHM options SYSVSEM options SYSVMSG options "SHMMAXPGS=1024" # 4096 KB of sharable memory # options "SCSI_2_DEF" # options "CLK_USE_I586_CALIBRATION" # # Enable the kernel debugger. # options DDB options KTRACE config kernel root on sd0 swap on sd0 and sd1 and sd2 dumps on sd0 controller isa0 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 controller pci0 controller ncr0 controller ncr1 controller scbus0 at ncr0 controller scbus1 at ncr1 # NCR0: ibm + tandberg + hp disk sd0 at scbus0 target 0 unit 0 disk sd1 at scbus0 target 1 disk sd2 at scbus0 target 2 disk sd3 at scbus0 target 3 tape st1 at scbus0 target 4 tape st0 at scbus0 target 5 device cd0 at scbus0 target 6 # NCR1: conner + micropolis + cd disk sd10 at scbus1 target 0 disk sd11 at scbus1 target 1 disk sd12 at scbus1 target 2 disk sd13 at scbus1 target 3 device cd1 at scbus1 target 6 # new sound config. controller snd0 device sb0 at isa? port 0x220 irq 5 drq 3 vector sbintr device opl0 at isa? port 0x388 device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr device npx0 at isa? port "IO_NPX" irq 13 vector npxintr device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device lpt0 at isa? port? tty irq 7 vector lptintr device fxp0 device ed0 at isa? port 0x300 net irq 10 iomem 0xd0000 vector edintr pseudo-device loop pseudo-device ether pseudo-device log pseudo-device ppp 1 pseudo-device bpfilter 4 #Berkeley packet filter pseudo-device pty 64 pseudo-device speaker pseudo-device vn #Vnode driver (turns a file into a device) pseudo-device tun 1 #Enable user-level PPP see ppp(8) pseudo-device snp 3 #Snoop device - to look at pty/vty/etc.. Here are the kernel boot messages: Copyright (c) 1992-1997 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.0-CURRENT #7: Sat Apr 26 17:13:26 CEST 1997 roberto@keltia.freenix.fr:/src/src/sys/compile/NKELTIA CPU: Pentium (167.06-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x52c Stepping=12 Features=0x1bf real memory = 67108864 (65536K bytes) avail memory = 63782912 (62288K bytes) bdevsw_add_generic: adding D_DISK flag for device 15 Probing for devices on PCI bus 0: chip0 rev 3 on pci0:0:0 chip1 rev 1 on pci0:7:0 chip2 rev 0 on pci0:7:1 fxp0 rev 1 int a irq 15 on pci0:9:0 fxp0: Ethernet address 08:00:09:dc:23:7e vga0 rev 1 int a irq 9 on pci0:10:0 ncr0 rev 18 int a irq 12 on pci0:11:0 scbus0 at ncr0 bus 0 sd0 at scbus0 target 0 lun 0 sd0: type 0 fixed SCSI 2 sd0: Direct-Access sd0: 10.0 MB/s (100 ns, offset 8) 2063MB (4226725 512 byte sectors) st1 at scbus0 target 4 lun 0 st1: type 1 removable SCSI 2 st1: Sequential-Access density code 0x0, drive empty st0 at scbus0 target 5 lun 0 st0: type 1 removable SCSI 2 st0: Sequential-Access st0: 5.0 MB/s (200 ns, offset 8) density code 0x13, drive empty ncr1 rev 18 int a irq 11 on pci0:12:0 scbus1 at ncr1 bus 0 sd11 at scbus1 target 1 lun 0 sd11: type 0 fixed SCSI 2 sd11: Direct-Access sd11: 10.0 MB/s (100 ns, offset 8) 642MB (1316751 512 byte sectors) scbus1 target 2 lun 0: phase change 2-3 10@00337b58 resid=4. sd12 at scbus1 target 2 lun 0 sd12: type 0 fixed SCSI 2 sd12: Direct-Access sd12: 10.0 MB/s (100 ns, offset 8) 1030MB (2110812 512 byte sectors) cd1 at scbus1 target 6 lun 0 cd1: type 5 removable SCSI 2 cd1: CD-ROM cd1: asynchronous. cd1: M_REJECT sent for 1-3-1-76-8. can't get the size Probing for devices on the ISA bus: sc0 at 0x60-0x6f irq 1 on motherboard sc0: VGA color <16 virtual consoles, flags=0x0> ed0 at 0x300-0x31f irq 10 maddr 0xd0000 msize 16384 on isa ed0: address 00:00:c0:7c:66:48, type WD8013EPC (16 bit) sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: NEC 72065B fd0: 1.44MB 3.5in sb0 at 0x220-0x22f irq 5 drq 3 on isa sb0: opl0 at 0x388-0x38b on isa opl0: npx0 on motherboard npx0: INT 16 interface -- Ollivier ROBERT -=- FreeBSD: There are no limits -=- roberto@keltia.freenix.fr FreeBSD keltia.freenix.fr 3.0-CURRENT #7: Sat Apr 26 17:13:26 CEST 1997