input 183 console.c } input;
input 192 console.c acquire(&input.lock);
input 199 console.c while(input.e != input.w &&
input 200 console.c input.buf[(input.e-1) % INPUT_BUF] != '\n'){
input 201 console.c input.e--;
input 206 console.c if(input.e != input.w){
input 207 console.c input.e--;
input 212 console.c if(c != 0 && input.e-input.r < INPUT_BUF){
input 214 console.c input.buf[input.e++ % INPUT_BUF] = c;
input 216 console.c if(c == '\n' || c == C('D') || input.e == input.r+INPUT_BUF){
input 217 console.c input.w = input.e;
input 218 console.c wakeup(&input.r);
input 224 console.c release(&input.lock);
input 235 console.c acquire(&input.lock);
input 237 console.c while(input.r == input.w){
input 239 console.c release(&input.lock);
input 243 console.c sleep(&input.r, &input.lock);
input 245 console.c c = input.buf[input.r++ % INPUT_BUF];
input 250 console.c input.r--;
input 259 console.c release(&input.lock);
input 284 console.c initlock(&input.lock, "input");