/* Definitions for the Linux kerneld SYSV IPC interface.  
   This file was part of the Linux kernel, and so is covered by the GPL.  */

#ifndef MODUTILS_KERNELD_H
#define MODUTILS_KERNELD_H

#ident "$Id: kerneld.h,v 1.1 1998/04/25 20:02:37 rth Exp $"

#define KERNELD_SYSTEM 1
#define KERNELD_REQUEST_MODULE 2		/* "insmod" */
#define KERNELD_RELEASE_MODULE 3		/* "rmmod" */
#define KERNELD_DELAYED_RELEASE_MODULE 4	/* "rmmod" */
#define KERNELD_CANCEL_RELEASE_MODULE 5		/* "rmmod" */
#define KERNELD_REQUEST_ROUTE 6			/* net/ipv4/route.c */
#define KERNELD_BLANKER 7			/* drivers/char/console.c */
#define KERNELD_PNP 8				/* drivers/pnp/kerneld.c */
#define KERNELD_ARP 256				/* net/ipv4/arp.c */

#define OLDIPC_KERNELD 00040000		/* old kerneld message channel */
#define IPC_KERNELD 00140000		/* new kerneld message channel */
#define KDHDR (sizeof(long) + sizeof(short) + sizeof(short))
#define NULL_KDHDR 0, 2, 0

#define KERNELD_MAXCMD 0x7ffeffff
#define KERNELD_MINSEQ 0x7fff0000 /* "commands" legal up to 0x7ffeffff */
#define KERNELD_WAIT 0x80000000
#define KERNELD_NOWAIT 0

struct kerneld_msg
  {
    long mtype;
    long id;
    short version;
    short pid;
    char text[1];
  };

#endif /* kerneld.h */
