Browse Source
network, sockets: Replace `POLL_IN`, `POLL_OUT`, etc. constants with an `enum class PollEvents`
network, sockets: Replace `POLL_IN`, `POLL_OUT`, etc. constants with an `enum class PollEvents`
Actually, two enum classes, since for some reason there are two separate yet identical `PollFD` types used in the codebase. I get that one is ABI-compatible with the Switch while the other is an abstract type used for the host, but why not use `WSAPOLLFD` directly for the latter? Anyway, why make this change? Because on Apple platforms, `POLL_IN`, `POLL_OUT`, etc. (with an underscore) are defined as macros in <sys/signal.h>. (This is inherited from FreeBSD.) So defining a variable with the same name causes a compile error. I could just rename the variables, but while I was at it I thought I might as well switch to an enum for stronger typing. Also, change the type used for values copied directly to/from the `events` and `revents` fields of the host *native* `pollfd`/`WSASPOLLFD`, from `u32` to `short`, as `short` is the correct canonical type on both Unix and Windows.nce_cpp
6 changed files with 82 additions and 71 deletions
-
8src/core/hle/service/sockets/bsd.cpp
-
23src/core/hle/service/sockets/sockets.h
-
50src/core/hle/service/sockets/sockets_translate.cpp
-
4src/core/hle/service/sockets/sockets_translate.h
-
44src/core/network/network.cpp
-
24src/core/network/network.h
Write
Preview
Loading…
Cancel
Save
Reference in new issue