9
0
Fork 0

svn_rev_469

- make some more char * const
- dev_add_parameter -> dev_add_param
This commit is contained in:
Sascha Hauer 2007-07-05 18:01:56 +02:00 committed by Sascha Hauer
parent 88673469c6
commit 7baa6289fe
5 changed files with 40 additions and 23 deletions

View File

@ -3,17 +3,13 @@
#define MAX_DRIVER_NAME 16
#define MAP_READ 1
#define MAP_WRITE 2
#define DEVICE_TYPE_UNKNOWN 0
#define DEVICE_TYPE_ETHER 1
#define DEVICE_TYPE_STDIO 2
#define DEVICE_TYPE_CONSOLE 2
#define DEVICE_TYPE_DRAM 3
#define DEVICE_TYPE_BLOCK 4
#define DEVICE_TYPE_FS 5
#define DEVICE_TYPE_CONSOLE 6
#define MAX_DEVICE_TYPE 6
#define MAX_DEVICE_TYPE 5
#include <param.h>
@ -69,26 +65,45 @@ struct driver_d {
#define RW_SIZE(x) (x)
#define RW_SIZE_MASK 0x7
/* Register/unregister devices and drivers. Since we don't have modules
* we do not need a driver_unregister function.
*/
int register_driver(struct driver_d *);
int register_device(struct device_d *);
void unregister_device(struct device_d *);
struct device_d *device_from_spec_str(const char *str, char **endp);
struct device_d *get_device_by_name(char *name);
/* Iterate through the devices of a given type. if last is NULL, the
* first device of this type is returned. Put this pointer in as
* 'last' to get the next device. This functions returns NULL if no
* more devices are found.
*/
struct device_d *get_device_by_type(ulong type, struct device_d *last);
struct device_d *get_device_by_id(const char *id);
struct device_d *get_first_device(void);
/* Find a free device id from the given template. This is archieved by
* appending a number to the template. Dynamically created devices should
* use this function rather than filling the id field themselves.
*/
int get_free_deviceid(char *id, char *id_template);
struct device_d *device_from_spec_str(const char *str, char **endp);
/* Find a driver with the given name. Currently the filesystem implementation
* uses this to get the driver from the name the user specifies with the
* mount command
*/
struct driver_d *get_driver_by_name(const char *name);
ssize_t dev_read(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags);
ssize_t dev_write(struct device_d *dev, const void *buf, size_t count, ulong offset, ulong flags);
ssize_t dev_erase(struct device_d *dev, size_t count, unsigned long offset);
/* These are used by drivers which work with direct memory accesses */
ssize_t mem_read(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags);
ssize_t mem_write(struct device_d *dev, const void *buf, size_t count, ulong offset, ulong flags);
/* Use this if you have nothing to do in your drivers probe function */
int dummy_probe(struct device_d *);
#endif /* DRIVER_H */

View File

@ -409,7 +409,7 @@ static inline void NetCopyLong(ulong *to, ulong *from)
char * ip_to_string (IPaddr_t x, char *s);
/* Convert a string to ip address */
IPaddr_t string_to_ip(char *s);
IPaddr_t string_to_ip(const char *s);
/* Convert a VLAN id to a string */
void VLAN_to_string (ushort x, char *s);
@ -426,8 +426,8 @@ ushort getenv_VLAN(char *);
/* copy a filename (allow for "..." notation, limit length) */
void copy_filename (char *dst, char *src, int size);
int string_to_enet_addr(char *str, char *enetaddr);
void enet_addr_to_string(char *enetaddr, char *str);
int string_to_enet_addr(const char *str, char *enetaddr);
void enet_addr_to_string(const char *enetaddr, char *str);
/**********************************************************************/
/* Network devices */

View File

@ -14,14 +14,15 @@ struct param_d {
char *value;
};
char *dev_get_param(struct device_d *dev, const char *name);
const char *dev_get_param(struct device_d *dev, const char *name);
int dev_set_param(struct device_d *dev, const char *name, const char *val);
struct param_d *get_param_by_name(struct device_d *dev, const char *name);
int dev_add_param(struct device_d *dev, struct param_d *par);
/* Convenience functions to handle a parameter as an ip address */
int dev_set_param_ip(struct device_d *dev, char *name, IPaddr_t ip);
IPaddr_t dev_get_param_ip(struct device_d *dev, char *name);
int dev_add_parameter(struct device_d *dev, struct param_d *par);
int global_add_parameter(struct param_d *param);
#endif /* PARAM_H */

View File

@ -97,11 +97,11 @@ int eth_register(struct eth_device *edev)
edev->param_gateway.name = "gateway";
edev->param_netmask.name = "netmask";
edev->param_serverip.name = "serverip";
dev_add_parameter(dev, &edev->param_ip);
dev_add_parameter(dev, &edev->param_mac);
dev_add_parameter(dev, &edev->param_gateway);
dev_add_parameter(dev, &edev->param_netmask);
dev_add_parameter(dev, &edev->param_serverip);
dev_add_param(dev, &edev->param_ip);
dev_add_param(dev, &edev->param_mac);
dev_add_param(dev, &edev->param_gateway);
dev_add_param(dev, &edev->param_netmask);
dev_add_param(dev, &edev->param_serverip);
if (edev->get_mac_address(edev, ethaddr) == 0) {
enet_addr_to_string(ethaddr, ethaddr_str);

View File

@ -291,7 +291,8 @@ NetLoop(proto_t protocol)
return -1;
restart:
string_to_enet_addr(dev_get_param(eth_get_current()->dev, "mac"), NetOurEther);
string_to_enet_addr(dev_get_param(eth_get_current()->dev, "mac"),
NetOurEther);
NetState = NETLOOP_CONTINUE;
@ -1513,7 +1514,7 @@ char *ip_to_string (IPaddr_t x, char *s)
return s;
}
IPaddr_t string_to_ip(char *s)
IPaddr_t string_to_ip(const char *s)
{
IPaddr_t addr;
char *e;
@ -1581,7 +1582,7 @@ ushort getenv_VLAN(char *var)
return (string_to_VLAN(getenv(var)));
}
int string_to_enet_addr(char *str, char *enetaddr)
int string_to_enet_addr(const char *str, char *enetaddr)
{
ulong reg;
char *e;
@ -1601,7 +1602,7 @@ int string_to_enet_addr(char *str, char *enetaddr)
return 0;
}
void enet_addr_to_string(char *enetaddr, char *str)
void enet_addr_to_string(const char *enetaddr, char *str)
{
sprintf (str, "%02X:%02X:%02X:%02X:%02X:%02X",
enetaddr[0], enetaddr[1], enetaddr[2], enetaddr[3],