13 Commits
Author SHA1 Message Date
Ayush RanjanandgVisor bot 2026e1f078 Reformat codebase.
PiperOrigin-RevId: 449358041
2022-05-17 17:48:35 -07:00
Kevin KrakauerandgVisor bot f37cdb0bef introduce atomicbitops 32-bit types
Part of a series of changes that will end with prohibiting use of sync/atomic
(u)int32 functions. See cl/440484071 for more details.

PiperOrigin-RevId: 442673296
2022-04-18 17:41:53 -07:00
Kevin KrakauerandgVisor bot b8dd528b97 prohibit direct use of sync/atomic (u)int64 functions
All atomic 64 bit ints are changed to atomicbitops.(Ui|I)nt64. A nogo checker
enforces that sync/atomic 64 bit functions are not called.

For reviewers: the interesting changes are in the atomicbitops and checkaligned
packages.

Why do this?
- It is very easy to accidentally use atomic values without sync/atomic funcs.
- We have checkatomics, but this is optional and is forgotten in several places.
  - Using a type+checker to enforce this seems less error prone and simpler.
- We get NoCopy protection.
- Use of 64 bit atomics can break 32 bit builds. We have types to handle this
  without any runtime cost, so we might as well use them.

PiperOrigin-RevId: 440473398
2022-04-08 16:06:26 -07:00
Brad Fitzpatrick 83e70d1c6e pkg/atomicbitops: support 32-bit GOARCH value "mipsle"
mips was supported, but mipsle had been forgotten.

Fixes google/gvisor#6804
2021-11-01 08:22:07 -07:00
Kevin KrakauerandgVisor bot e797aa6dd3 fix typo
PiperOrigin-RevId: 390463819
2021-08-12 14:43:45 -07:00
Andrei Vagin 0bf1722a53 Reduce overhead of AlignedAtomic types
AlignedAtomicUint64 is 15 bytes and it takes 16 bytes in structures.  On
32-bit systems, variables and structure fields is guaranteed to be
32-bit aligned and this means that we need only 12 bytes to find 8
contiguous bytes.
2021-08-04 21:17:21 -07:00
Jamie LiuandgVisor bot f53b8a38e5 Add go:build directives as required by Go 1.17's gofmt.
PiperOrigin-RevId: 385894869
2021-07-20 16:28:45 -07:00
Kevin Krakauer 54df878b74 enable building //pkg/tcpip on 32-bit MIPS
N.B. we don't explicitly support MIPS, but there's no reason it
shouldn't work.
2021-05-12 10:14:56 -07:00
Kevin Krakauer abc05a9b25 explicitly 0-index backing array 2021-05-07 13:51:09 -07:00
Kevin Krakauer d72226fc46 mark types as saveable 2021-05-06 13:04:59 -07:00
Kevin Krakauer 0d7c13a2c5 Added more comments 2021-05-06 13:04:59 -07:00
Kevin Krakauer f0e6958d13 Added comments 2021-05-06 13:04:59 -07:00
Kevin Krakauer 9a5ebd49c0 Moved to atomicbitops and renamed files 2021-05-06 13:04:59 -07:00