[interfacekit] Re: kernel_interface.POSIX.cpp and some grease

I believe you can blame axeld for all that, though I'm sure he intends to 
eventually fix whatever he might have broken. :-) He started working on 
transitioning the storage kit to accessing the Haiku kernel directly, and I 
don't know that things are guaranteed to continue working while the 
transition is in progress. 

-Tyler

On 2004-07-03 at 02:47:09 [-0700], Pahtz wrote:
> BTW, kits/storage/kernel_interface.POSIX.cpp uses strlcat which doesn't 
> seem to be in R5.
> 
> #include <string.h>
> 
> size_t strlcat(char *dst, const char *src, size_t dstsize)
> {
>         size_t dst_size = strlen(dst);
>         strncpy(dst + dst_size, src, dstsize - dst_size - 1);
>         dst[dstsize - 1] = '\0';
>         return dst_size + strlen(src);
> }
> 
> Umm, also should add the kernel private headers to kits/Jamfile for 
> <syscall.h> in
> storage/LibBeAdapter.cpp
> 
> Screen.cpp is missing from interface/interface.src
> 
> B_EMPTY_STRING needs to be defined somewhere.
> 
> And something changed to cause a recursion stack overflow with 
> entry_ref_to_path. I discovered
> some of this stuff be removing libbe.so from the kits/Jamfile.
> 
> <250KB of stack snipped>
> 
> fcfffde8   edd1e49f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fcfffe0c   edd0811d  BEntry::SetTo(entry_ref const *, bool) + 0000004d
> fd00022c   edd302d5  entry_ref_to_path_adapter(long, long long, char const 
> *, char *, unsigned
> long) + 00000065
> fd0002bc   edd1e4de  BPrivate::Storage::entry_ref_to_path(long, long long, 
> char const *, char *,
> unsigned long) + 0000002e
> fd0002e4   edd1e49f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd000308   edd0811d  BEntry::SetTo(entry_ref const *, bool) + 0000004d
> fd000728   edd302d5  entry_ref_to_path_adapter(long, long long, char const 
> *, char *, unsigned
> long) + 00000065
> fd0007b8   edd1e4de  BPrivate::Storage::entry_ref_to_path(long, long long, 
> char const *, char *,
> unsigned long) + 0000002e
> fd0007e0   edd1e49f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd000804   edd0811d  BEntry::SetTo(entry_ref const *, bool) + 0000004d
> fd000c24   edd302d5  entry_ref_to_path_adapter(long, long long, char const 
> *, char *, unsigned
> long) + 00000065
> fd000cb4   edd1e4de  BPrivate::Storage::entry_ref_to_path(long, long long, 
> char const *, char *,
> unsigned long) + 0000002e
> fd000cdc   edd1e49f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd000d00   edd08c34  BEntry::set(int, char const *, bool) + 00000098
> fd0012d0   edd081ed  BEntry::SetTo(char const *, bool) + 000000a9
> fd001300   edd07d7d  BEntry::BEntry(char const *, bool) + 0000004d
> fd00131c   edc9b15b  BPrivate::get_app_ref(entry_ref *, bool) + 00000053
> fd00176c   edc99ea8  BApplication::InitData(char const *, long *) + 000000b0
> fd001a70   edc98ccc  BApplication::BApplication(char const *) + 000000ac
> fd001a90   80003b05  TApplication::TApplication(void) + 00000025
> fd001aa8   80003cd6  main + 0000003a
> fd001bc4   80002d95  _start + 00000061
> App01:
> 
> 
> ANOTHER EXAMPLE...
> 
> 
> fd0002c4   edb4153f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd0002e8   edb29546  BDirectory::SetTo(entry_ref const *) + 0000004a
> fd000708   edb295d3  BDirectory::SetTo(node_ref const *) + 0000005b
> fd000748   edb53383  _kern_dir_node_ref_to_path + 00000053
> fd000818   edb4157b  BPrivate::Storage::entry_ref_to_path(long, long long, 
> char const *, char *,
> unsigned long) + 0000002b
> fd000840   edb4153f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd000864   edb29546  BDirectory::SetTo(entry_ref const *) + 0000004a
> fd000c84   edb295d3  BDirectory::SetTo(node_ref const *) + 0000005b
> fd000cc4   edb53383  _kern_dir_node_ref_to_path + 00000053
> fd000d94   edb4157b  BPrivate::Storage::entry_ref_to_path(long, long long, 
> char const *, char *,
> unsigned long) + 0000002b
> fd000dbc   edb4153f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd000de0   edb29546  BDirectory::SetTo(entry_ref const *) + 0000004a
> fd001200   edb295d3  BDirectory::SetTo(node_ref const *) + 0000005b
> fd001240   edb53383  _kern_dir_node_ref_to_path + 00000053
> fd001310   edb4157b  BPrivate::Storage::entry_ref_to_path(long, long long, 
> char const *, char *,
> unsigned long) + 0000002b
> fd001338   edb4153f  BPrivate::Storage::entry_ref_to_path(entry_ref const 
> *, char *, unsigned
> long) + 00000033
> fd00135c   edb33852  BPath::SetTo(entry_ref const *) + 0000004a
> fd00177c   edabd3c4  BApplication::InitData(char const *, long *) + 0000052c
> fd001a70   edabbd6c  BApplication::BApplication(char const *) + 000000ac
> fd001a90   80003b05  TApplication::TApplication(void) + 00000025
> fd001aa8   80003cd6  main + 0000003a
> fd001bc4   80002d95  _start + 00000061
> App01:
> 
> 
> There's other stuff but later...
> 
> Cheers,
> Pahtz.
> 
> 
> 
>         
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - 50x more storage than other providers!
> http://promotions.yahoo.com/new_mail

Other related posts: