Path: blob/21.2-virgl/src/gallium/frontends/nine/nine_pdata.h
4561 views
1#ifndef _NINE_PDATA_H_2#define _NINE_PDATA_H_34#include "util/hash_table.h"56struct pheader7{8boolean unknown;9GUID guid;10DWORD size;11};1213static bool14ht_guid_compare( const void *a,15const void *b )16{17return GUID_equal(a, b);18}1920static uint32_t21ht_guid_hash( const void *key )22{23unsigned i, hash = 0;24const unsigned char *str = key;2526for (i = 0; i < sizeof(GUID); i++) {27hash = (unsigned)(str[i]) + (hash << 6) + (hash << 16) - hash;28}2930return hash;31}3233static void34ht_guid_delete( struct hash_entry *entry )35{36struct pheader *header = entry->data;37void *header_data = (void *)header + sizeof(*header);3839if (header->unknown) { IUnknown_Release(*(IUnknown **)header_data); }40FREE(header);41}4243#endif /* _NINE_PDATA_H_ */444546