int osx_attr_fgetattrlist (int fd, struct attrlist * attrList, void * attrBuf, size_t attrBufSize, unsigned long options) { int r; caml_release_runtime_system(); r = fgetattrlist(fd, attrList, attrBuf, attrBufSize, options); caml_acquire_runtime_system(); return r; }
static void clear_type_and_creator(int fd) { struct attrlist alist; struct { u_int32_t length; char info[32]; } abuf; memset(&alist, 0, sizeof(alist)); alist.bitmapcount = ATTR_BIT_MAP_COUNT; alist.commonattr = ATTR_CMN_FNDRINFO; if (!fgetattrlist(fd, &alist, &abuf, sizeof(abuf), 0) && abuf.length == sizeof(abuf)) { memset(abuf.info, 0, 8); fsetattrlist(fd, &alist, abuf.info, sizeof(abuf.info), 0); } }