/* edid.c: retrieve EDID record from raw DDC1 data stream: data * is contained in an array of unsigned int each unsigned int * contains one bit if bit is 0 unsigned int has to be zero else * unsigned int > 0 * * Copyright 1998 by Egbert Eich */ #ifdef HAVE_XORG_CONFIG_H #include #endif #include "misc.h" #include "xf86.h" #include "xf86_OSproc.h" #include "xf86DDC.h" #include "ddcPriv.h" #include static int find_start(unsigned int *); static unsigned char * find_header(unsigned char *); static unsigned char * resort(unsigned char *); unsigned char * GetEDID_DDC1(unsigned int *s_ptr) { unsigned char *d_block, *d_pos; unsigned int *s_pos, *s_end; int s_start; int i,j; s_start = find_start(s_ptr); if (s_start==-1) return NULL; s_end = s_ptr + NUM; s_pos = s_ptr + s_start; d_block=xalloc(EDID1_LEN); if (!d_block) return NULL; d_pos = d_block; for (i=0;i