File: msgsimple.h

package info (click to toggle)
redhat-cluster 3.1.8-1.2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,608 kB
  • ctags: 6,306
  • sloc: ansic: 62,895; sh: 1,626; makefile: 1,143; perl: 765
file content (64 lines) | stat: -rw-r--r-- 1,371 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef __MSG_SIMPLE_H
#define __MSG_SIMPLE_H

#include <errno.h>
#include <stdint.h>
#include <resgroup.h>

typedef struct PACKED {
    uint32_t gh_magic; 
    uint32_t gh_length;
    uint32_t gh_command;
    uint32_t gh_arg1;
    uint32_t gh_arg2;
    uint32_t gh_arg3;
} generic_msg_hdr;

#define swab_generic_msg_hdr(ptr)\
{\
	swab32((ptr)->gh_magic);\
	swab32((ptr)->gh_length);\
	swab32((ptr)->gh_command);\
	swab32((ptr)->gh_arg1);\
	swab32((ptr)->gh_arg2);\
}

typedef struct PACKED {
    generic_msg_hdr	sm_hdr;
    struct {
	char 		d_svcName[64];
        uint32_t	d_action;
        uint32_t	d_svcState;
        uint32_t	d_svcOwner;
        int32_t		d_ret;
    } sm_data;
} SmMessageSt;

#define swab_SmMessageSt(ptr) \
{\
	swab_generic_msg_hdr(&((ptr)->sm_hdr));\
	swab32((ptr)->sm_data.d_action);\
	swab32((ptr)->sm_data.d_svcState);\
	swab32((ptr)->sm_data.d_svcOwner);\
	swab32((ptr)->sm_data.d_ret);\
}

typedef struct ALIGNED {
    generic_msg_hdr	rsm_hdr;
    rg_state_t		rsm_state;
} rg_state_msg_t;

#define swab_rg_state_msg_t(ptr) \
{\
	swab_generic_msg_hdr(&((ptr)->rsm_hdr));\
	swab_rg_state_t(&((ptr)->rsm_state));\
}


#define GENERIC_HDR_MAGIC   0x123abc00
#define GENERIC_HDR_MAGICV2 0x123abc02

int msg_send_simple(msgctx_t *ctx, int cmd, int arg1, int arg2);
int msg_receive_simple(msgctx_t *ctx, generic_msg_hdr ** buf, int timeout);

#endif