~ubuntu-branches/debian/sid/librtas/sid

« back to all changes in this revision

Viewing changes to librtas_src/common.h

  • Committer: Package Import Robot
  • Author(s): Aurelien Jarno
  • Date: 2012-06-26 23:57:57 UTC
  • Revision ID: package-import@ubuntu.com-20120626235757-rklmh5nysb9onb9v
Tags: upstream-1.3.6
ImportĀ upstreamĀ versionĀ 1.3.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * @file common.h
 
3
 *
 
4
 * Copyright (C) 2005 IBM Corporation
 
5
 * Common Public License Version 1.0 (see COPYRIGHT)
 
6
 *
 
7
 * @author John Rose <johnrose@us.ibm.com>
 
8
 */
 
9
 
 
10
#ifndef _COMMON_H_
 
11
#define _COMMON_H_
 
12
 
 
13
#include <stdio.h>
 
14
#include <stdint.h>
 
15
 
 
16
#define RC_BUSY -2
 
17
#define EXTENDED_DELAY_MIN 9900
 
18
#define EXTENDED_DELAY_MAX 9905
 
19
 
 
20
#define PAGE_SIZE 4096
 
21
 
 
22
/* 
 
23
 * When adding an RTAS call, argument list below should 
 
24
 * consist of an int token followed by the call arguments 
 
25
 * defined in librtas.h
 
26
 */
 
27
struct rtas_operations {
 
28
        int (*activate_firmware)(int token);
 
29
        int (*cfg_connector)(int token, char *workarea);
 
30
        int (*delay_timeout)(uint64_t timeout_ms);
 
31
        int (*display_char)(int token, char c);
 
32
        int (*display_msg)(int token, char *buf);
 
33
        int (*errinjct)(int token, int etoken, int otoken, char *workarea);
 
34
        int (*errinjct_close)(int token, int otoken);
 
35
        int (*errinjct_open)(int token, int *otoken);
 
36
        int (*free_rmo_buffer)(void *buf, uint32_t phys_addr, size_t size);
 
37
        int (*get_config_addr_info2)(int token, uint32_t cfg_addr, 
 
38
                 uint64_t phb_id, uint32_t func, uint32_t *info);
 
39
        int (*get_dynamic_sensor)(int token, int sensor, void *loc_code,
 
40
                                int *state);
 
41
        int (*get_indices)(int token, int is_sensor, int type, char *workarea, 
 
42
                                size_t size, int start, int *next);
 
43
        int (*get_power_level)(int token, int powerdomain, int *level);
 
44
        int (*get_rmo_buffer)(size_t size, void **buf, uint32_t *phys_addr);
 
45
        int (*get_sensor)(int token, int sensor, int index, int *state);
 
46
        int (*get_sysparm)(int token, unsigned int parameter, 
 
47
                                unsigned int length, char *data);
 
48
        int (*get_time)(int token, uint32_t *year, uint32_t *month, 
 
49
                                uint32_t *day, uint32_t *hour, uint32_t *min, 
 
50
                                uint32_t *sec, uint32_t *nsec);
 
51
        int (*get_vpd)(int token, char *loc_code, char *workarea, size_t size, 
 
52
                                unsigned int sequence, unsigned int *seq_next,
 
53
                                unsigned int *bytes_ret);
 
54
        int (*lpar_perftools)(int token, int subfunc, char *workarea, 
 
55
                                unsigned int length, unsigned int sequence, 
 
56
                                unsigned int *seq_next);
 
57
        int (*platform_dump)(int token, uint64_t dump_tag, uint64_t sequence, 
 
58
                                void *buffer, size_t length, 
 
59
                                uint64_t *next_seq, uint64_t *bytes_ret);
 
60
        int (*read_slot_reset)(int token, uint32_t cfg_addr, uint64_t phbid,
 
61
                                int *state, int *eeh);
 
62
        int (*scan_log_dump)(int token, void *buffer, size_t length);
 
63
        int (*set_dynamic_indicator)(int token, int indicator, int new_value, 
 
64
                                void *loc_code);
 
65
        int (*set_eeh_option)(int token, uint32_t cfg_addr, uint64_t phbid, 
 
66
                                int function);
 
67
        int (*set_indicator)(int token, int indicator, int index, 
 
68
                                int new_value);
 
69
        int (*set_power_level)(int token, int powerdomain, int level, 
 
70
                                int *setlevel);
 
71
        int (*set_poweron_time)(int token, uint32_t year, uint32_t month, 
 
72
                                uint32_t day, uint32_t hour, uint32_t min, 
 
73
                                uint32_t sec, uint32_t nsec);
 
74
        int (*set_sysparm)(int token, unsigned int parameter, char *data);
 
75
        int (*set_time)(int token, uint32_t year, uint32_t month, uint32_t day, 
 
76
                                uint32_t hour, uint32_t min, uint32_t sec, 
 
77
                                uint32_t nsec);
 
78
        int (*suspend_me)(int token, uint64_t streamid);
 
79
        int (*update_nodes)(int token, char *workarea, unsigned int scope);
 
80
        int (*update_properties)(int token, char *workarea, unsigned int scope);
 
81
        int (*interface_exists)();
 
82
};
 
83
 
 
84
struct librtas_config {
 
85
        struct rtas_operations *rtas_ops;
 
86
        uint64_t rtas_timeout_ms;
 
87
        int debug;
 
88
};
 
89
 
 
90
extern int open_proc_rtas_file(const char *name, int mode);
 
91
extern int rtas_token(const char *call_name);
 
92
extern int read_entire_file(int fd, char **buf, size_t *len);
 
93
 
 
94
extern struct librtas_config config;
 
95
 
 
96
#define dbg(_lvl, _fmt, _args...)                                       \
 
97
        do {                                                            \
 
98
                if (config.debug >= _lvl)                               \
 
99
                        printf("librtas %s(): " _fmt, __FUNCTION__, ##_args); \
 
100
        } while (0)
 
101
 
 
102
#define dbg1(_fmt, _args...)                                            \
 
103
        do {                                                            \
 
104
                dbg(1, _fmt, ##_args);                                  \
 
105
        } while (0)                                                     \
 
106
 
 
107
#endif