1 /*
2 * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
3 */
4
5 #include <regex.h>
6 #include <devfsadm.h>
7 #include <stdio.h>
8 #include <strings.h>
9 #include <stdlib.h>
10 #include <limits.h>
11 #include <sys/mkdev.h>
12
13 #include <sys/krrp.h>
14
15 /* krrp name info */
16
17 static int krrp(di_minor_t minor, di_node_t node);
18
19 /*
20 * devfs create callback register
21 */
22 static devfsadm_create_t krrp_create_cbt[] = {
23 { "pseudo", "ddi_pseudo", KRRP_DRIVER,
24 TYPE_EXACT | DRV_EXACT, ILEVEL_0, krrp,
25 },
26 };
27
28 DEVFSADM_CREATE_INIT_V0(krrp_create_cbt);
29
30 /*
31 * The krrp control node looks like this:
32 * /dev/krrp -> /devices/pseudo/krrp@0:krrp
33 */
34 static int
35 krrp(di_minor_t minor, di_node_t node)
36 {
37 char mn[MAXNAMELEN + 1];
38
39 (void) strcpy(mn, di_minor_name(minor));
40
41 if (strcmp(mn, KRRP_DRIVER) == 0)
42 (void) devfsadm_mklink(KRRP_DRIVER, node, minor, 0);
43
44 return (DEVFSADM_CONTINUE);
45 }