#ifndef H_NET
#define H_NET

#include "devices.h"

typedef int int32;

struct netInterface {
    int isConfigured;
    char dev[10];
    int useBootp;
    int32 ip, netmask, broadcast, network;
} ;

struct netConfig {
    int isConfigured;
    char hostname[64];
    char domainname[255];
    char * nameserver[3];
    char defaultGateway[255];
} ;

int configureNetDevice(struct netInterface intf);
/* intf in configureNetwork is optional */
int configureNetwork(struct netConfig * netc, const struct netInterface * intf);
int readNetInterfaceConfig(char * prefix, char * device,
				  struct netInterface * intf);
int writeNetInterfaceConfig(char * prefix, struct netInterface * intf);
int writeNetConfig(char * prefix, struct netConfig * netc, 
		   struct netInterface * gwdev, int verbose);
int writeResolvConf(char * prefix, struct netConfig * netc);
int writeHosts(char * prefix, struct netConfig * netc, 
	       struct netInterface * intf);
int readNetConfig(char * prefix, struct netConfig * netc);
int addDefaultRoute(struct netConfig netc);
int bringUpNetworking(struct netInterface * intf, struct netConfig * netc,
		      struct driversLoaded ** dl);
int checkNetConfig(struct netInterface * intf, struct netConfig * netc,
		   struct driversLoaded ** dl);
int netDeviceAvailable(char * device);

#endif
