Example #1
0
File: aio.c Project: shepheb/kernel
void aputw( int channel, int n, char fc, char *bf ) {
	char ch;
	char *p = bf;

	while( *p++ && n > 0 ) n--;
	while( n-- > 0 ) aputc( channel, fc );
	while( ( ch = *bf++ ) ) aputc( channel, ch );
}
Example #2
0
File: aio.c Project: shepheb/kernel
int aputx( int channel, char c ) {
	char chh, chl;

	chh = ac2x( c / 16 );
	chl = ac2x( c % 16 );
	aputc( channel, chh );
	return aputc( channel, chl );
}
Example #3
0
File: aio.c Project: shepheb/kernel
int aputstr( int channel, char *str ) {
	while( *str ) {
		if( aputc( channel, *str ) < 0 ) return -1;
		str++;
	}
	return 0;
}
Example #4
0
File: aio.c Project: shepheb/kernel
int aputr( int channel, unsigned int reg ) {
	int byte;
	char *ch = (char *) &reg;

	for( byte = 3; byte >= 0; byte-- ) aputx( channel, ch[byte] );
	return aputc( channel, ' ' );
}
Example #5
0
static void ttf_dumpcvar(struct alltabs *at,MMSet *mm) {
    int16_t **deltas;
    int ptcnt, cnt, pcnt;
    int i, j, rj, big;
    int tuple_size;
    uint32_t start, end;
    uint16_t *pts;

    deltas=CvtFindDeltas(mm, &ptcnt);
    for (i=cnt=0; i < mm->instance_count; ++i)
        if (deltas[i] != NULL)
            ++cnt;
    if (cnt==0) {
        free(deltas);
        return;
    }

    tuple_size=4 + 2 * mm->axis_count;
    at->cvar=atmpfile();
    putlong(at->cvar, 0x00010000);	/* Format */
    putshort(at->cvar, cnt);	/* Number of instances with cvt tables (tuple count of interesting tuples) */
    putshort(at->cvar, 8 + cnt * tuple_size);	/* Offset to data */

    for (i=0; i < mm->instance_count; ++i)
        if (deltas[i] != NULL) {
            putshort(at->cvar, 0);	/* tuple data size, figure out later */
            putshort(at->cvar, 0xa000);	/* tuple coords follow, private points in data */
            for (j=0; j < mm->axis_count; ++j)
                putshort(at->cvar,
                         rint(16384 * mm->positions[i * mm->axis_count + j]));
        }
    if (aftell(at->cvar) != 8 + cnt * tuple_size)
        ErrorMsg(2,"Data offset wrong\n");

    for (i=cnt=0; i < mm->instance_count; ++i)
        if (deltas[i] != NULL) {
            start=aftell(at->cvar);
            for (j=pcnt=0; j < ptcnt; ++j)
                if (deltas[i][j] != 0)
                    ++pcnt;
            pts=malloc(pcnt * sizeof(uint16_t));
            for (j=pcnt=0; j < ptcnt; ++j)
                if (deltas[i][j] != 0)
                    pts[pcnt++]=j;

            if (pcnt > 0x7f) {
                aputc(0x80 | (pcnt >> 8), at->cvar);
                aputc(pcnt & 0xff, at->cvar);
            } else