tools/testing/selftests/sched_ext/util.c

Source file repositories/reference/linux-study-clean/tools/testing/selftests/sched_ext/util.c

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/sched_ext/util.c
Extension
.c
Size
1261 bytes
Lines
72
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

/* Returns read len on success, or -errno on failure. */
static ssize_t read_text(const char *path, char *buf, size_t max_len)
{
	ssize_t len;
	int fd;

	fd = open(path, O_RDONLY);
	if (fd < 0)
		return -errno;

	len = read(fd, buf, max_len - 1);

	if (len >= 0)
		buf[len] = 0;

	close(fd);
	return len < 0 ? -errno : len;
}

/* Returns written len on success, or -errno on failure. */
static ssize_t write_text(const char *path, char *buf, ssize_t len)
{
	int fd;
	ssize_t written;

	fd = open(path, O_WRONLY | O_APPEND);
	if (fd < 0)
		return -errno;

	written = write(fd, buf, len);
	close(fd);
	return written < 0 ? -errno : written;
}

long file_read_long(const char *path)
{
	char buf[128];


	if (read_text(path, buf, sizeof(buf)) <= 0)
		return -1;

	return atol(buf);
}

int file_write_long(const char *path, long val)
{
	char buf[64];
	int ret;

	ret = sprintf(buf, "%ld", val);
	if (ret < 0)
		return ret;

	if (write_text(path, buf, ret) <= 0)
		return -1;

	return 0;
}

Annotation

Implementation Notes