本文整理汇总了C++中di_devfs_path函数的典型用法代码示例。如果您正苦于以下问题:C++ di_devfs_path函数的具体用法?C++ di_devfs_path怎么用?C++ di_devfs_path使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了di_devfs_path函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: get_devid
/*
* handle case where device has been probed but its target driver is not
* attached so enumeration has not quite finished. Opening the /devices
* pathname will force the kernel to finish the enumeration process and
* let us get the data we need.
*/
static void
get_devid(di_node_t node, ddi_devid_t *thisdevid)
{
int fd;
char realpath[MAXPATHLEN];
char *openpath = di_devfs_path(node);
errno = 0;
bzero(realpath, MAXPATHLEN);
if (strstr(openpath, "/devices") == NULL) {
(void) snprintf(realpath, MAXPATHLEN,
"/devices%s:c,raw", openpath);
fd = open(realpath, O_RDONLY|O_NDELAY);
} else {
fd = open(openpath, O_RDONLY|O_NDELAY);
}
if (fd < 0) {
logmsg(MSG_INFO, "Unable to open path %s: %s\n",
openpath, strerror(errno));
return;
}
if (devid_get(fd, thisdevid) != 0) {
logmsg(MSG_INFO,
"'%s' node (%s) without a devid registered\n",
di_driver_name(node), di_devfs_path(node));
}
(void) close(fd);
}
开发者ID:AlfredArouna,项目名称:illumos-gate,代码行数:36,代码来源:stmsboot_util.c
示例2: dcam1394_process
/*
* This function is called for every dcam1394 minor node.
* Calls enumerate to assign a logical dcam1394 id, and then
* devfsadm_mklink to make the link.
*/
static int
dcam1394_process(di_minor_t minor, di_node_t node)
{
char m_name[PATH_MAX], restring0[DCAM_RE_STRING_LEN];
char l_path[PATH_MAX], p_path[PATH_MAX], *buf, *devfspath;
devfsadm_enumerate_t re[1];
(void) strcpy(m_name, di_minor_name(minor));
if (strcmp(di_driver_name(node), "dcam1394") != 0) {
return (DEVFSADM_CONTINUE);
}
if (strncmp(m_name, "dcamctl", 7) == 0) {
(void) snprintf(restring0, DCAM_RE_STRING_LEN,
DCAM_CTL_LINK_RE);
} else if (strncmp(m_name, "dcam", 4) == 0) {
(void) snprintf(restring0, DCAM_RE_STRING_LEN,
DCAM_STR_LINK_RE);
} else {
return (DEVFSADM_CONTINUE);
}
re[0].re = restring0;
re[0].subexp = 1;
re[0].flags = MATCH_ALL;
devfsadm_print(debug_mid,
"dcam1394_process: path %s\n", di_devfs_path(node));
(void) strcpy(p_path, devfspath = di_devfs_path(node));
(void) strcat(p_path, ":");
(void) strcat(p_path, di_minor_name(minor));
di_devfs_path_free(devfspath);
/*
* Build the physical path from the components, omitting
* minor name field. Find the logical dcam1394 id, and
* stuff it in buf.
*/
if (devfsadm_enumerate_int(p_path, 0, &buf, re, 1)) {
devfsadm_print(debug_mid,
"dcam1394_process: exit/continue\n");
return (DEVFSADM_CONTINUE);
}
devfsadm_print(debug_mid, "dcam1394_process: p_path=%s buf=%s\n",
p_path, buf);
if (strncmp(di_minor_name(minor), "dcamctl", 7) == 0)
(void) snprintf(l_path, PATH_MAX, "dcamctl%s", buf);
else
(void) snprintf(l_path, PATH_MAX, "dcam%s", buf);
(void) devfsadm_mklink(l_path, node, minor, 0);
free(buf);
return (DEVFSADM_CONTINUE);
}
开发者ID:AlainODea,项目名称:illumos-gate,代码行数:65,代码来源:dcam1394_link.c
示例3: print_node_name
/*
* According to devfs path name, it will print device node name.
*/
static void
print_node_name(char *drv_name, char *strdevfspath)
{
di_node_t curnode;
char *devfspath = NULL;
char *node_name = NULL;
curnode = di_drv_first_node(drv_name, devinfo_root);
for (; curnode != DI_NODE_NIL; curnode = di_drv_next_node(curnode)) {
devfspath = di_devfs_path(curnode);
logmsg(MSG_INFO, "find: devfspath %s\n", devfspath);
if (devfspath == NULL)
continue;
if ((strlen(strdevfspath) == strlen(devfspath)) &&
(strncmp(strdevfspath, devfspath,
strlen(devfspath)) == 0)) {
node_name = find_link(curnode);
if (node_name == NULL) {
(void) printf("NOT MAPPED\n");
} else {
(void) printf("%s\n", node_name);
}
return;
}
}
}
开发者ID:AlfredArouna,项目名称:illumos-gate,代码行数:31,代码来源:stmsboot_util.c
示例4: av_create
/*
* Handles:
* /dev/av/[0-9]+/(async|isoch)
*/
static int
av_create(di_minor_t minor, di_node_t node)
{
devfsadm_enumerate_t rules[1] = {"^av$/^([0-9]+)$", 1, MATCH_ADDR};
char *minor_str;
char path[PATH_MAX + 1];
char *buf;
if ((buf = di_devfs_path(node)) == NULL) {
return (DEVFSADM_CONTINUE);
}
minor_str = di_minor_name(minor);
(void) snprintf(path, sizeof (path), "%s:%s", buf, minor_str);
di_devfs_path_free(buf);
if (devfsadm_enumerate_int(path, 0, &buf, rules, 1)) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(path, sizeof (path), "av/%s/%s", buf, minor_str);
free(buf);
(void) devfsadm_mklink(path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:rheostat2718,项目名称:devicemanagerofsjtu,代码行数:31,代码来源:misc_link.c
示例5: onbrd_dialout_create
/*
* Onboard dialout devices
* Creates links of the form "/dev/cua/[a..z]"
*/
static int
onbrd_dialout_create(di_minor_t minor, di_node_t node)
{
char l_path[MAXPATHLEN], p_path[MAXPATHLEN];
char *devfspath, *buf, *mn;
devfspath = di_devfs_path(node);
if (devfspath == NULL) {
devfsadm_errprint("%s: di_devfs_path() failed\n", modname);
return (DEVFSADM_CONTINUE);
}
if ((mn = di_minor_name(minor)) == NULL) {
devfsadm_errprint("%s: NULL minor name\n\t%s\n",
modname, devfspath);
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
/*
* verify this is a dialout port
*/
if (!is_dialout(mn)) {
devfsadm_errprint("%s: not a dialout device\n\t%s:%s\n",
modname, devfspath, mn);
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
(void) strcpy(p_path, devfspath);
(void) strcat(p_path, ":");
(void) strcat(p_path, mn);
di_devfs_path_free(devfspath);
buf = NULL;
#ifdef __i386
buf = check_compat_ports(p_path, mn);
#endif
/*
* devfsadm_enumerate_char_start() is a private interface
* for use by the ports module only.
*/
if (!buf && devfsadm_enumerate_char_start(p_path, 0, &buf, obport_rules,
1, start_id)) {
devfsadm_errprint("%s: devfsadm_enumerate_char_start() failed"
"\n\t%s\n", modname, p_path);
return (DEVFSADM_CONTINUE);
}
/*
* create the logical link
*/
(void) strcpy(l_path, "cua/");
(void) strcat(l_path, buf);
(void) devfsadm_mklink(l_path, node, minor, 0);
free(buf);
return (DEVFSADM_CONTINUE);
}
开发者ID:alhazred,项目名称:onarm,代码行数:64,代码来源:port_link.c
示例6: ses_callback
static int
ses_callback(di_minor_t minor, di_node_t node)
{
char l_path[PATH_MAX];
char *buf;
char *devfspath;
char p_path[PATH_MAX];
devfsadm_enumerate_t re[] = {"^es$/^ses([0-9]+)$", 1, MATCH_ALL};
/* find devices path -- need to free mem */
if (NULL == (devfspath = di_devfs_path(node))) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(p_path, sizeof (p_path), "%s:%s", devfspath,
di_minor_name(minor));
/* find next number to use; buf is an ascii number */
if (devfsadm_enumerate_int(p_path, 0, &buf, re, 1)) {
/* free memory */
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
(void) snprintf(l_path, sizeof (l_path), "es/ses%s", buf);
(void) devfsadm_mklink(l_path, node, minor, 0);
/* free memory */
free(buf);
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
开发者ID:rheostat2718,项目名称:devicemanagerofsjtu,代码行数:34,代码来源:misc_link.c
示例7: parallel
/*
* Handles minor node type "ddi_parallel".
* type=ddi_parallel;name=mcpp mcpp\N0
*/
static int
parallel(di_minor_t minor, di_node_t node)
{
char path[PATH_MAX + 1], *buf;
devfsadm_enumerate_t rules[1] = {"mcpp([0-9]+)$", 1, MATCH_ALL};
if (strcmp(di_node_name(node), "mcpp") != 0) {
return (DEVFSADM_CONTINUE);
}
if (NULL == (buf = di_devfs_path(node))) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(path, sizeof (path), "%s:%s",
buf, di_minor_name(minor));
di_devfs_path_free(buf);
if (devfsadm_enumerate_int(path, 0, &buf, rules, 1)) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(path, sizeof (path), "mcpp%s", buf);
free(buf);
(void) devfsadm_mklink(path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:rheostat2718,项目名称:devicemanagerofsjtu,代码行数:33,代码来源:misc_link.c
示例8: fc_port
static int
fc_port(di_minor_t minor, di_node_t node)
{
devfsadm_enumerate_t rules[1] = {"fc/fp([0-9]+)$", 1, MATCH_ALL};
char *buf, path[PATH_MAX + 1];
char *ptr;
if (NULL == (ptr = di_devfs_path(node))) {
return (DEVFSADM_CONTINUE);
}
(void) strcpy(path, ptr);
(void) strcat(path, ":");
(void) strcat(path, di_minor_name(minor));
di_devfs_path_free(ptr);
if (devfsadm_enumerate_int(path, 0, &buf, rules, 1) != 0) {
return (DEVFSADM_CONTINUE);
}
(void) strcpy(path, "fc/fp");
(void) strcat(path, buf);
free(buf);
(void) devfsadm_mklink(path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:rheostat2718,项目名称:devicemanagerofsjtu,代码行数:28,代码来源:misc_link.c
示例9: printer_create
/*
* Handles:
* minor node type "ddi_printer".
* rules of the form: type=ddi_printer;name=bpp \M0
*/
static int
printer_create(di_minor_t minor, di_node_t node)
{
char *mn;
char path[PATH_MAX + 1], *buf;
devfsadm_enumerate_t rules[1] = {"^printers$/^([0-9]+)$", 1, MATCH_ALL};
mn = di_minor_name(minor);
if (strcmp(di_driver_name(node), "bpp") == 0) {
(void) devfsadm_mklink(mn, node, minor, 0);
}
if (NULL == (buf = di_devfs_path(node))) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(path, sizeof (path), "%s:%s", buf, mn);
di_devfs_path_free(buf);
if (devfsadm_enumerate_int(path, 0, &buf, rules, 1)) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(path, sizeof (path), "printers/%s", buf);
free(buf);
(void) devfsadm_mklink(path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:rheostat2718,项目名称:devicemanagerofsjtu,代码行数:36,代码来源:misc_link.c
示例10: get_rsrcname
/*
* Converts a libdevinfo node into a /devices path. Caller must free results.
*/
static char *
get_rsrcname(di_node_t dinode)
{
int len;
char *rsrcname;
char *devfspath;
char name[MAXPATHLEN];
if ((devfspath = di_devfs_path(dinode)) == NULL) {
rcm_log_message(RCM_ERROR, "MPXIO: resource has null path.\n");
return (NULL);
}
len = snprintf(name, sizeof (name), "/devices%s", devfspath);
di_devfs_path_free(devfspath);
if (len >= sizeof (name)) {
rcm_log_message(RCM_ERROR, "MPXIO: resource path too long.\n");
return (NULL);
}
if ((rsrcname = strdup(name)) == NULL)
rcm_log_message(RCM_ERROR,
"MPXIO: failed to allocate resource name (%s).\n",
strerror(errno));
return (rsrcname);
}
开发者ID:AlainODea,项目名称:illumos-gate,代码行数:30,代码来源:mpxio_rcm.c
示例11: mc_node
static int
mc_node(di_minor_t minor, di_node_t node)
{
char path[PATH_MAX], l_path[PATH_MAX], *buf, *devfspath;
char *minor_nm;
minor_nm = di_minor_name(minor);
if (minor_nm == NULL) {
return (DEVFSADM_CONTINUE);
}
devfspath = di_devfs_path(node);
(void) strcpy(path, devfspath);
(void) strcat(path, ":");
(void) strcat(path, minor_nm);
di_devfs_path_free(devfspath);
/* build the physical path from the components */
if (devfsadm_enumerate_int(path, 0, &buf, mc_rules, 1)) {
return (DEVFSADM_CONTINUE);
}
(void) strcpy(l_path, "mc/mc");
(void) strcat(l_path, buf);
free(buf);
(void) devfsadm_mklink(l_path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:andreiw,项目名称:polaris,代码行数:32,代码来源:misc_link_sparc.c
示例12: pcmcia_dialout_create
/*
* PCMCIA dialout serial ports
* Creates links of the form "/dev/cua/pcN", where N is the PCMCIA
* socket number the device is plugged into.
*/
static int
pcmcia_dialout_create(di_minor_t minor, di_node_t node)
{
char l_path[MAXPATHLEN];
char *devfspath;
int socket, *intp;
devfspath = di_devfs_path(node);
if (devfspath == NULL) {
devfsadm_errprint("%s: di_devfs_path() failed\n", modname);
return (DEVFSADM_TERMINATE);
}
if (di_prop_lookup_ints(DDI_DEV_T_ANY, node, "socket", &intp) <= 0) {
devfsadm_errprint("%s: failed socket lookup\n\t%s\n",
modname, devfspath);
di_devfs_path_free(devfspath);
return (DEVFSADM_TERMINATE);
}
socket = PCMCIA_SOCKETNO(*intp);
di_devfs_path_free(devfspath);
(void) sprintf(l_path, "cua/pc%d", socket);
(void) devfsadm_mklink(l_path, node, minor, 0);
return (DEVFSADM_TERMINATE);
}
开发者ID:alhazred,项目名称:onarm,代码行数:33,代码来源:port_link.c
示例13: lom_port_create
/*
* Lights Out Management (LOM) serial ports
* Creates links of the form "/dev/term/lom-console".
*/
static int
lom_port_create(di_minor_t minor, di_node_t node)
{
char *devfspath;
char *minor_name;
devfspath = di_devfs_path(node);
if (devfspath == NULL) {
devfsadm_errprint("%s: di_devfs_path() failed\n", modname);
return (DEVFSADM_CONTINUE);
}
if ((minor_name = di_minor_name(minor)) == NULL) {
devfsadm_errprint("%s: NULL minor name\n\t%s\n",
modname, devfspath);
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
/*
* if this is the LOM console serial port (i.e. the minor
* name == lom-console ), create /dev/term/lom-console link and
* then we are done with this node.
*/
if (strcmp(minor_name, "lom-console") == 0) {
(void) devfsadm_mklink("term/lom-console", node, minor, 0);
di_devfs_path_free(devfspath);
return (DEVFSADM_TERMINATE);
}
/* This is not a LOM node, continue... */
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
开发者ID:alhazred,项目名称:onarm,代码行数:38,代码来源:port_link.c
示例14: gpio
static int
gpio(di_minor_t minor, di_node_t node)
{
char l_path[PATH_MAX], p_path[PATH_MAX], *buf, *devfspath;
char *minor_nm, *drvr_nm;
minor_nm = di_minor_name(minor);
drvr_nm = di_driver_name(node);
if ((minor_nm == NULL) || (drvr_nm == NULL)) {
return (DEVFSADM_CONTINUE);
}
devfspath = di_devfs_path(node);
(void) strcpy(p_path, devfspath);
(void) strcat(p_path, ":");
(void) strcat(p_path, minor_nm);
di_devfs_path_free(devfspath);
/* build the physical path from the components */
if (devfsadm_enumerate_int(p_path, 0, &buf, gpio_rules, 1)) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(l_path, sizeof (l_path), "%s%s", "gpio", buf);
free(buf);
(void) devfsadm_mklink(l_path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:rheostat2718,项目名称:devicemanagerofsjtu,代码行数:33,代码来源:misc_link.c
示例15: find_matching_hba
/*
* Discover an HBA node with matching path.
* The di_node_t argument should be the root of the device tree.
* This routine assumes the locks have been taken
*/
static int
find_matching_hba(di_node_t node, void *arg)
{
int *propData, rval;
walkarg_t *wa = (walkarg_t *)arg;
char *devpath, fulldevpath[MAXPATHLEN];
/* Skip stub(instance -1) nodes */
if (IS_STUB_NODE(node)) {
return (DI_WALK_CONTINUE);
}
rval = di_prop_lookup_ints(DDI_DEV_T_ANY, node,
"sm-hba-supported", &propData);
if (rval < 0) {
return (DI_WALK_CONTINUE);
} else {
if ((devpath = di_devfs_path(node)) == NULL) {
/* still continue to see if there is matching one. */
return (DI_WALK_CONTINUE);
}
(void) snprintf(fulldevpath, MAXPATHLEN, "%s%s", DEVICES_DIR,
devpath);
if ((strstr(fulldevpath, wa->devpath)) != NULL) {
*wa->flag = B_TRUE;
/* Found a node. No need to walk any more. */
di_devfs_path_free(devpath);
return (DI_WALK_TERMINATE);
}
di_devfs_path_free(devpath);
}
return (DI_WALK_CONTINUE);
}
开发者ID:apprisi,项目名称:illumos-gate,代码行数:40,代码来源:Sun_sasRefreshAdapterConfiguration.c
示例16: niu_asru_set
static int
niu_asru_set(tnode_t *tn, di_node_t dn, topo_mod_t *mod)
{
char *path;
nvlist_t *fmri;
int e;
if ((path = di_devfs_path(dn)) != NULL) {
fmri = topo_mod_devfmri(mod, FM_DEV_SCHEME_VERSION, path, NULL);
if (fmri == NULL) {
topo_mod_dprintf(mod,
"dev:///%s fmri creation failed.\n", path);
di_devfs_path_free(path);
return (-1);
}
di_devfs_path_free(path);
} else {
topo_mod_dprintf(mod, "NULL di_devfs_path.\n");
if (topo_prop_get_fmri(tn, TOPO_PGROUP_PROTOCOL,
TOPO_PROP_RESOURCE, &fmri, &e) < 0)
return (topo_mod_seterrno(mod, e));
}
if (topo_node_asru_set(tn, fmri, 0, &e) < 0) {
nvlist_free(fmri);
return (topo_mod_seterrno(mod, e));
}
nvlist_free(fmri);
return (0);
}
开发者ID:NanXiao,项目名称:illumos-joyent,代码行数:29,代码来源:niu.c
示例17: create_children
static int
create_children(mmd_t *mdp,
di_prom_handle_t ph, md_node_t *md_parent, di_node_t di_parent)
{
md_node_t *md_node;
md_node_t *md_child;
di_node_t di_child;
char *path;
int rv;
path = di_devfs_path(di_parent);
if (path == NULL)
return (EIO);
md_node = link_device_node(mdp, ph, di_parent, md_parent, path);
di_devfs_path_free(path);
if (md_node == NULL) {
return (ENOMEM);
}
while ((di_child = di_child_node(di_parent)) != DI_NODE_NIL) {
path = di_devfs_path(di_child);
if (path != NULL) {
md_child = link_device_node(mdp,
ph, di_child, md_node, path);
di_devfs_path_free(path);
if (md_child == NULL) {
return (ENOMEM);
}
}
rv = create_peers(mdp, ph, md_node, di_child);
if (rv != 0)
return (rv);
md_node = md_child;
di_parent = di_child;
}
return (0);
}
开发者ID:AlainODea,项目名称:illumos-gate,代码行数:40,代码来源:ldma_dio.c
示例18: wrsm
int
wrsm(di_minor_t minor, di_node_t node)
{
const char *node_name = di_node_name(node);
const char *minor_name = di_minor_name(minor);
char path[PATH_MAX + 1];
if (minor_name == NULL || node_name == NULL) {
return (DEVFSADM_CONTINUE);
}
if (strcmp(minor_name, "admin") == 0) {
/* admin pseudo device */
(void) snprintf(path, sizeof (path), "%s%s", node_name,
minor_name);
} else if (strcmp(minor_name, "ctrl") == 0) {
/* controller pseudo device */
dev_t dev = di_minor_devt(minor);
minor_t dev_minor = minor(dev);
(void) snprintf(path, sizeof (path), "%s%u", node_name,
(uint_t)dev_minor);
} else {
/*
* For hardware devices, the devlink must be
* /dev/<node_name><portid>. devpath is of the format
* ".../<node_name>@<portid>,0". Need to extract the
* <portid> for use in bulding devlink.
*/
char devpath[PATH_MAX + 1];
char *devfs_path;
int i;
devfs_path = di_devfs_path(node);
if (devfs_path == NULL) {
return (DEVFSADM_CONTINUE);
}
(void) strcpy(devpath, devfs_path);
di_devfs_path_free(devfs_path);
for (i = strlen(devpath); devpath[i] != '@' && i > 0; i--) {
if (devpath[i] == ',') {
devpath[i] = 0;
}
}
if (i == 0) {
return (DEVFSADM_CONTINUE);
}
(void) snprintf(path, sizeof (path), "wci%s", &devpath[i+1]);
}
(void) devfsadm_mklink(path, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
开发者ID:andreiw,项目名称:polaris,代码行数:52,代码来源:misc_link_sparc.c
示例19: dialout_create
/*
* Called for all dialout devices that are NOT onboard
* Creates links of the form "/dev/cua/[0..n]"
*/
static int
dialout_create(di_minor_t minor, di_node_t node)
{
char l_path[MAXPATHLEN], p_path[MAXPATHLEN];
char *devfspath, *buf, *mn;
devfspath = di_devfs_path(node);
if (devfspath == NULL) {
devfsadm_errprint("%s: di_devfs_path() failed\n", modname);
return (DEVFSADM_CONTINUE);
}
if ((mn = di_minor_name(minor)) == NULL) {
devfsadm_errprint("%s: NULL minorname\n\t%s\n",
modname, devfspath);
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
if (!is_dialout(mn)) {
devfsadm_errprint("%s: invalid minor name\n\t%s:%s\n",
modname, devfspath, mn);
di_devfs_path_free(devfspath);
return (DEVFSADM_CONTINUE);
}
(void) strcpy(p_path, devfspath);
(void) strcat(p_path, ":");
(void) strcat(p_path, mn);
di_devfs_path_free(devfspath);
if (devfsadm_enumerate_int(p_path, 0, &buf, port_rules, 1)) {
devfsadm_errprint("%s:dialout_create:"
" enumerate_int() failed\n\t%s\n",
modname, p_path);
return (DEVFSADM_CONTINUE);
}
(void) strcpy(l_path, "cua/");
(void) strcat(l_path, buf);
/*
* add the minor name to the physical path so we can create
* the link.
*/
(void) devfsadm_mklink(l_path, node, minor, 0);
free(buf);
return (DEVFSADM_CONTINUE);
}
开发者ID:alhazred,项目名称:onarm,代码行数:53,代码来源:port_link.c
示例20: p2n_cb
/*
* Callback used by path2node().
*/
static int
p2n_cb(di_node_t node, void *arg)
{
int ret = DI_WALK_CONTINUE;
cb_t *cbp = arg;
char *phys_path = di_devfs_path(node);
if (strcmp(cbp->cb_path, phys_path) == 0) {
cbp->cb_node = node;
ret = DI_WALK_TERMINATE;
}
di_devfs_path_free(phys_path);
return (ret);
}
开发者ID:andreiw,项目名称:polaris,代码行数:18,代码来源:bootinfo_aux.c
注:本文中的di_devfs_path函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论