1struct fb_cmap { 2 unsigned int start; 3 unsigned int len; 4 unsigned short *red; 5 unsigned short *green; 6 unsigned short *blue; 7 unsigned short *transp; 8}; 9 10typedef struct { 11 int r; 12 int g; 13 int b; 14 int a; 15} rgba_t; 16 17static unsigned int cmap_len; 18 19extern unsigned int red_len, green_len, blue_len, alpha_len; 20extern struct fb_cmap fb_cmap; 21extern rgba_t *clut; 22extern int fb_set_cmap(void); 23 24void directcolor_update_cmap(void) 25{ 26 unsigned int i; 27 28 for (i = 0; i < cmap_len; i++) { 29 if (i < red_len) 30 fb_cmap.red[i] = clut[i].r; 31 if (i < green_len) 32 fb_cmap.green[i] = clut[i].g; 33 if (i < blue_len) 34 fb_cmap.blue[i] = clut[i].b; 35 if (fb_cmap.transp && i < alpha_len) 36 fb_cmap.transp[i] = clut[i].a; 37 } 38} 39