Subversion Repositories HelenOS

Compare Revisions

Regard whitespace Rev 4218 → Rev 4217

/trunk/kernel/generic/src/console/console.c
50,7 → 50,6
#include <atomic.h>
#include <syscall/copy.h>
#include <errno.h>
#include <string.h>
 
#define KLOG_SIZE PAGE_SIZE
#define KLOG_LATENCY 8
155,7 → 154,7
* @return Character read.
*
*/
wchar_t _getc(indev_t *indev)
uint8_t _getc(indev_t *indev)
{
if (atomic_get(&haltstate)) {
/* If we are here, we are hopefully on the processor that
179,7 → 178,7
waitq_sleep(&indev->wq);
ipl_t ipl = interrupts_disable();
spinlock_lock(&indev->lock);
wchar_t ch = indev->buffer[(indev->index - indev->counter) % INDEV_BUFLEN];
uint8_t ch = indev->buffer[(indev->index - indev->counter) % INDEV_BUFLEN];
indev->counter--;
spinlock_unlock(&indev->lock);
interrupts_restore(ipl);
193,7 → 192,7
* of newline character.
*
* @param indev Input character device.
* @param buf Buffer where to store string terminated by NULL.
* @param buf Buffer where to store string terminated by '\0'.
* @param buflen Size of the buffer.
*
* @return Number of characters read.
201,38 → 200,36
*/
count_t gets(indev_t *indev, char *buf, size_t buflen)
{
size_t offset = 0;
count_t count = 0;
buf[offset] = 0;
index_t index = 0;
wchar_t ch;
while ((ch = _getc(indev)) != '\n') {
while (index < buflen) {
char ch = _getc(indev);
if (ch == '\b') {
if (count > 0) {
/* Space, backspace, space */
if (index > 0) {
index--;
/* Space backspace, space */
putchar('\b');
putchar(' ');
putchar('\b');
count--;
offset = str_lsize(buf, count);
buf[offset] = 0;
}
continue;
}
if (chr_encode(ch, buf, &offset, buflen - 1) == EOK) {
putchar(ch);
count++;
buf[offset] = 0;
if (ch == '\n') { /* end of string => write 0, return */
buf[index] = '\0';
return (count_t) index;
}
buf[index++] = ch;
}
return count;
return (count_t) index;
}
 
/** Get character from input device & echo it to screen */
wchar_t getc(indev_t *indev)
uint8_t getc(indev_t *indev)
{
wchar_t ch = _getc(indev);
uint8_t ch = _getc(indev);
putchar(ch);
return ch;
}
298,25 → 295,25
* Print to kernel log.
*
*/
unative_t sys_klog(int fd, const void *buf, size_t size)
unative_t sys_klog(int fd, const void * buf, size_t count)
{
char *data;
int rc;
if (size > PAGE_SIZE)
if (count > PAGE_SIZE)
return ELIMIT;
if (size > 0) {
data = (char *) malloc(size + 1, 0);
if (count > 0) {
data = (char *) malloc(count + 1, 0);
if (!data)
return ENOMEM;
rc = copy_from_uspace(data, buf, size);
rc = copy_from_uspace(data, buf, count);
if (rc) {
free(data);
return rc;
}
data[size] = 0;
data[count] = 0;
printf("%s", data);
free(data);
323,7 → 320,7
} else
klog_update();
return size;
return count;
}
 
/** @}