Skip to content

Commit 486cb6e

Browse files
kernel: add aero proc macros in prelude
Signed-off-by: Andy-Python-Programmer <[email protected]>
1 parent abc905f commit 486cb6e

File tree

14 files changed

+66
-64
lines changed

14 files changed

+66
-64
lines changed

src/aero_kernel/src/cmdline.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ pub fn get_raw_cmdline() -> &'static str {
117117
mod tests {
118118
use super::*;
119119

120-
#[aero_proc::test]
120+
#[test]
121121
fn number_parser_test() {
122122
assert_eq!(parse_number("0xdeadbeef").unwrap(), 0xdeadbeef);
123123
assert_eq!(parse_number("0o546").unwrap(), 0o546);

src/aero_kernel/src/main.rs

+3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
#![no_main]
5050
#![reexport_test_harness_main = "test_main"]
5151

52+
#[macro_use]
53+
extern crate aero_proc;
54+
5255
mod prelude {
5356
pub mod rust_2021 {
5457
// Since asm is used almost all over the kernel, its a better idea

src/aero_kernel/src/mem/paging/addr.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -552,13 +552,13 @@ pub fn is_aligned(addr: u64, align: u64) -> bool {
552552
mod tests {
553553
use super::*;
554554

555-
#[aero_proc::test]
555+
#[test]
556556
pub fn test_is_aligned() {
557557
assert!(is_aligned(0x1000, 0x1000));
558558
assert!(!is_aligned(69, 0x1000));
559559
}
560560

561-
#[aero_proc::test]
561+
#[test]
562562
pub fn test_align_up() {
563563
// align 1
564564
assert_eq!(align_up(0, 1), 0);

src/aero_kernel/src/mem/paging/frame.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ mod tests {
620620

621621
use crate::mem::AddressSpace;
622622

623-
#[aero_proc::test]
623+
#[test]
624624
fn vm_frame_ref_count() {
625625
let mut address_space = AddressSpace::this();
626626
let mut offset_table = address_space.offset_page_table();

src/aero_kernel/src/mem/paging/page.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ impl<S: PageSize> fmt::Debug for PhysFrameRangeInclusive<S> {
437437
mod tests {
438438
use super::*;
439439

440-
#[aero_proc::test]
440+
#[test]
441441
pub fn test_page_ranges() {
442442
let page_size = Size4KiB::SIZE;
443443
let number = 1000;

src/aero_kernel/src/syscall/fs.rs

+25-26
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use crate::userland::scheduler;
3131
use crate::fs::Path;
3232
use crate::utils::downcast;
3333

34-
#[aero_proc::syscall]
34+
#[syscall]
3535
pub fn write(fd: usize, buffer: &[u8]) -> Result<usize, AeroSyscallError> {
3636
let handle = scheduler::get_scheduler()
3737
.current_task()
@@ -49,7 +49,7 @@ pub fn write(fd: usize, buffer: &[u8]) -> Result<usize, AeroSyscallError> {
4949
}
5050
}
5151

52-
#[aero_proc::syscall]
52+
#[syscall]
5353
pub fn read(fd: usize, buffer: &mut [u8]) -> Result<usize, AeroSyscallError> {
5454
let handle = scheduler::get_scheduler()
5555
.current_task()
@@ -67,7 +67,7 @@ pub fn read(fd: usize, buffer: &mut [u8]) -> Result<usize, AeroSyscallError> {
6767
}
6868
}
6969

70-
#[aero_proc::syscall]
70+
#[syscall]
7171
pub fn open(_fd: usize, path: &Path, mode: usize) -> Result<usize, AeroSyscallError> {
7272
let mut flags = OpenFlags::from_bits(mode).ok_or(AeroSyscallError::EINVAL)?;
7373

@@ -97,15 +97,15 @@ pub fn open(_fd: usize, path: &Path, mode: usize) -> Result<usize, AeroSyscallEr
9797
.open_file(inode, flags)?)
9898
}
9999

100-
#[aero_proc::syscall]
100+
#[syscall]
101101
pub fn dup(fd: usize, flags: usize) -> Result<usize, AeroSyscallError> {
102102
let task = scheduler::get_scheduler().current_task();
103103
let flags = OpenFlags::from_bits(flags).ok_or(AeroSyscallError::EINVAL)? & OpenFlags::O_CLOEXEC;
104104

105105
task.file_table.duplicate(fd, DuplicateHint::Any, flags)
106106
}
107107

108-
#[aero_proc::syscall]
108+
#[syscall]
109109
pub fn dup2(fd: usize, new_fd: usize, flags: usize) -> Result<usize, AeroSyscallError> {
110110
let task = scheduler::get_scheduler().current_task();
111111
let flags = OpenFlags::from_bits(flags).ok_or(AeroSyscallError::EINVAL)? & OpenFlags::O_CLOEXEC;
@@ -114,7 +114,7 @@ pub fn dup2(fd: usize, new_fd: usize, flags: usize) -> Result<usize, AeroSyscall
114114
.duplicate(fd, DuplicateHint::Exact(new_fd), flags)
115115
}
116116

117-
#[aero_proc::syscall]
117+
#[syscall]
118118
pub fn getdents(fd: usize, buffer: &mut [u8]) -> Result<usize, AeroSyscallError> {
119119
let handle = scheduler::get_scheduler()
120120
.current_task()
@@ -125,7 +125,7 @@ pub fn getdents(fd: usize, buffer: &mut [u8]) -> Result<usize, AeroSyscallError>
125125
Ok(handle.get_dents(buffer)?)
126126
}
127127

128-
#[aero_proc::syscall]
128+
#[syscall]
129129
pub fn close(fd: usize) -> Result<usize, AeroSyscallError> {
130130
let res = scheduler::get_scheduler()
131131
.current_task()
@@ -140,7 +140,7 @@ pub fn close(fd: usize) -> Result<usize, AeroSyscallError> {
140140
}
141141
}
142142

143-
#[aero_proc::syscall]
143+
#[syscall]
144144
pub fn chdir(path: &str) -> Result<usize, AeroSyscallError> {
145145
let inode = fs::lookup_path(Path::new(path))?;
146146

@@ -153,7 +153,7 @@ pub fn chdir(path: &str) -> Result<usize, AeroSyscallError> {
153153
Ok(0x00)
154154
}
155155

156-
#[aero_proc::syscall]
156+
#[syscall]
157157
pub fn mkdirat(dfd: usize, path: &Path) -> Result<usize, AeroSyscallError> {
158158
// NOTE: If the pathname given in pathname is relative, then it is interpreted
159159
// relative to the directory referred to by the file descriptor (rather than relative
@@ -194,7 +194,7 @@ pub fn mkdirat(dfd: usize, path: &Path) -> Result<usize, AeroSyscallError> {
194194
Ok(0x00)
195195
}
196196

197-
#[aero_proc::syscall]
197+
#[syscall]
198198
pub fn rmdir(path: &str) -> Result<usize, AeroSyscallError> {
199199
let path = Path::new(path);
200200

@@ -212,15 +212,15 @@ pub fn rmdir(path: &str) -> Result<usize, AeroSyscallError> {
212212
Ok(0x00)
213213
}
214214

215-
#[aero_proc::syscall]
215+
#[syscall]
216216
pub fn getcwd(buffer: &mut [u8]) -> Result<usize, AeroSyscallError> {
217217
let cwd = scheduler::get_scheduler().current_task().get_cwd();
218218

219219
buffer[..cwd.len()].copy_from_slice(cwd.as_bytes());
220220
Ok(cwd.len())
221221
}
222222

223-
#[aero_proc::syscall]
223+
#[syscall]
224224
pub fn ioctl(fd: usize, command: usize, argument: usize) -> Result<usize, AeroSyscallError> {
225225
let handle = scheduler::get_scheduler()
226226
.current_task()
@@ -231,7 +231,7 @@ pub fn ioctl(fd: usize, command: usize, argument: usize) -> Result<usize, AeroSy
231231
Ok(handle.inode().ioctl(command, argument)?)
232232
}
233233

234-
#[aero_proc::syscall]
234+
#[syscall]
235235
pub fn seek(fd: usize, offset: usize, whence: usize) -> Result<usize, AeroSyscallError> {
236236
let handle = scheduler::get_scheduler()
237237
.current_task()
@@ -242,7 +242,7 @@ pub fn seek(fd: usize, offset: usize, whence: usize) -> Result<usize, AeroSyscal
242242
Ok(handle.seek(offset as isize, aero_syscall::SeekWhence::from(whence))?)
243243
}
244244

245-
#[aero_proc::syscall]
245+
#[syscall]
246246
pub fn pipe(fds: &mut [usize; 2], flags: usize) -> Result<usize, AeroSyscallError> {
247247
let flags = OpenFlags::from_bits(flags).ok_or(AeroSyscallError::EINVAL)?;
248248
let pipe = Pipe::new();
@@ -274,7 +274,7 @@ pub fn pipe(fds: &mut [usize; 2], flags: usize) -> Result<usize, AeroSyscallErro
274274
Ok(0x00)
275275
}
276276

277-
#[aero_proc::syscall]
277+
#[syscall]
278278
pub fn unlink(fd: usize, path: &Path, flags: usize) -> Result<usize, AeroSyscallError> {
279279
// TODO: Make use of the open flags.
280280
let _flags = OpenFlags::from_bits(flags).ok_or(AeroSyscallError::EINVAL)?;
@@ -298,7 +298,7 @@ pub fn unlink(fd: usize, path: &Path, flags: usize) -> Result<usize, AeroSyscall
298298
Ok(0x00)
299299
}
300300

301-
#[aero_proc::syscall]
301+
#[syscall]
302302
pub fn access(
303303
fd: usize,
304304
path: &Path,
@@ -314,7 +314,7 @@ pub fn access(
314314
}
315315
}
316316

317-
#[aero_proc::syscall]
317+
#[syscall]
318318
pub fn fcntl(fd: usize, command: usize, arg: usize) -> Result<usize, AeroSyscallError> {
319319
let handle = scheduler::get_scheduler()
320320
.current_task()
@@ -361,7 +361,7 @@ pub fn fcntl(fd: usize, command: usize, arg: usize) -> Result<usize, AeroSyscall
361361
}
362362
}
363363

364-
#[aero_proc::syscall]
364+
#[syscall]
365365
pub fn fstat(fd: usize, stat: &mut Stat) -> Result<usize, AeroSyscallError> {
366366
let file = scheduler::get_scheduler()
367367
.current_task()
@@ -374,7 +374,7 @@ pub fn fstat(fd: usize, stat: &mut Stat) -> Result<usize, AeroSyscallError> {
374374
Ok(0)
375375
}
376376

377-
#[aero_proc::syscall]
377+
#[syscall]
378378
pub fn stat(path: &Path, stat: &mut Stat) -> Result<usize, AeroSyscallError> {
379379
let file = fs::lookup_path(path)?;
380380

@@ -383,32 +383,31 @@ pub fn stat(path: &Path, stat: &mut Stat) -> Result<usize, AeroSyscallError> {
383383
Ok(0)
384384
}
385385

386-
#[aero_proc::syscall]
386+
#[syscall]
387387
pub fn read_link(path: &Path, _buffer: &mut [u8]) -> Result<usize, AeroSyscallError> {
388388
log::warn!("read_link: is a stub! (path={path:?})");
389389

390390
Err(AeroSyscallError::EINVAL)
391391
}
392392

393393
/// Returns a file descriptor referring to the new epoll instance.
394-
#[aero_proc::syscall]
394+
#[syscall]
395395
pub fn epoll_create(flags: usize) -> Result<usize, AeroSyscallError> {
396396
let _flags = EPollFlags::from_bits(flags).ok_or(AeroSyscallError::EINVAL)?;
397397

398398
let epoll_file = EPoll::new();
399399
let entry = DirEntry::from_inode(epoll_file);
400400

401-
let current_task = scheduler::get_scheduler().current_task();
402-
403-
Ok(current_task
401+
Ok(scheduler::get_scheduler()
402+
.current_task()
404403
.file_table
405404
.open_file(entry, OpenFlags::O_RDWR)?)
406405
}
407406

408407
/// Used to add, modify, or remove entries in the interest list of the
409408
/// epoll instance referred to by the file descriptor. It requests that
410409
/// the operation be performed for the target file descriptor.
411-
#[aero_proc::syscall]
410+
#[syscall]
412411
pub fn epoll_ctl(
413412
epfd: usize,
414413
mode: usize,
@@ -434,7 +433,7 @@ pub fn epoll_ctl(
434433
}
435434
}
436435

437-
#[aero_proc::syscall]
436+
#[syscall]
438437
pub fn event_fd(_initval: usize, flags: usize) -> Result<usize, AeroSyscallError> {
439438
let flags = EventFdFlags::from_bits(flags).ok_or(AeroSyscallError::EINVAL)?;
440439
assert!(!flags.contains(EventFdFlags::SEMAPHORE)); // todo: implement event fd semaphore support.

src/aero_kernel/src/syscall/ipc.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ fn handle_recieve(
6161
Ok(msg.data.len())
6262
}
6363

64-
#[aero_proc::syscall]
64+
#[syscall]
6565
pub fn send(pid: usize, payload: &[u8]) -> Result<usize, AeroSyscallError> {
6666
let target = get_scheduler()
6767
.find_task(TaskId::new(pid))
@@ -82,7 +82,7 @@ pub fn send(pid: usize, payload: &[u8]) -> Result<usize, AeroSyscallError> {
8282
Ok(0)
8383
}
8484

85-
#[aero_proc::syscall]
85+
#[syscall]
8686
pub fn recv(
8787
pid_ptr: &mut usize,
8888
output: &mut [u8],
@@ -123,15 +123,15 @@ pub fn recv(
123123
}
124124
}
125125

126-
#[aero_proc::syscall]
126+
#[syscall]
127127
pub fn discover_root() -> Result<usize, AeroSyscallError> {
128128
match IPC_ROOT_NODE.get() {
129129
Some(pid) => Ok(*pid),
130130
None => Err(AeroSyscallError::EINVAL),
131131
}
132132
}
133133

134-
#[aero_proc::syscall]
134+
#[syscall]
135135
pub fn become_root() -> Result<usize, AeroSyscallError> {
136136
if IPC_ROOT_NODE.is_completed() {
137137
Err(AeroSyscallError::EINVAL)

src/aero_kernel/src/syscall/net.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ fn socket_addr_from_addr<'sys>(address: VirtAddr) -> Result<SocketAddr<'sys>, Ae
2020
}
2121

2222
/// Connects the socket to the specified address.
23-
#[aero_proc::syscall]
23+
#[syscall]
2424
pub fn connect(fd: usize, address: usize, length: usize) -> Result<usize, AeroSyscallError> {
2525
let address = socket_addr_from_addr(VirtAddr::new(address as u64))?;
2626
let file = scheduler::get_scheduler()
@@ -35,7 +35,7 @@ pub fn connect(fd: usize, address: usize, length: usize) -> Result<usize, AeroSy
3535

3636
/// Marks the socket as a passive socket (i.e. as a socket that will be used to accept incoming
3737
/// connection requests).
38-
#[aero_proc::syscall]
38+
#[syscall]
3939
pub fn listen(fd: usize, backlog: usize) -> Result<usize, AeroSyscallError> {
4040
let file = scheduler::get_scheduler()
4141
.current_task()
@@ -47,7 +47,7 @@ pub fn listen(fd: usize, backlog: usize) -> Result<usize, AeroSyscallError> {
4747
Ok(0)
4848
}
4949

50-
#[aero_proc::syscall]
50+
#[syscall]
5151
pub fn socket(
5252
domain: usize,
5353
socket_type: usize,
@@ -73,7 +73,7 @@ pub fn socket(
7373
Ok(fd)
7474
}
7575

76-
#[aero_proc::syscall]
76+
#[syscall]
7777
pub fn bind(fd: usize, address: usize, length: usize) -> Result<usize, AeroSyscallError> {
7878
let address = socket_addr_from_addr(VirtAddr::new(address as u64))?;
7979

0 commit comments

Comments
 (0)