diff --git a/src/psp/atrac.rs b/src/psp/atrac.rs
index 3726129263a3eb53aace7c1b2c03ddd64869da93..6df7e3d2ab269baa066bb87cfc0895b674035658 100644
--- a/src/psp/atrac.rs
+++ b/src/psp/atrac.rs
@@ -13,7 +13,7 @@ pub struct Atrac3BufferInfo {
     pub ui_read_position_second_buf: u32,
 }
 
-extern {
+extern "C" {
     pub fn sceAtracGetAtracID(ui_codec_type: u32) -> i32;
     pub fn sceAtracSetDataAndGetID(
         buf: *mut c_void,
diff --git a/src/psp/codec.rs b/src/psp/codec.rs
index 84a583e05b6ce51013dfd2d2a27d3cce2d300b78..2d54f1b692a4d752502d5614a28e510ac9d0cf88 100644
--- a/src/psp/codec.rs
+++ b/src/psp/codec.rs
@@ -1,4 +1,4 @@
-extern {
+extern "C" {
     pub fn sceVideocodecOpen(
         buffer: *mut u32,
         type_: i32,
@@ -25,7 +25,7 @@ pub enum AudioCodec {
     Aac = 0x00001003,
 }
 
-extern {
+extern "C" {
     pub fn sceAudiocodecCheckNeedMem(
         buffer: *mut u32,
         type_: i32,
diff --git a/src/psp/hprm.rs b/src/psp/hprm.rs
index 3b9a621493581581e0fa01fa6045663b1a765855..fcd8b8ae357505f5083d1b94d0f8edcdeff2edda 100644
--- a/src/psp/hprm.rs
+++ b/src/psp/hprm.rs
@@ -5,7 +5,7 @@ pub const VOL_UP: i32 = 0x10;
 pub const VOL_DOWN: i32 = 0x20;
 pub const HOLD: i32 = 0x80;
 
-extern {
+extern "C" {
     pub fn sceHprmPeekCurrentKey(key: *mut i32) -> i32;
     pub fn sceHprmPeekLatch(latch: *mut [u32;4]) -> i32;
     pub fn sceHprmReadLatch(latch: *mut [u32;4]) -> i32;
diff --git a/src/psp/jpeg.rs b/src/psp/jpeg.rs
index b5357f6bba81583a75259987b19474612c33d99c..a3ed6fe0eb77b6ae4b7ae6ac94e26b1ff33045d5 100644
--- a/src/psp/jpeg.rs
+++ b/src/psp/jpeg.rs
@@ -1,5 +1,5 @@
 use super::c_void;
-extern {
+extern "C" {
     pub fn sceJpegInitMJpeg() -> i32;
     pub fn sceJpegFinishMJpeg() -> i32;
     pub fn sceJpegCreateMJpeg(width: i32, height: i32) -> i32;
diff --git a/src/psp/mp3.rs b/src/psp/mp3.rs
index 081a6a43b1f6d242339a4f97d5692a71c3bd65ef..25d4787f0efdb710750e6f496faadf84de427c20 100644
--- a/src/psp/mp3.rs
+++ b/src/psp/mp3.rs
@@ -17,7 +17,7 @@ pub struct SceMp3InitArg {
 #[repr(transparent)]
 pub struct Handle(pub i32);
 
-extern {
+extern "C" {
     pub fn sceMp3ReserveMp3Handle(args: *mut SceMp3InitArg) -> i32;
     pub fn sceMp3ReleaseMp3Handle(handle: Handle) -> i32;
     pub fn sceMp3InitResource() -> i32;
diff --git a/src/psp/nand.rs b/src/psp/nand.rs
index e52ee0afae05b4f7e9d8104dca446db685aa568a..53acd9461778e07002e5bc5ea1d42191e3cc4525 100644
--- a/src/psp/nand.rs
+++ b/src/psp/nand.rs
@@ -1,5 +1,5 @@
 use super::c_void;
-extern {
+extern "C" {
     pub fn sceNandSetWriteProtect(protect_flag: i32) -> i32;
     pub fn sceNandLock(write_flag: i32) -> i32;
     pub fn sceNandUnlock();
diff --git a/src/psp/openpsid.rs b/src/psp/openpsid.rs
index 7a348511c75104b6eecea58e2da21a5c78bda099..21b6e91edf5c389921caf0a5a5ff8338ac7ef969 100644
--- a/src/psp/openpsid.rs
+++ b/src/psp/openpsid.rs
@@ -4,6 +4,6 @@ pub struct OpenPSID {
     pub data: [u8; 16usize],
 }
 
-extern {
+extern "C" {
     pub fn sceOpenPSIDGetOpenPSID(openpsid: *mut OpenPSID) -> i32;
 }
diff --git a/src/psp/registry.rs b/src/psp/registry.rs
index 7d0297b10a0ebb11215368be29569d71fa677451..49c1ed246d7a18779eeb5011b6b0091c29e41e92 100644
--- a/src/psp/registry.rs
+++ b/src/psp/registry.rs
@@ -26,7 +26,7 @@ pub enum KeyType {
     Bytes = 4,
 }
 
-extern {
+extern "C" {
     pub fn sceRegOpenRegistry(
         reg: *mut Key,
         mode: i32,
diff --git a/src/psp/sircs.rs b/src/psp/sircs.rs
index b6f2b5c7989d26c6997a9ee2e716a9cdecb32db0..8dd9700455959f557b2a1030454e5b800e7e0998 100644
--- a/src/psp/sircs.rs
+++ b/src/psp/sircs.rs
@@ -6,6 +6,6 @@ pub struct SircsData {
     pub dev: u16,
 }
 
-extern {
+extern "C" {
     pub fn sceSircsSend(sd: *mut SircsData, count: i32) -> i32;
 }
diff --git a/src/psp/umd.rs b/src/psp/umd.rs
index 5d23ec760d4b70701c3b84248a40f2b6915b5f5a..1fe24a2e059195f5734d1f4b67b09e7fa787054c 100644
--- a/src/psp/umd.rs
+++ b/src/psp/umd.rs
@@ -22,7 +22,7 @@ pub const UMD_INITING: i32 = 0x08;
 pub const UMD_INITED: i32 = 0x10;
 pub const UMD_READY: i32 = 0x20;
 
-extern {
+extern "C" {
     pub fn sceUmdCheckMedium() -> i32;
     pub fn sceUmdGetDiscInfo(info: *mut UmdInfo) -> i32;
     pub fn sceUmdActivate(unit: i32, drive: *const u8) -> i32;
diff --git a/src/psp/usb.rs b/src/psp/usb.rs
index 85ddbd95dcf165d70ce73619e97c57bea245ad91..9632a04e256125a385dfe43629b53381f62e844b 100644
--- a/src/psp/usb.rs
+++ b/src/psp/usb.rs
@@ -14,7 +14,7 @@ pub const ESTABLISHED: i32 = 0x002;
 pub const USB_CAM_FLIP: i32 = 1;
 pub const USB_CAM_MIRROR: i32 = 0x100;
 
-extern {
+extern "C" {
     pub fn sceUsbStart(
         driver_name: *const u8,
         size: i32,
@@ -196,7 +196,7 @@ pub enum UsbCamEvLevel {
     Neg2_0,
 }
 
-extern {
+extern "C" {
     pub fn sceUsbCamSetupStill(param: *mut UsbCamSetupStillParam) -> i32;
     pub fn sceUsbCamSetupStillEx(param: *mut UsbCamSetupStillExParam) -> i32;
     pub fn sceUsbCamStillInputBlocking(buf: *mut u8, size: usize) -> i32;
@@ -247,7 +247,7 @@ extern {
     pub fn sceUsbCamGetLensDirection() -> i32;
 }
 
-extern {
+extern "C" {
     pub fn sceUsbstorBootRegisterNotify(event_flag: SceUid) -> i32;
     pub fn sceUsbstorBootUnregisterNotify(event_flag: u32) -> i32;
     pub fn sceUsbstorBootSetCapacity(size: u32) -> i32;
diff --git a/src/psp/wlan.rs b/src/psp/wlan.rs
index 5ec19d040cd98936e6f90a628f89d9b0d90505a1..2fa7d283e1d7330d0f4ef57c34841b795f111980 100644
--- a/src/psp/wlan.rs
+++ b/src/psp/wlan.rs
@@ -1,10 +1,10 @@
-extern {
+extern "C" {
     pub fn sceWlanDevIsPowerOn() -> i32;
     pub fn sceWlanGetSwitchState() -> i32;
     pub fn sceWlanGetEtherAddr(ether_addr: *mut u8) -> i32;
 }
 
-extern {
+extern "C" {
     pub fn sceWlanDevAttach() -> i32;
     pub fn sceWlanDevDetach() -> i32;
 }