1 typedef unsigned int u_int8_t
__attribute__ ((__mode__ (__QI__
)));
2 typedef unsigned int u_int32_t
__attribute__ ((__mode__ (__SI__
)));
3 typedef enum { READ_SHARED
= 0, WRITE_EXCLUSIVE
= 1,
4 READ_EXCLUSIVE
= 2, EXCLUSIVE_ACCESS
= 3 } scsires_access_mode
;
5 struct scsires_extent_elem
{
6 scsires_access_mode mode
;
7 unsigned relative_address
;
11 typedef struct scsires_extent_elem scsires_extent_elem_t
;
12 struct scsires_extent
{
13 u_int8_t num_elements
;
14 scsires_extent_elem_t
*elements
;
16 typedef struct scsires_extent scsires_extent_t
;
17 unsigned char buf
[512];
18 void scsires_issue_reservation(scsires_extent_t
* new_extent
)
21 for (i
= 0; i
< new_extent
->num_elements
; i
++)
23 buf
[(i
* 8)] = new_extent
->elements
[i
].mode
;
24 buf
[(i
* 8) + 1] = ((new_extent
->elements
[i
].length
>> 16) & 0xff);
25 buf
[(i
* 8) + 2] = ((new_extent
->elements
[i
].length
>> 8) & 0xff);
26 buf
[(i
* 8) + 3] = (new_extent
->elements
[i
].length
& 0xff);
27 buf
[(i
* 8) + 4] = ((new_extent
->elements
[i
].first_block
>> 24) & 0xff);
28 buf
[(i
* 8) + 5] = ((new_extent
->elements
[i
].first_block
>> 16) & 0xff);
29 buf
[(i
* 8) + 6] = ((new_extent
->elements
[i
].first_block
>> 8) & 0xff);
30 buf
[(i
* 8) + 7] = (new_extent
->elements
[i
].first_block
& 0xff);