1433d6423SLionel Sambuc #include "syslib.h"
2433d6423SLionel Sambuc
3433d6423SLionel Sambuc #include <string.h>
4433d6423SLionel Sambuc #include <unistd.h>
5433d6423SLionel Sambuc
6433d6423SLionel Sambuc int
mapdriver(const char * label,devmajor_t major,const int * domains,int ndomains)7*181fb1b2SDavid van Moolenbroek mapdriver(const char * label, devmajor_t major, const int * domains,
8*181fb1b2SDavid van Moolenbroek int ndomains)
9433d6423SLionel Sambuc {
10433d6423SLionel Sambuc message m;
11*181fb1b2SDavid van Moolenbroek int i;
12433d6423SLionel Sambuc
13433d6423SLionel Sambuc memset(&m, 0, sizeof(m));
14433d6423SLionel Sambuc m.m_lsys_vfs_mapdriver.label = (vir_bytes)label;
15433d6423SLionel Sambuc m.m_lsys_vfs_mapdriver.labellen = strlen(label) + 1;
16433d6423SLionel Sambuc m.m_lsys_vfs_mapdriver.major = major;
17*181fb1b2SDavid van Moolenbroek m.m_lsys_vfs_mapdriver.ndomains = ndomains;
18*181fb1b2SDavid van Moolenbroek if (ndomains > (int)__arraycount(m.m_lsys_vfs_mapdriver.domains))
19*181fb1b2SDavid van Moolenbroek ndomains = (int)__arraycount(m.m_lsys_vfs_mapdriver.domains);
20*181fb1b2SDavid van Moolenbroek for (i = 0; i < ndomains; i++)
21*181fb1b2SDavid van Moolenbroek m.m_lsys_vfs_mapdriver.domains[i] = domains[i];
22433d6423SLionel Sambuc
23433d6423SLionel Sambuc return _taskcall(VFS_PROC_NR, VFS_MAPDRIVER, &m);
24433d6423SLionel Sambuc }
25