tst-rename.so: Fix printf of file name instead of descriptor

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Removed ether_sprintf (wrong format, not used)

ether_sprintf() used special format specifiers from BSD's printf(9).

http://www.unix.com/man-page/freebsd/9/printf/

Instead of re-implementing these specifiers in different ways and
because this method is not being used anywhere, it was completely
removed.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Removed m_print (wrong format, not used)

m_print() used special format specifiers from BSD's printf(9).

http://www.unix.com/man-page/freebsd/9/printf/

Instead of re-implementing these specifiers in different ways and
because this method is not being used anywhere, it was completely
removed.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Fix usage of non literal format print

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
tst-solaris-taskq.so: Fix printf format string

Spotted by GCC:

../../tests/tst-solaris-taskq.c: In function ‘tq_test_func’:
../../tests/tst-solaris-taskq.c:25:2: error: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘void *’ [-Werror=format=]
  kprintf("%s called for %s\n", __func__, arg);
  ^

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
elf.cc: update list of core objects

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
vfs: implement truncate64

Needed to link with boost_filesystem.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Stub calls needed to link and run with boost_unit_test_framework

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Stub functions needed to link with boost filesystem

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
tst-rename: convert to boost unit test framework

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
trace.hh: Fix assigner_type forward declaration

Spotted by Clang:

../../include/osv/trace.hh:58:1: error: 'assigner_type' defined as a struct template here but
      previously declared as a class template [-Werror,-Wmismatched-tags]
struct assigner_type<storage_args<s_args...>, runtime_args<r_args...>> {
^
../../include/osv/trace.hh:45:1: note: did you mean struct here?
class assigner_type;
^~~~~
struct

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
arch-cpu.hh: Fix arch_cpu forward declaration

Spotted by Clang:

../../include/sched.hh:278:12: error: class 'arch_cpu' was previously declared as a struct
      [-Werror,-Wmismatched-tags]
    friend class arch_cpu;
           ^
../../arch/x64/arch-cpu.hh:39:8: note: previous use is here
struct arch_cpu {
       ^
../../include/sched.hh:278:12: note: did you mean struct here?
    friend class arch_cpu;
           ^~~~~
           struct

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
sched.hh: Fix arch_cpu friend declaration

Spotted by Clang:

../../include/sched.hh:278:12: error: class 'arch_cpu' was previously
declared as a struct
      [-Werror,-Wmismatched-tags]
    friend class arch_cpu;
           ^
../../arch/x64/arch-cpu.hh:39:8: note: previous use is here
struct arch_cpu {
       ^
../../include/sched.hh:278:12: note: did you mean struct here?
    friend class arch_cpu;
           ^~~~~
           struct

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
sched.hh: Fix struct cpu friend and forward declarations

Spotted by Clang.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
elf.hh: Fix symbol_module forward declaration

Spotted by Clang.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
arch-cpu.hh: Fix arch_thread forward declaration

Spotted by Clang:

../../arch/x64/arch-cpu.hh:57:1: error: 'arch_thread' defined as a struct here but previously
      declared as a class [-Werror,-Wmismatched-tags]
struct arch_thread {
^
../../arch/x64/arch-cpu.hh:37:1: note: did you mean struct here?
class arch_thread;
^~~~~
struct

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
drivers/vga: Fix VGAConsole::write()

Spotted by Clang:

../../drivers/vga.hh:15:18: error: 'VGAConsole::write' hides overloaded virtual function
      [-Werror,-Woverloaded-virtual]
    virtual void write(const char *str);
                 ^
../../drivers/console.hh:16:18: note: hidden overloaded virtual function 'Console::write'
      declared here: different number of parameters (2 vs 1)
    virtual void write(const char *str, size_t len) = 0;
                 ^

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
ramfs: fix use-after-free when ranaming files

This happens when you move a file to a different directory.

Thread 2 (Thread 2):
 1  0x000000000032ed3b in halt_no_interrupts ()
   at ../../arch/x64/processor.hh:239
   osv::halt () at ../../core/power.cc:28
 2  0x000000000020e7fe in abort (
    msg=msg@entry=0x580160 "page fault outside application")
    at ../../runtime.cc:109
 3  0x00000000002ecfdc in page_fault (ef=0xffffc0003e362008)
    at ../../core/mmu.cc:981
 4  <signal handler called>
 5  merge (b=0xffffc0003b4e8000, a=0xfffffffffffffff8)
    at ../../core/mempool.cc:421
 6  memory::free_page_range_locked (range=range@entry=0xffffc0003b4e8000)
    at ../../core/mempool.cc:436
 7  0x00000000003186d7 in memory::free_page_range (
    range=range@entry=0xffffc0003b4e8000) at ../../core/mempool.cc:448
 8  0x0000000000319280 in free_large (obj=0xffffc0003b4e9000)
    at ../../core/mempool.cc:460
 9  std_free (object=0xffffc0003b4e9000) at ../../core/mempool.cc:790
 10 free (obj=0xffffc0003b4e9000) at ../../core/mempool.cc:892
 11 0x0000000000340e52 in ramfs_free_node (np=np@entry=0xffffc0003d250d40)
    at ../../fs/ramfs/ramfs_vnops.c:78
 12 0x0000000000340ed2 in ramfs_remove_node (dnp=0xffffc0003d250a00,
    np=0xffffc0003d250d40) at ../../fs/ramfs/ramfs_vnops.c:131
 13 0x0000000000340ffd in ramfs_rename (dvp1=0xffffc0003fc9a180,
    vp1=0xffffc0003fc9a100, name1=<optimized out>, dvp2=0xffffc0003fc9a280,
    vp2=<optimized out>, name2=0x2000001fedf1 "prefix_suffix")
    at ../../fs/ramfs/ramfs_vnops.c:380
 14 0x0000000000340069 in sys_rename (src=<optimized out>,
    dest=<optimized out>) at ../../fs/vfs/vfs_syscalls.c:671
 15 0x000000000033a3b2 in rename (oldpath=<optimized out>,
    newpath=0xffffc0003e858cc0 "/tmp/t3-26e1b47c/prefix_suffix")
    at ../../fs/vfs/main.cc:634

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
vfs: Fix lookup for paths ending with slash

For example, assuming the following file exists:

  /tmp/dir/x

..the following was sondiered absent:

  /tmp/dir/

..this was considered present:

  /tmp/dir

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Fix format warnings for width specifiers

Signed-off-by: Or Cohen <orc@fewbytes.com>