Changes in / [021c508:4d4988e] in mainline


Ignore:
Location:
uspace/lib/posix
Files:
4 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/Makefile

    r021c508 r4d4988e  
    4141        ctype.c \
    4242        fcntl.c \
    43         math.c \
    4443        stdio.c \
    4544        stdlib.c \
     
    4847        strings.c \
    4948        sys/stat.c \
    50         sys/wait.c \
    5149        time.c \
    5250        unistd.c
  • uspace/lib/posix/ctype.c

    r021c508 r4d4988e  
    3838#include "ctype.h"
    3939
    40 // TODO: propose for inclusion in libc
    41 
    4240/**
    43  * Checks whether character is a hexadecimal digit.
    44  *
    45  * @param c
     41 *
     42 * @param ch
    4643 * @return
    4744 */
    48 int posix_isxdigit(int c)
     45int posix_isxdigit(int ch)
    4946{
    50         return isdigit(c) ||
    51             (c >= 'a' && c <= 'f') ||
    52             (c >= 'A' && c <= 'F');
    53 }
    54 
    55 /**
    56  * Checks whether character is a word separator.
    57  *
    58  * @param c
    59  * @return
    60  */
    61 int posix_isblank(int c)
    62 {
    63         return c == ' ' || c == '\t';
    64 }
    65 
    66 /**
    67  * Checks whether character is a control character.
    68  *
    69  * @param c
    70  * @return
    71  */
    72 int posix_iscntrl(int c)
    73 {
    74         return c < 0x20 || c == 0x7E;
    75 }
    76 
    77 /**
    78  * Checks whether character is any printing character except space.
    79  *
    80  * @param c
    81  * @return
    82  */
    83 int posix_isgraph(int c)
    84 {
    85         return posix_isprint(c) && c != ' ';
    86 }
    87 
    88 /**
    89  * Checks whether character is a printing character.
    90  *
    91  * @param c
    92  * @return
    93  */
    94 int posix_isprint(int c)
    95 {
    96         return !posix_iscntrl(c);
    97 }
    98 
    99 /**
    100  * Checks whether character is a punctuation.
    101  *
    102  * @param c
    103  * @return
    104  */
    105 int posix_ispunct(int c)
    106 {
    107         return !isspace(c) && !isalnum(c);
     47        return isdigit(ch) ||
     48            (ch >= 'a' && ch <= 'f') ||
     49            (ch >= 'A' && ch <= 'F');
    10850}
    10951
  • uspace/lib/posix/ctype.h

    r021c508 r4d4988e  
    4040
    4141/* Classification of Characters */
    42 extern int posix_isxdigit(int c);
    43 extern int posix_isblank(int c);
    44 extern int posix_iscntrl(int c);
    45 extern int posix_isgraph(int c);
    46 extern int posix_isprint(int c);
    47 extern int posix_ispunct(int c);
     42extern int posix_isxdigit(int ch);
    4843
    4944#ifndef LIBPOSIX_INTERNAL
    5045        #define isxdigit posix_isxdigit
    51         #define isblank posix_isblank
    52         #define iscntrl posix_iscntrl
    53         #define isgraph posix_isgraph
    54         #define isprint posix_isprint
    55         #define ispunct posix_ispunct
    5646#endif
    5747
  • uspace/lib/posix/limits.h

    r021c508 r4d4988e  
    3636#define POSIX_LIMITS_H_
    3737
    38 #include "stdint.h"
     38#include "libc/stdint.h"
    3939#include "libc/sys/types.h"
    4040
  • uspace/lib/posix/math.h

    r021c508 r4d4988e  
    3636#define POSIX_MATH_H_
    3737
    38 /* Normalization Functions */
    39 extern double posix_ldexp(double x, int exp);
    40 extern double posix_frexp(double num, int *exp);
    41 
    42 #ifndef LIBPOSIX_INTERNAL
    43         #define ldexp posix_ldexp
    44         #define frexp posix_frexp
    45 #endif
     38/* Empty. Just to satisfy preprocessor. */
    4639
    4740#endif /* POSIX_MATH_H_ */
  • uspace/lib/posix/signal.h

    r021c508 r4d4988e  
    5656#define signal(sig,func) (errno = ENOTSUP, SIG_ERR)
    5757#define raise(sig) ((int) -1)
    58 #define kill(pid,sig) (errno = ENOTSUP, (int) -1)
    5958
    6059typedef int posix_sig_atomic_t;
  • uspace/lib/posix/stdint.h

    r021c508 r4d4988e  
    3636#define POSIX_STDINT_H_
    3737
    38 #undef INT8_MAX
    39 #undef INT8_MIN
    40 #define INT8_MAX  127
    41 #define INT8_MIN  (-128)
    42 
    43 #undef UINT8_MAX
    44 #undef UINT8_MIN
    45 #define UINT8_MAX  255
    46 #define UINT8_MIN  0
    47 
    48 #undef INT16_MAX
    49 #undef INT16_MIN
    50 #define INT16_MAX  32767
    51 #define INT16_MIN  (-32768)
    52 
    53 #undef UINT16_MAX
    54 #undef UINT16_MIN
    55 #define UINT16_MAX  65535
    56 #define UINT16_MIN  0
    57 
    58 #undef INT32_MAX
    59 #undef INT32_MIN
    60 #define INT32_MAX  2147483647
    61 #define INT32_MIN  (-INT32_MAX - 1)
    62 
    63 #undef UINT32_MAX
    64 #undef UINT32_MIN
    65 #define UINT32_MAX  4294967295U
    66 #define UINT32_MIN  0U
    67 
    68 #undef INT64_MAX
    69 #undef INT64_MIN
    70 #define INT64_MAX  9223372036854775807LL
    71 #define INT64_MIN  (-INT64_MAX - 1LL)
    72 
    73 #undef UINT64_MAX
    74 #undef  UINT64_MIN
    75 #define UINT64_MAX  18446744073709551615ULL
    76 #define UINT64_MIN  0ULL
    77 
    78 #undef OFF64_MAX
    79 #undef OFF64_MIN
    80 #define OFF64_MAX  INT64_MAX
    81 #define OFF64_MIN  INT64_MIN
    82 
    83 #undef AOFF64_MAX
    84 #undef AOFF64_MIN
    85 #define AOFF64_MAX  UINT64_MAX
    86 #define AOFF64_MIN  UINT64_MIN
    87 
    88 #include "libc/sys/types.h"
     38#include "libc/stdint.h"
    8939
    9040typedef int64_t posix_intmax_t;
  • uspace/lib/posix/stdio.c

    r021c508 r4d4988e  
    167167 * @return
    168168 */
    169 int posix_vsprintf(char *s, const char *format, va_list ap)
    170 {
    171         // TODO: low priority, just a compile-time dependency of binutils
    172         not_implemented();
    173 }
    174 
    175 /**
    176  *
    177  * @param s
    178  * @param format
    179  * @param ...
    180  * @return
    181  */
    182169int posix_sscanf(const char *s, const char *format, ...)
    183170{
     
    186173}
    187174
    188 /**
    189  *
    190  * @param path
    191  * @return
    192  */
    193 int posix_remove(const char *path)
    194 {
    195         // TODO: low priority, just a compile-time dependency of binutils
    196         not_implemented();
    197 }
    198 
    199 /**
    200  *
    201  * @param s
    202  * @return
    203  */
    204 char *posix_tmpnam(char *s)
    205 {
    206         // TODO: low priority, just a compile-time dependency of binutils
    207         not_implemented();
    208 }
    209 
    210175/** @}
    211176 */
  • uspace/lib/posix/stdio.h

    r021c508 r4d4988e  
    3939#include "libc/stdio.h"
    4040#include "sys/types.h"
    41 #include "libc/stdarg.h"
    4241
    4342/* Character Input/Output */
     
    6160/* Formatted Input/Output */
    6261extern int posix_sprintf(char *restrict s, const char *restrict format, ...);
    63 extern int posix_vsprintf(char *restrict s, const char *restrict format, va_list ap);
    6462extern int posix_sscanf(const char *restrict s, const char *restrict format, ...);
    65 
    66 /* Deleting Files */
    67 extern int posix_remove(const char *path);
    68 
    69 /* Temporary Files */
    70 extern char *posix_tmpnam(char *s);
    7163
    7264#ifndef LIBPOSIX_INTERNAL
     
    8173
    8274        #define sprintf posix_sprintf
    83         #define vsprintf posix_vsprintf
    8475        #define sscanf posix_sscanf
    85 
    86         #define remove posix_remove
    87 
    88         #define tmpnam posix_tmpnam
    8976#endif
    9077
  • uspace/lib/posix/stdlib.c

    r021c508 r4d4988e  
    4040
    4141/**
    42  *
    43  * @param array
    44  * @param count
    45  * @param size
    46  * @param compare
    47  */
    48 int posix_atexit(void (*func)(void))
    49 {
    50         // TODO: low priority, just a compile-time dependency of binutils
    51         not_implemented();
    52 }
    53 
    54 /**
    55  *
    56  * @param array
    57  * @param count
    58  * @param size
    59  * @param compare
    60  */
    61 int posix_abs(int i)
    62 {
    63         // TODO
    64         not_implemented();
    65 }
    66 
    67 /**
    6842 *
    6943 * @param array
     
    8761{
    8862        // TODO
    89         not_implemented();
    90 }
    91 
    92 /**
    93  *
    94  * @param name
    95  * @param resolved
    96  * @return
    97  */
    98 int posix_putenv(char *string)
    99 {
    100         // TODO: low priority, just a compile-time dependency of binutils
    10163        not_implemented();
    10264}
     
    151113}
    152114
    153 /**
    154  *
    155  * @param size
    156  * @return
    157  */
    158 void *posix_malloc(size_t size)
    159 {
    160         return malloc(size);
    161 }
    162 
    163 /**
    164  *
    165  * @param nelem
    166  * @param elsize
    167  * @return
    168  */
    169 void *posix_calloc(size_t nelem, size_t elsize)
    170 {
    171         return calloc(nelem, elsize);
    172 }
    173 
    174 /**
    175  *
    176  * @param ptr
    177  * @param size
    178  * @return
    179  */
    180 void *posix_realloc(void *ptr, size_t size)
    181 {
    182         return realloc(ptr, size);
    183 }
    184 
    185 /**
    186  *
    187  * @param ptr
    188  */
    189 void posix_free(void *ptr)
    190 {
    191         free(ptr);
    192 }
    193 
    194 /**
    195  *
    196  * @param tmpl
    197  * @return
    198  */
    199 char *posix_mktemp(char *tmpl)
    200 {
    201         // TODO: low priority, just a compile-time dependency of binutils
    202         not_implemented();
    203 }
    204 
    205115/** @}
    206116 */
  • uspace/lib/posix/stdlib.h

    r021c508 r4d4988e  
    4949#define EXIT_SUCCESS 0
    5050#define _Exit exit
    51 extern int posix_atexit(void (*func)(void));
    52 
    53 /* Absolute Value */
    54 extern int posix_abs(int i);
    5551
    5652/* Array Sort Function */
     
    6056/* Environment Access */
    6157extern char *posix_getenv(const char *name);
    62 extern int posix_putenv(char *string);
    6358
    6459/* Symbolic Links */
     
    7368extern int posix_atoi(const char *str);
    7469
    75 /* Memory Allocation */
    76 extern void *posix_malloc(size_t size);
    77 extern void *posix_calloc(size_t nelem, size_t elsize);
    78 extern void *posix_realloc(void *ptr, size_t size);
    79 extern void posix_free(void *ptr);
    80 
    81 /* Legacy Declarations */
    82 extern char *posix_mktemp(char *tmpl);
    83 
    8470#ifndef LIBPOSIX_INTERNAL
    85         #define atexit posix_atexit
    86 
    87         #define abs posix_abs
    88 
    8971        #define qsort posix_qsort
    90 
    9172        #define getenv posix_getenv
    92 
    9373        #define realpath posix_realpath
    9474       
     
    9878       
    9979        #define atoi posix_atoi
    100 
    101         #define malloc posix_malloc
    102         #define calloc posix_calloc
    103         #define realloc posix_realloc
    104         #define free posix_free
    105 
    106         #define mktemp posix_mktemp
    10780#endif
    10881
  • uspace/lib/posix/stdlib/strtold.c

    r021c508 r4d4988e  
    4141#include <errno.h> // TODO: use POSIX errno
    4242#include "../libc/bool.h"
    43 #include "../stdint.h"
     43#include "../libc/stdint.h"
    4444#include "../stdlib.h"
    4545#include "../strings.h"
  • uspace/lib/posix/string.h

    r021c508 r4d4988e  
    103103
    104104/* Legacy declarations */
    105 #ifndef POSIX_STRINGS_H_
    106105extern int posix_ffs(int i);
    107 #endif
    108106
    109107#ifndef LIBPOSIX_INTERNAL
  • uspace/lib/posix/strings.h

    r021c508 r4d4988e  
    3737#define POSIX_STRINGS_H_
    3838
    39 #ifndef POSIX_STRING_H_
    4039/* Search Functions */
    4140extern int posix_ffs(int i);
    42 #endif
    4341
    4442/* String/Array Comparison */
  • uspace/lib/posix/time.c

    r021c508 r4d4988e  
    8787}
    8888
    89 /**
    90  *
    91  * @return
    92  */
    93 posix_clock_t posix_clock(void)
    94 {
    95         // TODO
    96         not_implemented();
    97 }
    98 
    9989/** @}
    10090 */
  • uspace/lib/posix/time.h

    r021c508 r4d4988e  
    5555};
    5656
    57 typedef long posix_clock_t;
    58 
    5957/* Broken-down Time */
    6058extern struct posix_tm *posix_localtime(const time_t *timep);
     
    6563extern size_t posix_strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct posix_tm *restrict tm);
    6664
    67 /* CPU Time */
    68 extern posix_clock_t posix_clock(void);
    69 
    7065#ifndef LIBPOSIX_INTERNAL
    7166        #define tm posix_tm
    72 
    73         #define clock_t posix_clock_t
    7467
    7568        #define localtime posix_localtime
     
    7871        #define ctime posix_ctime
    7972        #define strftime posix_strftime
    80 
    81         #define clock posix_clock
    8273#endif
    8374
  • uspace/lib/posix/unistd.c

    r021c508 r4d4988e  
    3838#include "internal/common.h"
    3939#include "unistd.h"
    40 #include <task.h>
    4140
    4241/* Array of environment variable strings (NAME=VALUE). */
     
    4443
    4544/**
    46  * Dummy function. Always returns false, because there is no easy way to find
    47  * out under HelenOS.
    48  *
     45 *
    4946 * @param fd
    50  * @return Always false.
     47 * @return
    5148 */
    5249int posix_isatty(int fd)
    5350{
    54         return false;
     51        // TODO
     52        not_implemented();
    5553}
    5654
     
    6260{
    6361        return getpagesize();
    64 }
    65 
    66 /**
    67  *
    68  * @return
    69  */
    70 posix_pid_t posix_getpid(void)
    71 {
    72         return task_get_id();
    7362}
    7463
     
    116105}
    117106
    118 /**
    119  *
    120  * @param path
    121  * @param name
    122  * @return
    123  */
    124 long posix_pathconf(const char *path, int name)
    125 {
    126         // TODO: low priority, just a compile-time dependency of binutils
    127         not_implemented();
    128 }
    129 
    130 /**
    131  *
    132  * @return
    133  */
    134 posix_pid_t posix_fork(void)
    135 {
    136         // TODO: low priority, just a compile-time dependency of binutils
    137         not_implemented();
    138 }
    139 
    140 /**
    141  *
    142  * @param path
    143  * @param argv
    144  * @return
    145  */
    146 int posix_execv(const char *path, char *const argv[])
    147 {
    148         // TODO: low priority, just a compile-time dependency of binutils
    149         not_implemented();
    150 }
    151 
    152 /**
    153  *
    154  * @param file
    155  * @param argv
    156  * @return
    157  */
    158 int posix_execvp(const char *file, char *const argv[])
    159 {
    160         // TODO: low priority, just a compile-time dependency of binutils
    161         not_implemented();
    162 }
    163 
    164 /**
    165  *
    166  * @param fildes
    167  * @return
    168  */
    169 int posix_pipe(int fildes[2])
    170 {
    171         // TODO: low priority, just a compile-time dependency of binutils
    172         not_implemented();
    173 }
    174 
    175107/** @}
    176108 */
  • uspace/lib/posix/unistd.h

    r021c508 r4d4988e  
    5858
    5959/* Process Identification */
    60 extern posix_pid_t posix_getpid(void);
     60#define getpid task_get_id
    6161extern posix_uid_t posix_getuid(void);
    6262extern posix_gid_t posix_getgid(void);
     
    112112        _PC_VDISABLE
    113113};
    114 extern long posix_pathconf(const char *path, int name);
    115 
    116 /* Creating a Process */
    117 extern posix_pid_t posix_fork(void);
    118 
    119 /* Executing a File */
    120 extern int posix_execv(const char *path, char *const argv[]);
    121 extern int posix_execvp(const char *file, char *const argv[]);
    122 
    123 /* Creating a Pipe */
    124 extern int posix_pipe(int fildes[2]);
    125114
    126115#ifndef LIBPOSIX_INTERNAL
     
    132121        #define getpagesize posix_getpagesize
    133122
    134         #define getpid posix_getpid
    135123        #define getuid posix_getuid
    136124        #define getgid posix_getgid
     
    139127
    140128        #define sysconf posix_sysconf
    141 
    142         #define pathconf posix_pathconf
    143 
    144         #define fork posix_fork
    145 
    146         #define execv posix_execv
    147         #define execvp posix_execvp
    148 
    149         #define pipe posix_pipe
    150129#endif
    151130
Note: See TracChangeset for help on using the changeset viewer.