next up previous contents
Next: A driver kernelbe Up: A STREAMS driverek Previous: A driver hibaüzenetei

A driver listája


#include <sys/types.h>
#include <sys/stream.h>
#include <sys/cmn_err.h>
#define NULL   ((char *)(0))

extern nulldev();
static int bcndput(), bcndopen(), bcndclose();

static struct module_info modinfo =
/* A stream queue jellemzoit irja le */
  { 0,         /* Modulazonosito szam - itt nem fontos */
    (char *)0, /* Modul neve - itt nem fontos */
    0,         /* Minimalis message-meret */
    INFPSZ,    /* Maximalis message-meret - INFPSZ=vegtelen */
    0, 0       /* High; low water mark; 0=nincs ellenorzes */
  };

static struct qinit bcndwinit =
  /* "write" queue - lefele halado adatok */
  { bcndput,  /* A message feldolgozasat vegzo eljaras */
    nulldev,   /* Service procedure - itt nincs */
    bcndopen,  /* open-nel ill. PUSH-nal meghivott rutin */
    bcndclose, /* utolso close-nal vagy pop-nal vegrehajtva */
    nulldev,   /* admin bejegyzes (csak a 3bnet-hez kell) */
    &modinfo,  /* Modulinformacios struktura */
    NULL       /* Statisztikakat tartalmazo tablazat */
  };

static struct qinit bcndrinit =
  /* "read" queue - felfele halado adatok */
  { nulldev,   /* Errol a driverrol nem fognak olvasni */
    nulldev,   /* Service proc. nincs */
    bcndopen,  /* open-nel, PUSH-nal meghivott rutin */
    bcndclose, /* utolso close-nal vagy pop-nal meghivott r. */
    nulldev,   /* admin bejegyzes */
    &modinfo,  /* Modulinformacios struktura */
    NULL       /* Statisztikakat tartalmazo tablazat cime */
  };

struct streamtab bcndinfo =
  /* A kernel ez alapjan tud tajekozodni a driverben */
  { &bcndrinit, /* Read queue-rol informaciok */
    &bcndwinit, /* Write queue-rol informaciok */
    NULL,       /* Multiplex. read queue */
    NULL        /* Multiplex write queue */
  };

static int bcndput(q,mp)
  /* "write" rutin */
  queue_t *q;   /* Pointer a WRITE-queue-ra */
  mblk_t *mp;   /* Az adatblokkra pointer */
{
  cmn_err(CE_CONT, "bcndput... " ); /* Nem lesz ujsor kiirva ... */
  freemsg(mp); /* Visszaadjuk a rendszernek a stream-fej altal
                  az uzenetnek lefoglalt memoriateruletet */
}

static int bcndopen(q, dev, flag, sflag)
  queue_t *q;
  dev_t   dev;
  int     flag,sflag;
{
  cmn_err(CE_NOTE, "bcndopen" );
  return 0;
}

static int bcndclose(q)
  queue_t *q;
{
  cmn_err(CE_NOTE, "bcndclose" );
  return 0;
}



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996