Home | History | Annotate | Download | only in libhfs_iso

Lines Matching refs:record

145  * DESCRIPTION:	locate a record in a node, or the record it should follow
159 continue; /* deleted record */
174 * DESCRIPTION: create an index record from a key and node pointer
177 unsigned char *record, int *reclen)
183 HFS_RECKEYLEN(record) = 0x25;
184 memset(record + 1, 0, 0x25);
185 memcpy(record + 1, key + 1, HFS_RECKEYLEN(key));
188 memcpy(record, key, HFS_RECKEYSKIP(key));
190 d_putl(HFS_RECDATA(record), nnum);
193 *reclen = HFS_RECKEYSKIP(record) + 4;
198 * DESCRIPTION: divide a node into two and insert a record
200 int n_split(node *left, unsigned char *record, int *reclen)
216 * Ensure node split leaves enough room for new record.
221 n_search(&right, record);
272 n_search(&right, record);
274 n_insertx(&right, record, *reclen);
277 n_search(left, record);
278 n_insertx(left, record, *reclen);
287 /* create an index record for the new node in the parent */
289 n_index(right.bt, HFS_NODEREC(right, 0), right.nnum, record, reclen);
320 * DESCRIPTION: insert a record into a node (which must already have room)
322 void n_insertx(node *np, unsigned char *record, int reclen)
340 /* write the new record */
342 memcpy(HFS_NODEREC(*np, rnum), record, reclen);
347 * DESCRIPTION: insert a new record into a node; return a record for parent
349 int n_insert(node *np, unsigned char *record, int *reclen)
357 return n_split(np, record, reclen);
359 n_insertx(np, record, *reclen);
369 int n_merge(node *right, node *left, unsigned char *record, int *flag)
414 HFS_RECKEYLEN(record) = 0;
422 * DESCRIPTION: remove a record from a node
424 int n_delete(node *np, unsigned char *record, int *flag)
447 return n_merge(np, &left, record, flag);
452 /* special case: first record changed; update parent record key */
454 n_index(np->bt, HFS_NODEREC(*np, 0), np->nnum, record, 0);