Changeset 2029


Ignore:
Timestamp:
Jun 13, 2005, 11:51:56 PM (20 years ago)
Author:
bird
Message:

o Replaced mktemp and mkstemp with BSD versions. Also adding

mkstemps, mkdtemp, arc4random, arc4random_addrandom and
arc4random_stir.

Location:
trunk/src/emx
Files:
1 added
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/ChangeLog.LIBC

    • Property cvs2svn:cvs-rev changed from 1.55 to 1.56
    r2028 r2029  
    66        o Fixed potential deadlock the first time a must-complete
    77          fmutex was entered.
     8        o Replaced mktemp and mkstemp with BSD versions. Also adding
     9          mkstemps, mkdtemp, arc4random, arc4random_addrandom and
     10          arc4random_stir.
    811
    9122005-06-12: knut st. osmundsen <bird-gccos2-spam@anduin.net>
  • trunk/src/emx/include/stdlib.h

    • Property cvs2svn:cvs-rev changed from 1.33 to 1.34
    r2028 r2029  
    241241#endif
    242242
    243 /** @todo __uint32_t
    244          arc4random(void); */
    245 /** @todo void   arc4random_addrandom(unsigned char *dat, int datlen); */
    246 /** @todo void   arc4random_stir(void); */
     243__uint32_t
     244         arc4random(void);
     245void     arc4random_addrandom(unsigned char *dat, int datlen);
     246void     arc4random_stir(void);
    247247char    *getbsize(int *, long *);
    248248                                        /* getcap(3) functions */
  • trunk/src/emx/include/unistd.h

    • Property cvs2svn:cvs-rev changed from 1.28 to 1.29
    r2028 r2029  
    501501/** @todo int    iruserok_sa(const void *, int, int, const char *, const char *); */
    502502int      issetugid(void);
    503 /** @todo char  *mkdtemp(char *); */
     503char    *mkdtemp(char *);
    504504int      mknod(const char *, mode_t, dev_t);
    505505#ifndef _MKSTEMP_DECLARED
     
    507507#define _MKSTEMP_DECLARED
    508508#endif
    509 /** @todo int    mkstemps(char *, int); */
     509int      mkstemps(char *, int);
    510510#ifndef _MKTEMP_DECLARED
    511511char    *mktemp(char *);
  • trunk/src/emx/src/lib/bsd/gen/arc4random.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r2028 r2029  
    3333#include <fcntl.h>
    3434#include <unistd.h>
     35#ifdef __EMX__
     36#include <sys/fmutex.h>
     37#else
    3538#include <pthread.h>
     39#endif
    3640
    3741#include "libc_private.h"
     
    4448};
    4549
     50#ifdef __EMX__
     51static _fmutex  arc4random_mtx = _FMUTEX_INITIALIZER;
     52#else
    4653static pthread_mutex_t  arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
     54#endif
    4755
    4856#define RANDOMDEV       "/dev/urandom"
     57#ifdef __EMX__
     58#define THREAD_LOCK()   _fmutex_request(&arc4random_mtx, 0)
     59#define THREAD_UNLOCK() _fmutex_release(&arc4random_mtx)
     60#else /* !__EMX__ */
    4961#define THREAD_LOCK()                                           \
    5062        do {                                                    \
     
    5870                        _pthread_mutex_unlock(&arc4random_mtx); \
    5971        } while (0)
     72#endif
    6073
    6174static struct arc4_stream rs;
     
    114127                (void) _read(fd, rdat.rnd, sizeof(rdat.rnd));
    115128                _close(fd);
    116         } 
     129        }
    117130        /* fd < 0?  Ah, what the heck. We'll just take whatever was on the
    118131         * stack... */
  • trunk/src/emx/src/lib/bsd/stdio/mktemp.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r2028 r2029  
    5858
    5959int
    60 mkstemps(path, slen)
     60_STD(mkstemps)(path, slen)
    6161        char *path;
    6262        int slen;
     
    6868
    6969int
    70 mkstemp(path)
     70_STD(mkstemp)(path)
    7171        char *path;
    7272{
     
    7676}
    7777
     78/* mkstd.awk: NOUNDERSCORE(mkdtemp) */
    7879char *
    79 mkdtemp(path)
     80_STD(mkdtemp)(path)
    8081        char *path;
    8182{
     
    9091}
    9192
     93#ifndef __EMX__
    9294__warn_references(mktemp,
    9395    "warning: mktemp() possibly used unsafely; consider using mkstemp()");
     96#endif
    9497
    9598char *
    96 mktemp(path)
     99_STD(mktemp)(path)
    97100        char *path;
    98101{
     
    174177                        if (*trv == '\0' || trv == suffp)
    175178                                return (0);
    176                         pad = strchr(padchar, *trv);
     179                        pad = strchr((const char *)padchar, *trv);
    177180                        if (pad == NULL || *++pad == '\0')
    178181                                *trv++ = padchar[0];
  • trunk/src/emx/src/lib/libc.def

    • Property cvs2svn:cvs-rev changed from 1.114 to 1.115
    r2028 r2029  
    17121712    "___infinity" @1716
    17131713    "___nan" @1717
     1714    ; mktemp + arc4random
     1715    "_arc4random" @1718
     1716    "_arc4random_addrandom" @1719
     1717    "_arc4random_stir" @1720
     1718    "__mktemp" @1721
     1719    "__std_mkdtemp" @1722
     1720    "__std_mkstemps" @1723
Note: See TracChangeset for help on using the changeset viewer.