libmeinos: +dbgmsg
[meinos.git] / apps / lib / libmeinos / misc.c
blobd9d0a79a09298621c35e4add1f89a2db3c1b307a
1 /*
2 meinOS - A unix-like x86 microkernel operating system
3 Copyright (C) 2008 Janosch Gräf <janosch.graef@gmx.net>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include <sys/types.h>
20 #include <stdlib.h>
21 #include <syscall.h>
22 #include <string.h>
23 #include <llist.h>
24 #include <rpc.h>
25 #include <stdio.h>
26 #include <misc.h>
28 int _irq_init();
29 void _libmeinos_init() {
30 _irq_init();
33 /**
34 * Mounts a filesystem
35 * @param fs FS name
36 * @param mountpoint Mountpoint
37 * @return Success
39 int vfs_mount(const char *fs,const char *mountpoint,const char *dev,int readonly) {
40 char *func;
41 asprintf(&func,"%s_mount",fs);
42 if (dev==NULL) dev = "";
43 int ret = rpc_call(func,0,fs,mountpoint,dev,readonly);
44 free(func);
45 return ret;
48 /**
49 * Unmounts a filesystem
50 * @param fs FS name
51 * @param mountpoint Mountpoint
52 * @return Success
54 int vfs_unmount(const char *fs,const char *mountpoint) {
55 char *func;
56 asprintf(&func,"%s_unmount",fs);
57 int ret = rpc_call(func,0,fs,mountpoint);
58 free(func);
59 return ret;
62 /**
63 * Prints a debug message through kernel
64 * @param fmt Format
65 * @param ... Parameters
67 void dbgmsg(const char *fmt,...) {
68 #if 1
69 va_list args;
70 char *buf;
71 va_start(args,fmt);
72 size_t len = vasprintf(&buf,fmt,args);
73 syscall_call(SYSCALL_PUTSN,2,buf,len);
74 free(buf);
75 va_end(args);
76 #endif