File: ccw.h

package info (click to toggle)
s390-tools 2.40.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,288 kB
  • sloc: ansic: 187,079; sh: 12,157; cpp: 5,049; makefile: 2,812; perl: 2,541; asm: 1,097; python: 697; xml: 29
file content (47 lines) | stat: -rw-r--r-- 1,058 bytes parent folder | download | duplicates (5)
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
/*
 * ccw - Channel Command Word library (traditional I/O)
 *
 * Copyright 2017 IBM Corp.
 *
 * s390-tools is free software; you can redistribute it and/or modify
 * it under the terms of the MIT license. See LICENSE for details.
 */
#ifndef LIB_CCW_H
#define LIB_CCW_H

#include <stdbool.h>

#include "lib/zt_common.h"

/**
 * ccw_devid - CCW device ID
 */
struct ccw_devid {
	/** Channel Subsystem ID */
	unsigned int cssid:8;
	/** Subchannel set ID */
	unsigned int ssid:8;
	/** Device number */
	unsigned int devno:16;
} __packed;

/**
 * Initialize ccw_devid structure
 *
 * @param[in,out] devid   Pointer to ccw_devid structure to be initialized
 * @param[in]     cssid   Channel Subsystem ID
 * @param[in]     ssid    Subchannel set ID
 * @param[in]     devno   Device number
 */
static inline void ccw_devid_init(struct ccw_devid *devid,
				  unsigned int cssid, unsigned int ssid,
				  unsigned int devno)
{
	devid->cssid = cssid;
	devid->ssid = ssid;
	devid->devno = devno;
}

bool ccw_parse_str(struct ccw_devid *devid, const char *id);

#endif