Lines Matching refs:rm
84 static uint32_t romfs_devread32(struct romfs_mountpt_s *rm, int ndx) in romfs_devread32() argument
88 uint32_t value = *(uint32_t *)&rm->rm_buffer[ndx]; in romfs_devread32()
103 static inline int romfs_checkentry(struct romfs_mountpt_s *rm, in romfs_checkentry() argument
119 ret = romfs_parsedirentry(rm, offset, &linkoffset, &next, &info, &size); in romfs_checkentry()
133 ret = romfs_parsefilename(rm, offset, name); in romfs_checkentry()
180 uint32_t romfs_devcacheread(struct romfs_mountpt_s *rm, uint32_t offset) in romfs_devcacheread() argument
195 static int romfs_followhardlinks(struct romfs_mountpt_s *rm, uint32_t offset, in romfs_followhardlinks() argument
208 ndx = romfs_devcacheread(rm, offset); in romfs_followhardlinks()
216 next = romfs_devread32(rm, ndx + ROMFS_FHDR_NEXT); in romfs_followhardlinks()
225 offset = romfs_devread32(rm, ndx + ROMFS_FHDR_INFO); in romfs_followhardlinks()
240 int romfs_searchdir(struct romfs_mountpt_s *rm, in romfs_searchdir() argument
262 ndx = romfs_devcacheread(rm, offset); in romfs_searchdir()
272 next = romfs_devread32(rm, ndx + ROMFS_FHDR_NEXT) & RFNEXT_OFFSETMASK; in romfs_searchdir()
278 ret = romfs_checkentry(rm, offset, entryname, entrylen, dirinfo); in romfs_searchdir()
305 void romfs_semtake(struct romfs_mountpt_s *rm) in romfs_semtake() argument
313 ret = sem_wait(&rm->rm_sem); in romfs_semtake()
328 void romfs_semgive(struct romfs_mountpt_s *rm) in romfs_semgive() argument
330 (void)sem_post(&rm->rm_sem); in romfs_semgive()
344 int romfs_hwconfigure(struct romfs_mountpt_s *rm) in romfs_hwconfigure() argument
348 if (!rm->rm_buffer) in romfs_hwconfigure()
354 total_size = romfs_devread32(rm, ROMFS_VHDR_SIZE); in romfs_hwconfigure()
356 rm->rm_hwnsectors = total_size; in romfs_hwconfigure()
357 rm->rm_hwsectorsize = 1; in romfs_hwconfigure()
358 rm->rm_cachesector = (uint32_t)-1; in romfs_hwconfigure()
359 rm->rm_volsize = total_size; in romfs_hwconfigure()
375 int romfs_fsconfigure(struct romfs_mountpt_s *rm) in romfs_fsconfigure() argument
384 ndx = romfs_devcacheread(rm, 0); in romfs_fsconfigure()
392 if (memcmp(rm->rm_buffer, ROMFS_VHDR_MAGIC, 8) != 0) in romfs_fsconfigure()
399 name = (const char *)&rm->rm_buffer[ROMFS_VHDR_VOLNAME]; in romfs_fsconfigure()
400 rm->rm_rootoffset = ROMFS_ALIGNUP(ROMFS_VHDR_VOLNAME + strlen(name) + 1); in romfs_fsconfigure()
404 rm->rm_mounted = true; in romfs_fsconfigure()
417 int romfs_checkmount(struct romfs_mountpt_s *rm) in romfs_checkmount() argument
431 int romfs_parsedirentry(struct romfs_mountpt_s *rm, uint32_t offset, in romfs_parsedirentry() argument
442 ndx = romfs_devcacheread(rm, offset); in romfs_parsedirentry()
453 save = romfs_devread32(rm, ndx + ROMFS_FHDR_NEXT); in romfs_parsedirentry()
457 ret = romfs_followhardlinks(rm, offset, poffset); in romfs_parsedirentry()
465 ndx = romfs_devcacheread(rm, *poffset); in romfs_parsedirentry()
477 next = romfs_devread32(rm, ndx + ROMFS_FHDR_NEXT); in romfs_parsedirentry()
479 *pinfo = romfs_devread32(rm, ndx + ROMFS_FHDR_INFO); in romfs_parsedirentry()
480 *psize = romfs_devread32(rm, ndx + ROMFS_FHDR_SIZE); in romfs_parsedirentry()
493 int romfs_parsefilename(struct romfs_mountpt_s *rm, uint32_t offset, in romfs_parsefilename() argument
510 ndx = romfs_devcacheread(rm, offset + namelen); in romfs_parsefilename()
518 if (rm->rm_buffer[ndx + 15] == '\0') in romfs_parsefilename()
522 chunklen = strlen((char *)&rm->rm_buffer[ndx]); in romfs_parsefilename()
542 memcpy(&pname[namelen], &rm->rm_buffer[ndx], chunklen); in romfs_parsefilename()
562 int romfs_datastart(struct romfs_mountpt_s *rm, uint32_t offset, in romfs_datastart() argument
570 ret = romfs_followhardlinks(rm, offset, &offset); in romfs_datastart()
583 ndx = romfs_devcacheread(rm, offset); in romfs_datastart()
592 if (offset >= rm->rm_volsize) in romfs_datastart()
599 if (rm->rm_buffer[ndx + 15] == '\0') in romfs_datastart()