Files
s390-tools/libccw/ccw.c
Jan Polensky a68d1e323b libccw/ccw.c: Include strings.h instead of string.h
Including string.h is incorrect as it doesn't provide the required
function prototype for strncasecmp() used in this file. Note that
the missing function prototype doesn't cause a compilation error
at the moment as the declaration is provided indirectly.

Use strings.h to provide the declaration for strncasecmp() directly,
avoiding unnecessary include dependencies and improving clarity.

Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Jan Polensky <japo@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
2025-10-14 09:39:15 +02:00

43 lines
987 B
C

/**
* ccw - Channel Command Word function library
*
* Process ccw_devid
*
* 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.
*/
#include <stdio.h>
#include <strings.h>
#include "lib/ccw.h"
/**
* Parse a string into a ccw_devid structure
*
* @param[in,out] devid Pointer to ccw_devid structure to be initialized
* @parm[in] id String to parse
*
* @returns true if the input string has been parsed successfully;
* otherwise false.
*/
bool ccw_parse_str(struct ccw_devid *devid, const char *id)
{
unsigned int cssid, ssid, devno;
char d;
if (strncasecmp(id, "0x", 2) == 0)
return false;
if (sscanf(id, "%4x %c", &devno, &d) == 1) {
cssid = 0;
ssid = 0;
} else if (sscanf(id, "%2x.%1x.%4x %c", &cssid, &ssid, &devno,
&d) != 3) {
return false;
}
ccw_devid_init(devid, cssid, ssid, devno);
return true;
}