Changeset d948095 in mainline for uspace/lib/posix/include


Ignore:
Timestamp:
2012-10-05T08:04:52Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b60faf7
Parents:
be1dcc26 (diff), 32b3a12 (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 libposix cleaning (lp:~vojtech-horky/helenos/misc)

Sources and headers were separated into different directories.

There are less includes from HelenOS-specific libc into public headers
of libposix. That way, the POSIX namespace is not polluted with HelenOS
specific functions (that may collide with functions declared by
other applications).

Location:
uspace/lib/posix/include/posix
Files:
2 added
27 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/include/posix/errno.h

    rbe1dcc26 rd948095  
    6666#undef errno
    6767#define errno (*__posix_errno())
    68 
    69 #include "unistd.h"
    7068
    7169extern int *__posix_errno(void);
  • uspace/lib/posix/include/posix/fcntl.h

    rbe1dcc26 rd948095  
    7272#define FD_CLOEXEC         1 /* Close on exec. */
    7373
    74 #undef open
    75 #define open(path, ...) \
    76         ({ \
    77                 int rc = open(path, ##__VA_ARGS__); \
    78                 if (rc < 0) { \
    79                         errno = -rc; \
    80                         rc = -1; \
    81                 } \
    82                 rc; \
    83         })
    84 
     74extern int posix_open(const char *pathname, int flags, ...);
    8575extern int posix_fcntl(int fd, int cmd, ...);
    8676
    8777#ifndef LIBPOSIX_INTERNAL
    8878        #define fcntl posix_fcntl
     79        #define open posix_open
    8980#endif
    9081
  • uspace/lib/posix/include/posix/signal.h

    rbe1dcc26 rd948095  
    3636#define POSIX_SIGNAL_H_
    3737
    38 #include "libc/errno.h"
    3938#include "sys/types.h"
    4039
  • uspace/lib/posix/include/posix/stddef.h

    rbe1dcc26 rd948095  
    3636#define POSIX_STDDEF_H_
    3737
    38 #include "libc/stddef.h"
     38#include "sys/types.h"
    3939
    4040#ifndef NULL
  • uspace/lib/posix/include/posix/stdio.h

    rbe1dcc26 rd948095  
    3939#include "stddef.h"
    4040#include "unistd.h"
    41 #include "libc/stdio.h"
     41#include "libc/io/verify.h"
    4242#include "sys/types.h"
    43 #include "libc/stdarg.h"
     43#include "stdarg.h"
    4444#include "limits.h"
     45
     46/*
     47 * These are the same as in HelenOS libc.
     48 * It would be possible to directly include <stdio.h> but
     49 * it is better not to pollute POSIX namespace with other functions
     50 * defined in that header.
     51 *
     52 * Because libposix is always linked with libc, providing only these
     53 * forward declarations ought to be enough.
     54 */
     55#define EOF (-1)
     56
     57#define BUFSIZ  4096
     58#define SEEK_SET  0
     59#define SEEK_CUR  1
     60#define SEEK_END  2
     61
     62typedef struct _IO_FILE FILE;
     63
     64extern FILE *stdin;
     65extern FILE *stdout;
     66extern FILE *stderr;
     67
     68extern int fgetc(FILE *);
     69extern char *fgets(char *, int, FILE *);
     70
     71extern int getchar(void);
     72extern char *gets(char *, size_t);
     73
     74extern int fputc(wchar_t, FILE *);
     75extern int fputs(const char *, FILE *);
     76
     77extern int putchar(wchar_t);
     78extern int puts(const char *);
     79
     80extern int fprintf(FILE *, const char*, ...) PRINTF_ATTRIBUTE(2, 3);
     81extern int vfprintf(FILE *, const char *, va_list);
     82
     83extern int printf(const char *, ...) PRINTF_ATTRIBUTE(1, 2);
     84extern int vprintf(const char *, va_list);
     85
     86extern int snprintf(char *, size_t , const char *, ...) PRINTF_ATTRIBUTE(3, 4);
     87#ifdef _GNU_SOURCE
     88extern int asprintf(char **, const char *, ...) PRINTF_ATTRIBUTE(2, 3);
     89#endif
     90extern int vsnprintf(char *, size_t, const char *, va_list);
     91
     92extern FILE *fopen(const char *, const char *);
     93extern FILE *fdopen(int, const char *);
     94extern int fclose(FILE *);
     95
     96extern size_t fread(void *, size_t, size_t, FILE *);
     97extern size_t fwrite(const void *, size_t, size_t, FILE *);
     98
     99extern int fseek(FILE *, off64_t, int);
     100extern void rewind(FILE *);
     101extern off64_t ftell(FILE *);
     102extern int feof(FILE *);
     103extern int fileno(FILE *);
     104
     105extern int fflush(FILE *);
     106extern int ferror(FILE *);
     107extern void clearerr(FILE *);
     108
     109extern void setvbuf(FILE *, void *, int, size_t);
     110
     111
     112/* POSIX specific stuff. */
    45113
    46114/* Identifying the Terminal */
  • uspace/lib/posix/include/posix/stdlib.h

    rbe1dcc26 rd948095  
    3737#define POSIX_STDLIB_H_
    3838
    39 #include "libc/stdlib.h"
     39#include "sys/types.h"
    4040
    4141#ifndef NULL
     
    5050#define _Exit exit
    5151extern int posix_atexit(void (*func)(void));
     52extern void exit(int status);
     53extern void abort(void) __attribute__((noreturn));
    5254
    5355/* Absolute Value */
  • uspace/lib/posix/include/posix/string.h

    rbe1dcc26 rd948095  
    3737#define POSIX_STRING_H_
    3838
    39 #include <mem.h>
    40 #include <str.h>
     39#include "sys/types.h"
    4140
    42 /* available in str.h
    43  *
    44  * char *strtok(char *restrict, const char *restrict);
    45  * char *strtok_r(char *restrict, const char *restrict, char **restrict);
    46  *
    47  * available in mem.h
    48  *
    49  * void *memset(void *, int, size_t);
    50  * void *memcpy(void *, const void *, size_t);
    51  * void *memmove(void *, const void *, size_t);
    52  *
     41/*
    5342 * TODO: not implemented due to missing locale support
    5443 *
     
    6150        #define NULL  ((void *) 0)
    6251#endif
     52
     53/*
     54 * These are the same as in HelenOS libc.
     55 * It would be possible to directly include <str.h> and <mem.h> but
     56 * it is better not to pollute POSIX namespace with other functions
     57 * defined in that header.
     58 *
     59 * Because libposix is always linked with libc, providing only these
     60 * forward declarations ought to be enough.
     61 */
     62/* From str.h. */
     63extern char * strtok_r(char *, const char *, char **);
     64extern char * strtok(char *, const char *);
     65
     66/* From mem.h */
     67#define bzero(ptr, len)  memset((ptr), 0, (len))
     68extern void *memset(void *, int, size_t);
     69extern void *memcpy(void *, const void *, size_t);
     70extern void *memmove(void *, const void *, size_t);
     71
    6372
    6473/* Copying and Concatenation */
  • uspace/lib/posix/include/posix/sys/mman.h

    rbe1dcc26 rd948095  
    3636#define POSIX_SYS_MMAN_H_
    3737
    38 #include "../libc/sys/mman.h"
     38#include "sys/types.h"
     39#include <abi/mm/as.h>
     40
     41#define MAP_FAILED ((void *) -1)
     42
     43#define MAP_SHARED     (1 << 0)
     44#define MAP_PRIVATE    (1 << 1)
     45#define MAP_FIXED      (1 << 2)
     46#define MAP_ANONYMOUS  (1 << 3)
    3947
    4048#undef PROT_NONE
     
    4351#undef PROT_EXEC
    4452#define PROT_NONE  0
    45 #define PROT_READ  PROTO_READ
    46 #define PROT_WRITE PROTO_WRITE
    47 #define PROT_EXEC  PROTO_EXEC
     53#define PROT_READ  AS_AREA_READ
     54#define PROT_WRITE AS_AREA_WRITE
     55#define PROT_EXEC  AS_AREA_EXEC
     56
     57extern void *mmap(void *start, size_t length, int prot, int flags, int fd,
     58    posix_off_t offset);
     59extern int munmap(void *start, size_t length);
    4860
    4961#endif /* POSIX_SYS_MMAN_H_ */
  • uspace/lib/posix/include/posix/sys/stat.h

    rbe1dcc26 rd948095  
    3737#define POSIX_SYS_STAT_H_
    3838
    39 #include "../libc/sys/stat.h"
    4039#include "types.h"
    4140#include "../time.h"
     
    130129extern int posix_chmod(const char *path, mode_t mode);
    131130extern mode_t posix_umask(mode_t mask);
     131extern int mkdir(const char *, mode_t);
    132132
    133133#ifndef LIBPOSIX_INTERNAL
  • uspace/lib/posix/include/posix/sys/types.h

    rbe1dcc26 rd948095  
    3737#define POSIX_SYS_TYPES_H_
    3838
    39 #include "../libc/sys/types.h"
     39#include "libc/sys/types.h"
     40#include "libc/sys/time.h"
    4041
    4142typedef unsigned int posix_ino_t;
  • uspace/lib/posix/include/posix/time.h

    rbe1dcc26 rd948095  
    3737#define POSIX_TIME_H_
    3838
    39 #include "libc/time.h"
    4039#include "sys/types.h"
    4140
  • uspace/lib/posix/include/posix/unistd.h

    rbe1dcc26 rd948095  
    3737#define POSIX_UNISTD_H_
    3838
    39 #include "libc/unistd.h"
    4039#include "sys/types.h"
     40#include "stddef.h"
    4141
    4242/* Process Termination */
Note: See TracChangeset for help on using the changeset viewer.