I'm trying to set up nonblocking writes to /dev/audio from within perl.
It won't let me:

$ cat ft.pl
#!/usr/bin/perl
use warnings;
use strict;
use Fcntl;

my $fh_out;
my $outfile="/dev/audio";
my $flags;

open($fh_out, ">", $outfile) or die("open $outfile: $!");

$flags=fcntl($fh_out, F_GETFL, 0) or die("fcntl GET $outfile: $!");
$flags=fcntl($fh_out, F_SETFL, $flags | O_NONBLOCK) or die("fcntl SET $outfile: 
$!");
$ ./ft.pl
fcntl SET /dev/audio: Inappropriate ioctl for device at ./ft.pl line 13.
$ 


Am I doing something silly here?  Or is there a bug?
I see the same result on i386 and amd64. Same for /dev/sound.
This works on a 5.5 release, but not on later releases or current.

Incidentally, are there perl bindings for the native sound interface
sio_open(3)?

tilo



OpenBSD 5.8 (GENERIC.MP) #1082: Sun Aug  2 22:00:55 MDT 2015
    [email protected]:/usr/src/sys/arch/i386/compile/GENERIC.MP
cpu0: AMD A4-1200 APU with Radeon(TM) HD Graphics ("AuthenticAMD" 686-class, 
1024KB L2 cache) 1 GHz
cpu0: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,NXE,MMXX,FFXSR,PAGE1GB,LONG,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,WDT,TOPEXT,ITSC,BMI1
real mem  = 1547792384 (1476MB)
avail mem = 1504370688 (1434MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 12/14/12, SMBIOS rev. 2.7 @ 0xec390 (45 entries)
bios0: vendor American Megatrends Inc. version "X102BA.209" date 08/15/2013
bios0: ASUSTeK COMPUTER INC. X102BA
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP APIC FPDT ECDT MCFG HPET SSDT SSDT CRAT SSDT SSDT SSDT 
SSDT MSDM
acpi0: wakeup devices LOM_(S4) SBAZ(S4) OHC1(S4) EHC1(S4) OHC2(S4) EHC2(S4) 
OHC3(S4) EHC3(S4) SLPB(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD A4-1200 APU with Radeon(TM) HD Graphics ("AuthenticAMD" 686-class, 
1024KB L2 cache) 1 GHz
cpu1: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,NXE,MMXX,FFXSR,PAGE1GB,LONG,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,WDT,TOPEXT,ITSC,BMI1
ioapic0 at mainbus0: apid 3 pa 0xfec00000, version 21, 24 pins
ioapic1 at mainbus0: apid 4 pa 0xfec01000, version 21, 32 pins
acpiec0 at acpi0
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255
acpihpet0 at acpi0: 14318180 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (GPP0)
acpiprt2 at acpi0: bus 2 (GPP1)
acpicpu0 at acpi0: !C2(0@400 io@0x414), C1(@1 halt!), PSS
acpicpu1 at acpi0: !C2(0@400 io@0x414), C1(@1 halt!), PSS
acpitz0 at acpi0: critical temperature is 103 degC
acpiac0 at acpi0: AC unit online
acpibat0 at acpi0: BAT0 model "X102-30" serial   type LIon oem "ASUSTek"
acpibtn0 at acpi0: PWRB
acpibtn1 at acpi0: LID_
acpibtn2 at acpi0: SLPB
acpivideo0 at acpi0: VGA_
bios0: ROM list: 0xc0000/0xea00
cpu0: 999 MHz: speeds: 1000 900 800 700 600 MHz
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "AMD AMD64 16h Host" rev 0x00
vga1 at pci0 dev 1 function 0 vendor "ATI", unknown product 0x9839 rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
azalia0 at pci0 dev 1 function 1 vendor "ATI", unknown product 0x9840 rev 0x00: 
msi
azalia0: no supported codecs
pchb1 at pci0 dev 2 function 0 vendor "AMD", unknown product 0x1538 rev 0x00
ppb0 at pci0 dev 2 function 2 "AMD AMD64 16h PCIE" rev 0x00: apic 4 int 5
pci1 at ppb0 bus 1
"Atheros AR9485" rev 0x01 at pci1 dev 0 function 0 not configured
ppb1 at pci0 dev 2 function 3 "AMD AMD64 16h PCIE" rev 0x00: apic 4 int 6
pci2 at ppb1 bus 2
re0 at pci2 dev 0 function 0 "Realtek 8101E" rev 0x05: RTL8105E (0x4080), msi, 
address 74:d0:2b:6b:22:d0
rlphy0 at re0 phy 7: RTL8201E 10/100 PHY, rev. 2
xhci0 at pci0 dev 16 function 0 vendor "AMD", unknown product 0x7814 rev 0x01: 
msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA" rev 0x40: msi, AHCI 1.3
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, Samsung SSD 840, EXT0> SCSI3 0/direct fixed 
naa.50025388a00a9dfa
sd0: 114473MB, 512 bytes/sector, 234441648 sectors, thin
ohci0 at pci0 dev 18 function 0 "AMD Hudson-2 USB" rev 0x39: apic 3 int 18, 
version 1.0, legacy support
ehci0 at pci0 dev 18 function 2 "AMD Hudson-2 USB2" rev 0x39: apic 3 int 17
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 "AMD EHCI root hub" rev 2.00/1.00 addr 1
ohci1 at pci0 dev 19 function 0 "AMD Hudson-2 USB" rev 0x39: apic 3 int 18, 
version 1.0, legacy support
ehci1 at pci0 dev 19 function 2 "AMD Hudson-2 USB2" rev 0x39: apic 3 int 17
usb2 at ehci1: USB revision 2.0
uhub2 at usb2 "AMD EHCI root hub" rev 2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x3a: polling
iic0 at piixpm0
piixpm0: exec: op 1, addr 0x18, cmdlen 1, len 0, flags 0x08: timeout, status 
0x1<BUSY>
azalia1 at pci0 dev 20 function 2 "AMD Hudson-2 HD Audio" rev 0x02: apic 3 int 
16
azalia1: codecs: Realtek ALC282
audio0 at azalia1
pcib0 at pci0 dev 20 function 3 "AMD Hudson-2 LPC" rev 0x11
sdhc0 at pci0 dev 20 function 7 vendor "AMD", unknown product 0x7813 rev 0x01: 
apic 3 int 16
sdhc0 at 0x10: can't map registers
pchb2 at pci0 dev 24 function 0 "AMD AMD64 16h Link Cfg" rev 0x00
pchb3 at pci0 dev 24 function 1 "AMD AMD64 16h Address Map" rev 0x00
pchb4 at pci0 dev 24 function 2 "AMD AMD64 16h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD AMD64 16h Misc Cfg" rev 0x00
pchb5 at pci0 dev 24 function 4 "AMD AMD64 16h CPU Power" rev 0x00
pchb6 at pci0 dev 24 function 5 vendor "AMD", unknown product 0x1535 rev 0x00
usb3 at ohci0: USB revision 1.0
uhub3 at usb3 "AMD OHCI root hub" rev 1.00/1.00 addr 1
usb4 at ohci1: USB revision 1.0
uhub4 at usb4 "AMD OHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pms0: Elantech Clickpad, version 4, firmware 0x481f01
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
uvideo0 at uhub2 port 3 configuration 1 interface 0 "Chicony Electronics 
Co.,Ltd. USB2.0 HD UVC WebCam" rev 2.00/69.63 addr 2
video0 at uvideo0
uhidev0 at uhub4 port 1 configuration 1 interface 0 "Atmel Atmel maXTouch 
Digitizer" rev 2.00/20.01 addr 2
uhidev0: iclass 3/0, 5 report ids
ums0 at uhidev0 reportid 1: 1 button, tip
wsmouse1 at ums0 mux 0
uhid0 at uhidev0 reportid 2: input=0, output=0, feature=1
uhid1 at uhidev0 reportid 3: input=10, output=0, feature=0
ums1 at uhidev0 reportid 5
ums1: mouse has no X report
uhidev1 at uhub4 port 1 configuration 1 interface 1 "Atmel Atmel maXTouch 
Digitizer" rev 2.00/20.01 addr 2
uhidev1: iclass 3/0, 2 report ids
uhid2 at uhidev1 reportid 1: input=63, output=63, feature=0
uhid3 at uhidev1 reportid 2: input=63, output=63, feature=0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 005> SCSI2 0/direct fixed
sd1: 106273MB, 512 bytes/sector, 217648092 sectors
root on sd1a (1eecc3630a36b1ad.a) swap on sd1b dump on sd1b

Reply via email to