Diff for /qemu/cutils.c between versions 1.1.1.1 and 1.1.1.3

version 1.1.1.1, 2018/04/24 16:44:47 version 1.1.1.3, 2018/04/24 16:50:24
Line 1 Line 1
 /*  /*
  * Simple C functions to supplement the C library   * Simple C functions to supplement the C library
  *    *
  * Copyright (c) 2006 Fabrice Bellard   * Copyright (c) 2006 Fabrice Bellard
  *   *
  * Permission is hereby granted, free of charge, to any person obtaining a copy   * Permission is hereby granted, free of charge, to any person obtaining a copy
Line 21 Line 21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.   * THE SOFTWARE.
  */   */
 #include "vl.h"  #include "qemu-common.h"
   #include "host-utils.h"
   
 void pstrcpy(char *buf, int buf_size, const char *str)  void pstrcpy(char *buf, int buf_size, const char *str)
 {  {
Line 45  char *pstrcat(char *buf, int buf_size, c Line 46  char *pstrcat(char *buf, int buf_size, c
 {  {
     int len;      int len;
     len = strlen(buf);      len = strlen(buf);
     if (len < buf_size)       if (len < buf_size)
         pstrcpy(buf + len, buf_size - len, s);          pstrcpy(buf + len, buf_size - len, s);
     return buf;      return buf;
 }  }
Line 72  int stristart(const char *str, const cha Line 73  int stristart(const char *str, const cha
     p = str;      p = str;
     q = val;      q = val;
     while (*q != '\0') {      while (*q != '\0') {
         if (toupper(*p) != toupper(*q))          if (qemu_toupper(*p) != qemu_toupper(*q))
             return 0;              return 0;
         p++;          p++;
         q++;          q++;
Line 81  int stristart(const char *str, const cha Line 82  int stristart(const char *str, const cha
         *ptr = p;          *ptr = p;
     return 1;      return 1;
 }  }
   
   time_t mktimegm(struct tm *tm)
   {
       time_t t;
       int y = tm->tm_year + 1900, m = tm->tm_mon + 1, d = tm->tm_mday;
       if (m < 3) {
           m += 12;
           y--;
       }
       t = 86400 * (d + (153 * m - 457) / 5 + 365 * y + y / 4 - y / 100 + 
                    y / 400 - 719469);
       t += 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec;
       return t;
   }
   
   int qemu_fls(int i)
   {
       return 32 - clz32(i);
   }
   
   /* io vectors */
   
   void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint)
   {
       qiov->iov = qemu_malloc(alloc_hint * sizeof(struct iovec));
       qiov->niov = 0;
       qiov->nalloc = alloc_hint;
       qiov->size = 0;
   }
   
   void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len)
   {
       if (qiov->niov == qiov->nalloc) {
           qiov->nalloc = 2 * qiov->nalloc + 1;
           qiov->iov = qemu_realloc(qiov->iov, qiov->nalloc * sizeof(struct iovec));
       }
       qiov->iov[qiov->niov].iov_base = base;
       qiov->iov[qiov->niov].iov_len = len;
       qiov->size += len;
       ++qiov->niov;
   }
   
   void qemu_iovec_destroy(QEMUIOVector *qiov)
   {
       qemu_free(qiov->iov);
   }
   
   void qemu_iovec_reset(QEMUIOVector *qiov)
   {
       qiov->niov = 0;
       qiov->size = 0;
   }
   
   void qemu_iovec_to_buffer(QEMUIOVector *qiov, void *buf)
   {
       uint8_t *p = (uint8_t *)buf;
       int i;
   
       for (i = 0; i < qiov->niov; ++i) {
           memcpy(p, qiov->iov[i].iov_base, qiov->iov[i].iov_len);
           p += qiov->iov[i].iov_len;
       }
   }
   
   void qemu_iovec_from_buffer(QEMUIOVector *qiov, const void *buf, size_t count)
   {
       const uint8_t *p = (const uint8_t *)buf;
       size_t copy;
       int i;
   
       for (i = 0; i < qiov->niov && count; ++i) {
           copy = count;
           if (copy > qiov->iov[i].iov_len)
               copy = qiov->iov[i].iov_len;
           memcpy(qiov->iov[i].iov_base, p, copy);
           p     += copy;
           count -= copy;
       }
   }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.3


unix.superglobalmegacorp.com