소스 검색

[libc]fix size_t ssize_t

ZYH 6 년 전
부모
커밋
6b7335a36f
3개의 변경된 파일19개의 추가작업 그리고 4개의 파일을 삭제
  1. 5 1
      components/libc/compilers/armlibc/sys/types.h
  2. 5 1
      components/libc/compilers/dlib/sys/types.h
  3. 9 2
      components/libc/compilers/minilibc/sys/types.h

+ 5 - 1
components/libc/compilers/armlibc/sys/types.h

@@ -15,6 +15,10 @@
 typedef rt_int32_t clockid_t;
 typedef rt_int32_t key_t;       /* Used for interprocess communication. */
 typedef rt_int32_t pid_t;       /* Used for process IDs and process group IDs. */
-typedef signed long ssize_t;    /* Used for a count of bytes or an error indication. */
+#ifndef ARCH_CPU_64BIT
+typedef signed int   ssize_t;  /* Used for a count of bytes or an error indication. */
+#else
+typedef long signed int   ssize_t;  /* Used for a count of bytes or an error indication. */
+#endif
 
 #endif

+ 5 - 1
components/libc/compilers/dlib/sys/types.h

@@ -15,6 +15,10 @@
 typedef rt_int32_t clockid_t;
 typedef rt_int32_t key_t;       /* Used for interprocess communication. */
 typedef rt_int32_t pid_t;       /* Used for process IDs and process group IDs. */
-typedef signed long ssize_t;    /* Used for a count of bytes or an error indication. */
+#ifndef ARCH_CPU_64BIT
+typedef signed int   ssize_t;  /* Used for a count of bytes or an error indication. */
+#else
+typedef long signed int   ssize_t;  /* Used for a count of bytes or an error indication. */
+#endif
 
 #endif

+ 9 - 2
components/libc/compilers/minilibc/sys/types.h

@@ -8,10 +8,17 @@
  */
 #ifndef __TYPES_H__
 #define __TYPES_H__
+#include <rtconfig.h>
 
 typedef long        off_t;
-typedef unsigned long size_t;
-typedef signed long   ssize_t;      /* Used for a count of bytes or an error indication. */
+
+#ifndef ARCH_CPU_64BIT
+typedef unsigned int size_t;
+typedef signed int   ssize_t;  /* Used for a count of bytes or an error indication. */
+#else
+typedef long unsigned int size_t;
+typedef long signed int   ssize_t;  /* Used for a count of bytes or an error indication. */
+#endif
 
 typedef unsigned char  u_char;
 typedef unsigned short u_short;