1 #include "csf.h"
2 #include "csfimpl.h"
3
4 /* write an attribute control block (LIBRARY_INTERNAL)
5 * returns 0 if successful,
6 * 1 if seeking or writing failed
7 */
CsfWriteAttrBlock(MAP * m,CSF_FADDR32 pos,ATTR_CNTRL_BLOCK * b)8 int CsfWriteAttrBlock(
9 MAP *m, /* map handle */
10 CSF_FADDR32 pos, /* file position where the block is written */
11 ATTR_CNTRL_BLOCK *b) /* attribute control block to be written */
12 {
13 int i;
14
15 if ( csf_fseek(m->fp, pos, SEEK_SET) )
16 return 1;
17
18 for(i=0; i < NR_ATTR_IN_BLOCK; i++)
19 if ( m->write(&(b->attrs[i].attrId), sizeof(UINT2),(size_t)1,m->fp) != 1 ||
20 m->write(&(b->attrs[i].attrOffset),sizeof(CSF_FADDR32),(size_t)1,m->fp) != 1 ||
21 m->write(&(b->attrs[i].attrSize), sizeof(UINT4),(size_t)1,m->fp) != 1
22 )
23 return 1;
24
25 return m->write(&(b->next), sizeof(CSF_FADDR32),(size_t)1,m->fp) != 1;
26 }
27