Subversion Repositories HelenOS-historic

Rev

Rev 956 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 956 Rev 964
Line 27... Line 27...
27
 */
27
 */
28
 
28
 
29
#ifndef __OFW_H__
29
#ifndef __OFW_H__
30
#define __OFW_H__
30
#define __OFW_H__
31
 
31
 
32
#define NULL    0
32
#define NULL 0
33
#define MAX_OFW_ARGS    10
33
#define MEMMAP_MAX_RECORDS 32
-
 
34
#define false 0
-
 
35
#define true 1
34
 
36
 
35
typedef __builtin_va_list va_list;
37
typedef __builtin_va_list va_list;
36
 
38
 
37
#define va_start(ap, last)      __builtin_va_start(ap, last)
39
#define va_start(ap, last)      __builtin_va_start(ap, last)
38
#define va_arg(ap, type)        __builtin_va_arg(ap, type)
40
#define va_arg(ap, type)        __builtin_va_arg(ap, type)
39
#define va_end(ap)          __builtin_va_end(ap)
41
#define va_end(ap)          __builtin_va_end(ap)
40
 
42
 
41
typedef unsigned int ofw_arg_t;
43
typedef struct {
42
typedef unsigned int ihandle;
44
    void *start;
43
typedef unsigned int phandle;
45
    unsigned int size;
-
 
46
} memzone_t;
44
 
47
 
45
/** OpenFirmware command structure
-
 
46
 *
-
 
47
 */
-
 
48
typedef struct {
48
typedef struct {
49
    const char *service;          /**< Command name */
-
 
50
    unsigned int nargs;           /**< Number of in arguments */
49
    unsigned int total;
51
    unsigned int nret;            /**< Number of out arguments */
50
    unsigned int count;
52
    ofw_arg_t args[MAX_OFW_ARGS]; /**< List of arguments */
51
    memzone_t zones[MEMMAP_MAX_RECORDS];
53
} ofw_args_t;
52
} memmap_t;
54
 
53
 
55
typedef void (*ofw_entry)(ofw_args_t *);
-
 
56
 
54
 
57
extern void init(void);
55
extern void init(void);
58
void halt(void);
56
extern void halt(void);
59
 
-
 
60
extern phandle ofw_find_device(const char *name);
-
 
61
extern int ofw_get_property(const phandle device, const char *name, const void *buf, const int buflen);
-
 
62
extern int ofw_call(const char *service, const int nargs, const int nret, ...);
-
 
63
 
57
 
64
extern ihandle ofw_open(const char *name);
-
 
65
extern void ofw_write(const char *str, const int len);
58
extern void ofw_write(const char *str, const int len);
66
 
59
 
67
extern void *ofw_translate(const void *virt);
60
extern void *ofw_translate(const void *virt);
68
extern int ofw_map(const void *phys, const void *virt, const int size, const int mode);
61
extern int ofw_map(const void *phys, const void *virt, const int size, const int mode);
-
 
62
extern int ofw_memmap(memmap_t *map);
69
 
63
 
70
#endif
64
#endif