Changeset d681c17 in mainline for uspace/libc/include/stdio.h


Ignore:
Timestamp:
2006-09-05T14:52:11Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5035eeb7
Parents:
2def788
Message:

sparc64 work.

  • the syscall wrapper needs to use the "memory" clobber specifier to prevent over-optimization.
  • on sparc64, the user address space spans the whole 64-bit space and therefore the macro USER_ADDRESS_SPACE_SIZE_ARCH, as it was defined, overflows to 0
  • stop using USER_ADDRESS_SPACE_SIZE_ARCH and define MAX_HEAP_SIZE instead
  • in our situation when kernel and user address spaces are separate, the G (global) bit cannot be used (there is no point in it anymore)
  • add the DEBUG() macro to stdio.h; DEBUG() uses SYS_IO and is a good debugging tool for getting early userspace to work
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/libc/include/stdio.h

    r2def788 rd681c17  
    4141#define EOF (-1)
    4242
     43#include <string.h>
    4344#include <io/stream.h>
     45
     46#define DEBUG(fmt, ...) \
     47{ \
     48        char buf[256]; \
     49        int n; \
     50        n = snprintf(buf, sizeof(buf), fmt, ##__VA_ARGS__); \
     51        if (n > 0) \
     52                (void) __SYSCALL3(SYS_IO, 1, (sysarg_t) buf, strlen(buf)); \
     53}
    4454
    4555extern int getchar(void);
Note: See TracChangeset for help on using the changeset viewer.