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");