Use ds_retrieve_u32 to get the endpoint of inet and of the ethernet drivers.

This commit is contained in:
Philip Homburg 2007-05-02 11:30:16 +00:00
parent 9852471c08
commit 33d31720a5
2 changed files with 15 additions and 4 deletions

View file

@ -50,6 +50,7 @@ from DL_ETH:
#include <time.h>
#include <unistd.h>
#include <sys/svrctl.h>
#include <minix/ds.h>
#include "mq.h"
#include "qp.h"
@ -96,6 +97,7 @@ PUBLIC void main()
mq_t *mq;
int r;
int source, m_type, timerand, fd;
u32_t tasknr;
struct fssignon device;
#ifdef __minix_vmd
struct systaskinfo info;
@ -157,8 +159,10 @@ PUBLIC void main()
#else /* Minix 3 */
/* Our new identity as a server. */
if ((this_proc = getprocnr()) < 0)
ip_panic(( "unable to get own process nr\n"));
r= ds_retrieve_u32("inet", &tasknr);
if (r != OK)
ip_panic(("inet: ds_retrieve_u32 failed for 'inet': %d", r));
this_proc= tasknr;
#endif
/* Register the device group. */

View file

@ -7,6 +7,7 @@ Copyright 1995 Philip Homburg
*/
#include "inet.h"
#include <minix/ds.h>
#include <minix/safecopies.h>
#include "proto.h"
#include "osdep_eth.h"
@ -37,7 +38,8 @@ FORWARD _PROTOTYPE( int asynsend, (endpoint_t dst, message *mp) );
PUBLIC void osdep_eth_init()
{
int i, j, r, tasknr, rport;
int i, j, r, rport;
u32_t tasknr;
struct eth_conf *ecp;
eth_port_t *eth_port, *rep;
message mess;
@ -102,7 +104,12 @@ PUBLIC void osdep_eth_init()
#ifdef __minix_vmd
r= sys_findproc(ecp->ec_task, &tasknr, 0);
#else /* Minix 3 */
r = _pm_findproc(ecp->ec_task, &tasknr);
r= ds_retrieve_u32(ecp->ec_task, &tasknr);
if (r != OK && r != ESRCH)
{
printf("inet: ds_retrieve_u32 failed for '%s': %d\n",
ecp->ec_task, r);
}
#endif
if (r != OK)
{