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