Changeset 0b9ac3c in mainline for uspace/lib/libc/include


Ignore:
Timestamp:
2010-02-23T19:03:28Z (16 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c62d2e1
Parents:
1ccafee (diff), 5e50394 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

Location:
uspace/lib/libc/include
Files:
1 added
15 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/include/async.h

    r1ccafee r0b9ac3c  
    259259}
    260260
     261extern int async_connect_me_to(int, ipcarg_t, ipcarg_t, ipcarg_t);
     262extern int async_connect_me_to_blocking(int, ipcarg_t, ipcarg_t, ipcarg_t);
     263
    261264/*
    262265 * User-friendly wrappers for async_share_in_start().
     
    277280extern int async_share_out_receive(ipc_callid_t *, size_t *, int *);
    278281extern int async_share_out_finalize(ipc_callid_t, void *);
     282
     283/*
     284 * User-friendly wrappers for async_data_read_forward_fast().
     285 */
     286#define async_data_read_forward_0_0(phoneid, method, answer) \
     287        async_data_read_forward_fast((phoneid), (method), 0, 0, 0, 0, NULL)
     288#define async_data_read_forward_0_1(phoneid, method, answer) \
     289        async_data_read_forward_fast((phoneid), (method), 0, 0, 0, 0, (answer))
     290#define async_data_read_forward_1_0(phoneid, method, arg1, answer) \
     291        async_data_read_forward_fast((phoneid), (method), (arg1), 0, 0, 0, NULL)
     292#define async_data_read_forward_1_1(phoneid, method, arg1, answer) \
     293        async_data_read_forward_fast((phoneid), (method), (arg1), 0, 0, 0, (answer))
     294#define async_data_read_forward_2_0(phoneid, method, arg1, arg2, answer) \
     295        async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), 0, 0, NULL)
     296#define async_data_read_forward_2_1(phoneid, method, arg1, arg2, answer) \
     297        async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), 0, 0, \
     298            (answer))
     299#define async_data_read_forward_3_0(phoneid, method, arg1, arg2, arg3, answer) \
     300        async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), 0, \
     301            NULL)
     302#define async_data_read_forward_3_1(phoneid, method, arg1, arg2, arg3, answer) \
     303        async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), 0, \
     304            (answer))
     305#define async_data_read_forward_4_0(phoneid, method, arg1, arg2, arg3, arg4, answer) \
     306        async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), \
     307            (arg4), NULL)
     308#define async_data_read_forward_4_1(phoneid, method, arg1, arg2, arg3, arg4, answer) \
     309        async_data_read_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), \
     310            (arg4), (answer))
     311
    279312extern int async_data_read_start(int, void *, size_t);
    280313extern int async_data_read_receive(ipc_callid_t *, size_t *);
    281314extern int async_data_read_finalize(ipc_callid_t, const void *, size_t);
     315
     316extern int async_data_read_forward_fast(int, ipcarg_t, ipcarg_t, ipcarg_t,
     317    ipcarg_t, ipcarg_t, ipc_call_t *);
     318
     319/*
     320 * User-friendly wrappers for async_data_write_forward_fast().
     321 */
     322#define async_data_write_forward_0_0(phoneid, method, answer) \
     323        async_data_write_forward_fast((phoneid), (method), 0, 0, 0, 0, NULL)
     324#define async_data_write_forward_0_1(phoneid, method, answer) \
     325        async_data_write_forward_fast((phoneid), (method), 0, 0, 0, 0, (answer))
     326#define async_data_write_forward_1_0(phoneid, method, arg1, answer) \
     327        async_data_write_forward_fast((phoneid), (method), (arg1), 0, 0, 0, NULL)
     328#define async_data_write_forward_1_1(phoneid, method, arg1, answer) \
     329        async_data_write_forward_fast((phoneid), (method), (arg1), 0, 0, 0, \
     330            (answer))
     331#define async_data_write_forward_2_0(phoneid, method, arg1, arg2, answer) \
     332        async_data_write_forward_fast((phoneid), (method), (arg1), (arg2), 0, 0, \
     333            NULL)
     334#define async_data_write_forward_2_1(phoneid, method, arg1, arg2, answer) \
     335        async_data_write_forward_fast((phoneid), (method), (arg1), (arg2), 0, 0, \
     336            (answer))
     337#define async_data_write_forward_3_0(phoneid, method, arg1, arg2, arg3, answer) \
     338        async_data_write_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), \
     339            0, NULL)
     340#define async_data_write_forward_3_1(phoneid, method, arg1, arg2, arg3, answer) \
     341        async_data_write_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), \
     342            0, (answer))
     343#define async_data_write_forward_4_0(phoneid, method, arg1, arg2, arg3, arg4, answer) \
     344        async_data_write_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), \
     345            (arg4), NULL)
     346#define async_data_write_forward_4_1(phoneid, method, arg1, arg2, arg3, arg4, answer) \
     347        async_data_write_forward_fast((phoneid), (method), (arg1), (arg2), (arg3), \
     348            (arg4), (answer))
     349
    282350extern int async_data_write_start(int, const void *, size_t);
    283351extern int async_data_write_receive(ipc_callid_t *, size_t *);
    284352extern int async_data_write_finalize(ipc_callid_t, void *, size_t);
    285353
    286 extern int async_data_blob_receive(char **, const size_t, size_t *);
    287 extern int async_data_string_receive(char **, const size_t);
     354extern int async_data_write_accept(void **, const bool, const size_t,
     355    const size_t, const size_t, size_t *);
     356extern void async_data_write_void(const int);
     357
     358extern int async_data_write_forward_fast(int, ipcarg_t, ipcarg_t, ipcarg_t,
     359    ipcarg_t, ipcarg_t, ipc_call_t *);
    288360
    289361#endif
  • uspace/lib/libc/include/atomicdflt.h

    r1ccafee r0b9ac3c  
    3737
    3838#ifndef LIBC_ARCH_ATOMIC_H_
    39 #error This file cannot be included directly, include atomic.h instead.
     39        #error This file cannot be included directly, include atomic.h instead.
    4040#endif
    4141
     42#include <stdint.h>
    4243#include <bool.h>
    4344
    4445typedef struct atomic {
    45         volatile long count;
     46        volatile atomic_count_t count;
    4647} atomic_t;
    4748
    48 static inline void atomic_set(atomic_t *val, long i)
     49static inline void atomic_set(atomic_t *val, atomic_count_t i)
    4950{
    50         val->count = i;
     51        val->count = i;
    5152}
    5253
    53 static inline long atomic_get(atomic_t *val)
     54static inline atomic_count_t atomic_get(atomic_t *val)
    5455{
    55         return val->count;
     56        return val->count;
    5657}
    5758
    58 #ifndef CAS 
    59 static inline bool cas(atomic_t *val, long ov, long nv)
     59#ifndef CAS
     60static inline bool cas(atomic_t *val, atomic_count_t ov, atomic_count_t nv)
    6061{
    6162        return __sync_bool_compare_and_swap(&val->count, ov, nv);
  • uspace/lib/libc/include/fibril.h

    r1ccafee r0b9ac3c  
    4040#include <libarch/tls.h>
    4141
    42 #ifndef context_set
    43 #define context_set(c, _pc, stack, size, ptls) \
     42#define context_set_generic(c, _pc, stack, size, ptls) \
    4443        (c)->pc = (sysarg_t) (_pc); \
    4544        (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \
    4645        (c)->tls = (sysarg_t) (ptls);
    47 #endif /* context_set */
    4846
    49 #define FIBRIL_SERIALIZED       1
    50 #define FIBRIL_WRITER           2
     47#define FIBRIL_SERIALIZED  1
     48#define FIBRIL_WRITER      2
    5149
    5250typedef enum {
     
    5957typedef sysarg_t fid_t;
    6058
    61 struct fibril {
     59typedef struct fibril {
    6260        link_t link;
    6361        context_t ctx;
     
    7068        int retval;
    7169        int flags;
    72 };
    73 typedef struct fibril fibril_t;
     70} fibril_t;
    7471
    7572/** Fibril-local variable specifier */
    7673#define fibril_local __thread
    7774
    78 extern int context_save(context_t *c) __attribute__ ((returns_twice));
    79 extern void context_restore(context_t *c) __attribute__ ((noreturn));
     75extern int context_save(context_t *ctx) __attribute__((returns_twice));
     76extern void context_restore(context_t *ctx) __attribute__((noreturn));
    8077
    8178extern fid_t fibril_create(int (*func)(void *), void *arg);
     
    9087extern void fibril_dec_sercount(void);
    9188
    92 static inline int fibril_yield(void) {
     89static inline int fibril_yield(void)
     90{
    9391        return fibril_switch(FIBRIL_PREEMPT);
    9492}
  • uspace/lib/libc/include/ipc/clipboard.h

    r1ccafee r0b9ac3c  
    4646typedef enum {
    4747        CLIPBOARD_TAG_NONE,
    48         CLIPBOARD_TAG_BLOB
     48        CLIPBOARD_TAG_DATA
    4949} clipboard_tag_t;
    5050
  • uspace/lib/libc/include/ipc/services.h

    r1ccafee r0b9ac3c  
    4747        SERVICE_FHC,
    4848        SERVICE_OBIO,
    49         SERVICE_CLIPBOARD
     49        SERVICE_CLIPBOARD,
     50        SERVICE_NETWORKING,
     51        SERVICE_LO,
     52        SERVICE_DP8390,
     53        SERVICE_ETHERNET,
     54        SERVICE_NILDUMMY,
     55        SERVICE_IP,
     56        SERVICE_ARP,
     57        SERVICE_RARP,
     58        SERVICE_ICMP,
     59        SERVICE_UDP,
     60        SERVICE_TCP,
     61        SERVICE_SOCKET
    5062} services_t;
    5163
  • uspace/lib/libc/include/limits.h

    r1ccafee r0b9ac3c  
    4646
    4747#ifdef __CHAR_UNSIGNED__
    48 # define CHAR_MIN UCHAR_MIN
    49 # define CHAR_MAX UCHAR_MAX
     48        #define CHAR_MIN UCHAR_MIN
     49        #define CHAR_MAX UCHAR_MAX
    5050#else
    51 # define CHAR_MIN SCHAR_MIN
    52 # define CHAR_MAX SCHAR_MAX
     51        #define CHAR_MIN SCHAR_MIN
     52        #define CHAR_MAX SCHAR_MAX
    5353#endif
    5454
     
    5959#define USHRT_MAX MAX_UINT16
    6060
     61/* int */
    6162#define INT_MIN MIN_INT32
    6263#define INT_MAX MAX_INT32
     
    6465#define UINT_MAX MAX_UINT32
    6566
     67/* long long int */
    6668#define LLONG_MIN MIN_INT64
    6769#define LLONG_MAX MAX_INT64
     
    6971#define ULLONG_MAX MAX_UINT64
    7072
     73/* off64_t */
     74#define OFF64_MIN MIN_INT64
     75#define OFF64_MAX MAX_INT64
     76
     77/* aoff64_t */
     78#define AOFF64_MIN MIN_UINT64
     79#define AOFF64_MAX MAX_UINT64
     80
    7181#endif
    7282
  • uspace/lib/libc/include/macros.h

    r1ccafee r0b9ac3c  
    4848#define STRING_ARG(arg)  #arg
    4949
    50 #define LOWER32(arg)  ((arg) & 0xffffffff)
    51 #define UPPER32(arg)  (((arg) >> 32) & 0xffffffff)
     50#define LOWER32(arg)  (((uint64_t) (arg)) & 0xffffffff)
     51#define UPPER32(arg)  (((((uint64_t) arg)) >> 32) & 0xffffffff)
    5252
    5353#define MERGE_LOUP32(lo, up) \
  • uspace/lib/libc/include/stacktrace.h

    r1ccafee r0b9ac3c  
    5757extern void stacktrace_prepare(void);
    5858extern uintptr_t stacktrace_fp_get(void);
    59 extern uintptr_t stacktrace_pc_get();
     59extern uintptr_t stacktrace_pc_get(void);
    6060
    6161#endif
  • uspace/lib/libc/include/stdio.h

    r1ccafee r0b9ac3c  
    4646#define BUFSIZ  4096
    4747
    48 #define DEBUG(fmt, ...) \
     48#define DEBUG(fmt, ...)se\
    4949        { \
    5050                char _buf[256]; \
     
    5656#ifndef SEEK_SET
    5757        #define SEEK_SET  0
     58#endif
     59
     60#ifndef SEEK_CUR
    5861        #define SEEK_CUR  1
     62#endif
     63
     64#ifndef SEEK_END
    5965        #define SEEK_END  2
    6066#endif
     
    135141extern size_t fwrite(const void *, size_t, size_t, FILE *);
    136142
    137 extern int fseek(FILE *, long, int);
     143extern int fseek(FILE *, off64_t, int);
    138144extern void rewind(FILE *);
    139 extern int ftell(FILE *);
     145extern off64_t ftell(FILE *);
    140146extern int feof(FILE *);
    141147
  • uspace/lib/libc/include/sys/mman.h

    r1ccafee r0b9ac3c  
    4141#define MAP_FAILED  ((void *) -1)
    4242
    43 #define MAP_SHARED       (1 << 0)
    44 #define MAP_PRIVATE      (1 << 1)
    45 #define MAP_FIXED        (1 << 2)
    46 #define MAP_ANONYMOUS    (1 << 3)
     43#define MAP_SHARED     (1 << 0)
     44#define MAP_PRIVATE    (1 << 1)
     45#define MAP_FIXED      (1 << 2)
     46#define MAP_ANONYMOUS  (1 << 3)
    4747
    4848#define PROTO_READ   AS_AREA_READ
     
    5050#define PROTO_EXEC   AS_AREA_EXEC
    5151
    52 extern void *mmap(void  *start, size_t length, int prot, int flags, int fd,
    53     off_t offset);
     52extern void *mmap(void *start, size_t length, int prot, int flags, int fd,
     53    aoff64_t offset);
    5454extern int munmap(void *start, size_t length);
    5555
  • uspace/lib/libc/include/sys/stat.h

    r1ccafee r0b9ac3c  
    3131 */
    3232/** @file
    33  */ 
     33 */
    3434
    3535#ifndef LIBC_SYS_STAT_H_
     
    4848        bool is_file;
    4949        bool is_directory;
    50         off_t size;
     50        aoff64_t size;
    5151        dev_handle_t device;
    5252};
  • uspace/lib/libc/include/sys/time.h

    r1ccafee r0b9ac3c  
    3131 */
    3232/** @file
    33  */ 
     33 */
    3434
    3535#ifndef LIBC_SYS_TIME_H_
     
    4444
    4545struct timeval {
    46         time_t         tv_sec;        /* seconds */
    47         suseconds_t    tv_usec;  /* microseconds */
     46        time_t tv_sec;        /* seconds */
     47        suseconds_t tv_usec;  /* microseconds */
    4848};
    4949
    5050struct timezone {
    51         int  tz_minuteswest; /* minutes W of Greenwich */
    52         int  tz_dsttime;     /* type of dst correction */
     51        int tz_minuteswest; /* minutes W of Greenwich */
     52        int tz_dsttime;      /* type of dst correction */
    5353};
    5454
  • uspace/lib/libc/include/sys/typefmt.h

    r1ccafee r0b9ac3c  
    3939#include <inttypes.h>
    4040
    41 /* off_t */
    42 #define PRIdOFF "ld"
    43 #define PRIuOFF "lu"
    44 #define PRIxOFF "lx"
    45 #define PRIXOFF "lX"
    46 
    47 /* bn_t */
    48 #define PRIdBN PRId64
    49 #define PRIuBN PRIu64
    50 #define PRIxBN PRIx64
    51 #define PRIXBN PRIX64
     41/* off64_t */
     42#define PRIdOFF64 PRId64
     43#define PRIuOFF64 PRIu64
     44#define PRIxOFF64 PRIx64
     45#define PRIXOFF64 PRIX64
    5246
    5347/* (s)size_t */
  • uspace/lib/libc/include/sys/types.h

    r1ccafee r0b9ac3c  
    3838#include <libarch/types.h>
    3939
    40 typedef long off_t;
    41 typedef int mode_t;
    42 typedef uint64_t bn_t;  /**< Block number type. */
     40typedef unsigned int mode_t;
    4341
     42/** Relative offset */
     43typedef int64_t off64_t;
     44
     45/** Absolute offset */
     46typedef uint64_t aoff64_t;
     47
     48/** Unicode code point */
    4449typedef int32_t wchar_t;
    4550
  • uspace/lib/libc/include/unistd.h

    r1ccafee r0b9ac3c  
    4747#ifndef SEEK_SET
    4848        #define SEEK_SET  0
     49#endif
     50
     51#ifndef SEEK_CUR
    4952        #define SEEK_CUR  1
     53#endif
     54
     55#ifndef SEEK_END
    5056        #define SEEK_END  2
    5157#endif
     
    5864extern ssize_t read(int, void *, size_t);
    5965
    60 extern off_t lseek(int, off_t, int);
    61 extern int ftruncate(int, off_t);
     66extern off64_t lseek(int, off64_t, int);
     67extern int ftruncate(int, aoff64_t);
    6268
    6369extern int close(int);
     
    6975extern int chdir(const char *);
    7076
    71 extern void _exit(int status) __attribute__ ((noreturn));
    72 extern int usleep(useconds_t uses);
    73 extern unsigned int sleep(unsigned int se);
     77extern void _exit(int) __attribute__((noreturn));
     78extern int usleep(useconds_t);
     79extern unsigned int sleep(unsigned int);
    7480
    7581#endif
Note: See TracChangeset for help on using the changeset viewer.