38 #if !defined(__OCS_VPD_H__)
99 static inline uint8_t *
105 #define VPD_LARGE_RESOURCE_TYPE_ID_STRING_TAG 0x82
106 #define VPD_LARGE_RESOURCE_TYPE_R_TAG 0x90
107 #define VPD_LARGE_RESOURCE_TYPE_W_TAG 0x91
108 #define VPD_SMALL_RESOURCE_TYPE_END_TAG 0x78
122 static inline uint8_t *
123 ocs_find_vpd(uint8_t *vpddata, uint32_t vpddata_length,
const char *key)
126 uint8_t *pret = NULL;
130 vpdbuf.
buffer = (uint8_t*) vpddata;
131 vpdbuf.
length = vpddata_length;
148 len = len_lo + (len_hi << 8);
169 if ((c0 == rc0) && (c1 == rc1)) {
171 for (i = 0; i < sublen; i++) {
175 }
else if (
'R' == rc0 &&
'V' == rc1) {
178 for (i = 0; i < sublen; i++) {
184 ocs_log_test(NULL,
"checksum error\n");
189 for (i = 0; i < sublen; i++) {
195 for (i = 0; i < len; i++) {
202 #endif // __OCS_VPD_H__
#define VPD_SMALL_RESOURCE_TYPE_END_TAG
static int vpdnext(vpdbuf_t *vpd)
return next VPD byte
static uint8_t * ocs_find_vpd(uint8_t *vpddata, uint32_t vpddata_length, const char *key)
find a VPD entry
static int vpddone(vpdbuf_t *vpd)
return true if no more vpd buffer data
#define VPD_LARGE_RESOURCE_TYPE_R_TAG
#define VPD_LARGE_RESOURCE_TYPE_W_TAG
static uint8_t * vpdref(vpdbuf_t *vpd)
return pointer to current VPD data location