libws libws
WSwan hardware library for the Wonderful toolchain
Loading...
Searching...
No Matches
util.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Adrian "asie" Siekierka
3 *
4 * This software is provided 'as-is', without any express or implied
5 * warranty. In no event will the authors be held liable for any damages
6 * arising from the use of this software.
7 *
8 * Permission is granted to anyone to use this software for any purpose,
9 * including commercial applications, and to alter it and redistribute it
10 * freely, subject to the following restrictions:
11 *
12 * 1. The origin of this software must not be misrepresented; you must not
13 * claim that you wrote the original software. If you use this software
14 * in a product, an acknowledgment in the product documentation would be
15 * appreciated but is not required.
16 *
17 * 2. Altered source versions must be plainly marked as such, and must not be
18 * misrepresented as being the original software.
19 *
20 * 3. This notice may not be removed or altered from any source distribution.
21 */
22
23#ifndef __WF_LIBWS_UTIL_H__
24#define __WF_LIBWS_UTIL_H__
25
26#include <stdint.h>
27#include <wonderful.h>
28
33static inline uint32_t ws_ptr_to_linear(const void __far* src) {
34 return ((((uint32_t) src) >> 12) & 0xFFFF0) + ((uint16_t) ((uint32_t) src));
35}
36
44void ws_portcpy(uint16_t port, const void __far* src, uint16_t count);
45
57__attribute__((no_assume_ds_data, no_assume_ss_data))
58void ws_busywait(uint16_t us);
59
60#endif /* __WF_LIBWS_UTIL_H__ */
__attribute__((no_assume_ds_data, no_assume_ss_data)) void ws_busywait(uint16_t us)
Busy wait.
static uint32_t ws_ptr_to_linear(const void __far *src)
Definition util.h:33
void ws_portcpy(uint16_t port, const void __far *src, uint16_t count)
Copy memory data to I/O ports, in order.