@@ -119,18 +119,18 @@ pub struct I8042Device {
119
119
120
120
impl I8042Device {
121
121
/// Constructs an i8042 device that will signal the given event when the guest requests it.
122
- pub fn new ( reset_evt : EventFd , kbd_interrupt_evt : EventFd ) -> I8042Device {
123
- I8042Device {
122
+ pub fn new ( reset_evt : EventFd ) -> Result < I8042Device , std :: io :: Error > {
123
+ Ok ( I8042Device {
124
124
reset_evt,
125
- kbd_interrupt_evt,
125
+ kbd_interrupt_evt : EventFd :: new ( libc :: EFD_NONBLOCK ) ? ,
126
126
control : CB_POST_OK | CB_KBD_INT ,
127
127
cmd : 0 ,
128
128
outp : 0 ,
129
129
status : SB_KBD_ENABLED ,
130
130
buf : [ 0 ; BUF_SIZE ] ,
131
131
bhead : Wrapping ( 0 ) ,
132
132
btail : Wrapping ( 0 ) ,
133
- }
133
+ } )
134
134
}
135
135
136
136
/// Signal a ctrl-alt-del (reset) event.
@@ -355,10 +355,7 @@ mod tests {
355
355
356
356
#[ test]
357
357
fn test_i8042_read_write_and_event ( ) {
358
- let mut i8042 = I8042Device :: new (
359
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
360
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
361
- ) ;
358
+ let mut i8042 = I8042Device :: new ( EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ) . unwrap ( ) ;
362
359
let reset_evt = i8042. reset_evt . try_clone ( ) . unwrap ( ) ;
363
360
364
361
// Check if reading in a 2-length array doesn't have side effects.
@@ -395,10 +392,7 @@ mod tests {
395
392
396
393
#[ test]
397
394
fn test_i8042_commands ( ) {
398
- let mut i8042 = I8042Device :: new (
399
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
400
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
401
- ) ;
395
+ let mut i8042 = I8042Device :: new ( EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ) . unwrap ( ) ;
402
396
let mut data = [ 1 ] ;
403
397
404
398
// Test reading/writing the control register.
@@ -435,10 +429,7 @@ mod tests {
435
429
436
430
#[ test]
437
431
fn test_i8042_buffer ( ) {
438
- let mut i8042 = I8042Device :: new (
439
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
440
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
441
- ) ;
432
+ let mut i8042 = I8042Device :: new ( EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ) . unwrap ( ) ;
442
433
443
434
// Test push/pop.
444
435
i8042. push_byte ( 52 ) . unwrap ( ) ;
@@ -462,10 +453,7 @@ mod tests {
462
453
463
454
#[ test]
464
455
fn test_i8042_kbd ( ) {
465
- let mut i8042 = I8042Device :: new (
466
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
467
- EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ,
468
- ) ;
456
+ let mut i8042 = I8042Device :: new ( EventFd :: new ( libc:: EFD_NONBLOCK ) . unwrap ( ) ) . unwrap ( ) ;
469
457
470
458
fn expect_key ( i8042 : & mut I8042Device , key : u16 ) {
471
459
let mut data = [ 1 ] ;
0 commit comments