13 Commits

Author SHA1 Message Date
Ayush Ranjan f6ed4523dc Reformat codebase.
PiperOrigin-RevId: 449358041
2022-05-17 17:48:35 -07:00
Kevin Krakauer ec44093c97 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 Krakauer 370672e989 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 2aa474e748 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 Krakauer 345eb4a666 fix typo
PiperOrigin-RevId: 390463819
2021-08-12 14:43:45 -07:00
Andrei Vagin 376e890432 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 Liu 1ad3822200 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 b3d42a6ce7 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 314a5f8d7e explicitly 0-index backing array 2021-05-07 13:51:09 -07:00
Kevin Krakauer eded0d28de mark types as saveable 2021-05-06 13:04:59 -07:00
Kevin Krakauer a6c623ed9f Added more comments 2021-05-06 13:04:59 -07:00
Kevin Krakauer 413f1d654f Added comments 2021-05-06 13:04:59 -07:00
Kevin Krakauer 1e2ba26661 Moved to atomicbitops and renamed files 2021-05-06 13:04:59 -07:00