Rev 3790 | Rev 3852 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3790 | Rev 3844 | ||
---|---|---|---|
Line 293... | Line 293... | ||
293 | /** |
293 | /** |
294 | * SGCN output operation. Prints a single character to the SGCN. If the line |
294 | * SGCN output operation. Prints a single character to the SGCN. If the line |
295 | * feed character is written ('\n'), the carriage return character ('\r') is |
295 | * feed character is written ('\n'), the carriage return character ('\r') is |
296 | * written straight away. |
296 | * written straight away. |
297 | */ |
297 | */ |
298 | static void sgcn_putchar(struct chardev * cd, const char c) |
298 | static void sgcn_putchar(struct chardev * cd, const char c, bool silent) |
299 | { |
299 | { |
- | 300 | if (!silent) { |
|
300 | spinlock_lock(&sgcn_output_lock); |
301 | spinlock_lock(&sgcn_output_lock); |
301 | 302 | ||
302 | sgcn_do_putchar(c); |
303 | sgcn_do_putchar(c); |
303 | if (c == '\n') { |
304 | if (c == '\n') |
304 | sgcn_do_putchar('\r'); |
305 | sgcn_do_putchar('\r'); |
- | 306 | ||
- | 307 | spinlock_unlock(&sgcn_output_lock); |
|
305 | } |
308 | } |
306 | - | ||
307 | spinlock_unlock(&sgcn_output_lock); |
- | |
308 | } |
309 | } |
309 | 310 | ||
310 | /** |
311 | /** |
311 | * Called when actively reading the character. Not implemented yet. |
312 | * Called when actively reading the character. Not implemented yet. |
312 | */ |
313 | */ |