diff options
author | Robert Morris <[email protected]> | 2019-06-03 17:49:27 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-06-03 17:49:27 -0400 |
commit | efecbee7c0c265b0b2fe956f308e1a73cc63eda6 (patch) | |
tree | 8bbb325b0655c486de345a5981acaa569cead885 | |
parent | 6eae1be7550ecdc85269ce57c4a2f2dd0e9297b9 (diff) | |
download | xv6-labs-efecbee7c0c265b0b2fe956f308e1a73cc63eda6.tar.gz xv6-labs-efecbee7c0c265b0b2fe956f308e1a73cc63eda6.tar.bz2 xv6-labs-efecbee7c0c265b0b2fe956f308e1a73cc63eda6.zip |
xx
-rw-r--r-- | defs.h | 1 | ||||
-rw-r--r-- | uart.c | 10 |
2 files changed, 8 insertions, 3 deletions
@@ -174,6 +174,7 @@ void usertrapret(void); void uartinit(void); void uartintr(void); void uartputc(int); +int uartgetc(void); // vm.c void kvminit(void); @@ -49,11 +49,15 @@ uartputc(int c) *R(0) = c; } -uint +int uartgetc(void) { - // XXX this isn't right, must check there's data in the FIFO. - return *R(0); + if(*(5) & 0x01){ + // input data is ready. + return *R(0); + } else { + return -1; + }; } void |