Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Oct 2000 10:58:31 -0700
From:      Lee Ann Goldstein <lgoldste@leeann.snedmail.com>
To:        stable@FreeBSD.ORG
Cc:        Roman Shterenzon <roman@harmonic.co.il>, lgoldste@leeann.snedmail.com
Subject:   Re: A new file for the base system? 
Message-ID:  <200010031758.KAA18121@leeann.snedmail.com>
In-Reply-To: Your message of Tue, 03 Oct 2000 18:01:50 %2B0300. <Pine.LNX.4.10.10010031800090.11599-100000@shark.harmonic.co.il> 

next in thread | previous in thread | raw e-mail | index | archive | help

--Your message was: (from Roman Shterenzon)
> 
> 1) Better use /var/run/dmesg.boot since message buffer may get filled with
> other stuff.

Unless something's changed in 4.1.1-S or 5.0-C, that's not really a
problem. dmesg does not take its input from /var/log/messages. This
is not necessarily true about dmesg in other *NIXes.

> 2) Since perl is a part of a system now, perhaps it'll be prettier to use
> perl for that task.

*shrug* I speak awk better than I speak perl. Like any other even
mildly interesting problem, there are at least half a dozen ways
to solve this.

I've been working with Stijn Hoop <stijn@win.tue.nl>, who identified
a locale problem with awk/gawk. This is reproduceable- with LANG set
to en_US.ISO_8859-1, awk will not match the expression (<[[:print:]]+>),
so a line like

pci1: <ATI Mach64-GB graphics accelerator> at 0.0 irq 9

does not get turned into

pci1	irq  9 pci1.0.0 <ATI Mach64-GB graphics accelerator>

When LANG is not set, the expression matches as expected. I have no
idea if this is a problem with gawk in general, or with the FreeBSD
build of it. I note that I can successfully grep for both "<" and ">"
regardless of how LANG is set, though this may be a red herring.

I'm giving up on the regex problem, and will just unset LANG in my
wrapper script. (bleh. nasty hack) I also found and fixed another
regex problem, so here's my final form of both scripts.

Lee Ann

find_irq.sh
-----------
#!/bin/sh

LANG=;export LANG
dmesg | \
./find_irq.awk | \
sort -n +2 -3
-----end sh script-----

find_irq.awk
------------
#!/usr/bin/awk -f

! /irq\>/ {next}

/at device/ && /on pci/ {irqinfo = gensub(/(^[a-z0-9]+[: ]).*(irq [0-9]+).*\<([0-9]+\.[0-9]+)\> on (pci[0-9]+)/, "\\1	\\2 \\4.\\3", 1)
	 sub(/:/, "", irqinfo)
	 sub(/ [0-9] /, " &", irqinfo)
	 print irqinfo
	 next
	}

/on pci/ {irqinfo = gensub(/(^[a-z0-9]+[: ]).*(irq [0-9]+).*(pci[0-9]+\.[0-9]+\.[0-9]+)/, "\\1	\\2 \\3", 1)
	 sub(/:/, "", irqinfo)
	 sub(/ [0-9] /, " &", irqinfo)
	 print irqinfo
	 next
	}

/^pci[0-9]+/ {irqinfo = gensub(/(^[a-z0-9]+[: ]).*(<[[:print:]]+>).*\<([0-9]+\.[0-9]+)\> (irq [0-9]+)/,"\\1	\\4 \\1.\\3 \\2", 1)
	 gsub(/:/, "", irqinfo)
	 sub(/ [0-9] /, " &", irqinfo)
	 print irqinfo
	 next
	}

	{irqinfo = gensub(/(^[a-z0-9]+[: ]).*(irq [0-9]+).*/, "\\1	\\2", 1)
	 sub(/:/, "", irqinfo)
	 sub(/ [0-9]$/, " &", irqinfo)
	 print irqinfo
	 next
	}
-----end awk script-----

--
Lee Ann Goldstein
		Caffeine is *not* a substitute for sleep.
lgoldste@leeann.snedmail.com	lgoldste@lafn.org	leeann@rand.org


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010031758.KAA18121>