blob: 74e61060d2240be09124b50e5fe6b1dc2e023dfc [file] [log] [blame]
Chris Wilsonb3082ae2016-05-26 15:05:38 +01001/*
2 * Copyright © 2016 Intel Corporation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 * IN THE SOFTWARE.
22 *
23 */
24
25#ifndef __IGT_SYSFS_H__
26#define __IGT_SYSFS_H__
27
28#include <stdbool.h>
Daniel Vetter8c1fcc62017-09-08 11:23:15 +020029#include <stdarg.h>
Chris Wilsonb3082ae2016-05-26 15:05:38 +010030
Chris Wilsone56ab792017-08-22 13:47:33 +010031char *igt_sysfs_path(int device, char *path, int pathlen, int *idx);
Chris Wilsonb3082ae2016-05-26 15:05:38 +010032int igt_sysfs_open(int device, int *idx);
Daniel Vetter430c1342016-07-27 13:07:39 +020033int igt_sysfs_open_parameters(int device);
Chris Wilson310eaeb2017-06-05 11:55:57 +010034bool igt_sysfs_set_parameter(int device,
35 const char *parameter,
36 const char *fmt, ...)
37 __attribute__((format(printf,3,4)));
Chris Wilsonc5da0662017-02-23 02:04:48 +000038
39int igt_sysfs_read(int dir, const char *attr, void *data, int len);
40int igt_sysfs_write(int dir, const char *attr, const void *data, int len);
41
Chris Wilsonb3082ae2016-05-26 15:05:38 +010042bool igt_sysfs_set(int dir, const char *attr, const char *value);
43char *igt_sysfs_get(int dir, const char *attr);
Chris Wilsone3abb202016-07-22 18:03:30 +010044
45int igt_sysfs_scanf(int dir, const char *attr, const char *fmt, ...)
46 __attribute__((format(scanf,3,4)));
Chris Wilson310eaeb2017-06-05 11:55:57 +010047int igt_sysfs_vprintf(int dir, const char *attr, const char *fmt, va_list ap)
48 __attribute__((format(printf,3,0)));
Chris Wilsone3abb202016-07-22 18:03:30 +010049int igt_sysfs_printf(int dir, const char *attr, const char *fmt, ...)
50 __attribute__((format(printf,3,4)));
51
Peter Antoinecb5d6032016-08-04 14:39:26 +010052uint32_t igt_sysfs_get_u32(int dir, const char *attr);
53bool igt_sysfs_set_u32(int dir, const char *attr, uint32_t value);
54
Chris Wilsonb64d10c2016-07-22 17:53:51 +010055bool igt_sysfs_get_boolean(int dir, const char *attr);
56bool igt_sysfs_set_boolean(int dir, const char *attr, bool value);
Chris Wilsonb3082ae2016-05-26 15:05:38 +010057
Marius Vlad0268d732016-12-01 21:45:47 +000058void kick_fbcon(bool enable);
59void kick_snd_hda_intel(void);
60
Chris Wilsonb3082ae2016-05-26 15:05:38 +010061#endif /* __IGT_SYSFS_H__ */