equal
deleted
inserted
replaced
|
1 #! /usr/bin/perl -w |
|
2 |
|
3 use strict; |
|
4 use Fcntl; |
|
5 |
|
6 my $DEV = "/dev/me8100_0a"; |
|
7 my $flags; |
|
8 |
|
9 $SIG{IO} = sub { |
|
10 my $val; |
|
11 sysread(DEV, $val, 2); |
|
12 $val = unpack("s", $val); |
|
13 print "Hi, got a signal, read $val\n"; |
|
14 print "<", unpack("b16", pack("N", $val)), ">\n"; |
|
15 }; |
|
16 |
|
17 open(DEV, $DEV) |
|
18 or die "Can't open $DEV: $!\n"; |
|
19 |
|
20 fcntl(DEV, F_SETOWN, $$) or die "Can't set owner: $!\n"; |
|
21 $flags = fcntl(DEV, F_GETFL, 0) or die "Can't get flags: $!\n"; |
|
22 fcntl(DEV, F_SETFL, $flags | O_ASYNC) or die "Can't set flags: $!\n"; |
|
23 |
|
24 while(sleep(1000)) { |
|
25 } |