OSDN Git Service

blob: Use intptr_t instead of ssize_t
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 13 Oct 2017 17:40:45 +0000 (10:40 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 13 Oct 2017 22:02:34 +0000 (15:02 -0700)
ssize_t is a GNU extension and is not available on Windows or MacOS.
Instead, we use intptr_t which should be effectively equivalent and is
part of the C standard.  This should fix the Windows and Mac OS builds.

Fixes: 3af1c829891a4530682bce113fdd512d4f2de3c6
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103253
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Tested-by: Vinson Lee <vlee@freedesktop.org>
src/compiler/blob.c
src/compiler/blob.h
src/intel/vulkan/anv_pipeline_cache.c

index f0fa85e..8dd254f 100644 (file)
@@ -158,10 +158,10 @@ blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write)
    return true;
 }
 
-ssize_t
+intptr_t
 blob_reserve_bytes(struct blob *blob, size_t to_write)
 {
-   ssize_t ret;
+   intptr_t ret;
 
    if (! grow_to_fit (blob, to_write))
       return -1;
@@ -172,14 +172,14 @@ blob_reserve_bytes(struct blob *blob, size_t to_write)
    return ret;
 }
 
-ssize_t
+intptr_t
 blob_reserve_uint32(struct blob *blob)
 {
    align_blob(blob, sizeof(uint32_t));
    return blob_reserve_bytes(blob, sizeof(uint32_t));
 }
 
-ssize_t
+intptr_t
 blob_reserve_intptr(struct blob *blob)
 {
    align_blob(blob, sizeof(intptr_t));
index f0f28ec..2b975d4 100644 (file)
@@ -135,7 +135,7 @@ blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write);
  * \return An offset to space allocated within \blob to which \to_write bytes
  * can be written, (or -1 in case of any allocation error).
  */
-ssize_t
+intptr_t
 blob_reserve_bytes(struct blob *blob, size_t to_write);
 
 /**
@@ -143,7 +143,7 @@ blob_reserve_bytes(struct blob *blob, size_t to_write);
  * space. Note that this must be used if later reading with \sa
  * blob_read_uint32, since it aligns the offset correctly.
  */
-ssize_t
+intptr_t
 blob_reserve_uint32(struct blob *blob);
 
 /**
@@ -151,7 +151,7 @@ blob_reserve_uint32(struct blob *blob);
  * space. Note that this must be used if later reading with \sa
  * blob_read_intptr, since it aligns the offset correctly.
  */
-ssize_t
+intptr_t
 blob_reserve_intptr(struct blob *blob);
 
 /**
index ad9c810..82551e9 100644 (file)
@@ -449,7 +449,7 @@ VkResult anv_GetPipelineCacheData(
    blob_write_bytes(&blob, &header, sizeof(header));
 
    uint32_t count = 0;
-   ssize_t count_offset = blob_reserve_uint32(&blob);
+   intptr_t count_offset = blob_reserve_uint32(&blob);
    if (count_offset < 0) {
       *pDataSize = 0;
       blob_finish(&blob);